/* ============================================================
   旅易出行 · 白色透明液态玻璃主题（Light Liquid Glass）
   ============================================================
   设计基调：
   - 清亮天空感背景（淡蓝→白→淡粉紫的柔和过渡 + 极淡彩色光雾）
   - 白色半透明磨砂卡片 rgba(255,255,255,.55~.72)
   - 深色文字（可读性优先），克制的白色高光
   - 真实折射/色差由 liquid-glass.js 的 SVG 滤镜承担（强度柔化）
   - 交互：白色亮光扫过 + 指针跟随光斑，500ms 液态过渡
   ============================================================ */

:root {
  --lg-blue: #2f9df0;
  --lg-purple: #7a6cf0;
  --lg-cyan: #22b8c8;
  --lg-ink: #1c2740;          /* 主文字（深） */
  --lg-ink-80: rgba(28, 39, 64, .78);
  --lg-ink-50: rgba(28, 39, 64, .52);
  --lg-card: rgba(255, 255, 255, .58);
  --lg-card-strong: rgba(255, 255, 255, .72);
  --lg-border: rgba(255, 255, 255, .75);
  --lg-shadow: 0 8px 30px rgba(60, 90, 160, .14);
}

/* ---------- 清亮背景 + 极淡光雾 ---------- */
body.glass-theme {
  color: var(--lg-ink);
  background:
    radial-gradient(1100px 620px at 8% -10%, rgba(190, 200, 240, .55), transparent 62%),  /* taste-skill-ignore */
    radial-gradient(900px 500px at 94% 4%, rgba(170, 205, 240, .4), transparent 58%),  /* taste-skill-ignore */
    radial-gradient(820px 560px at 50% 118%, rgba(165, 212, 235, .38), transparent 62%),  /* taste-skill-ignore */
    linear-gradient(158deg, #e0e7f6 0%, #eaf0f9 46%, #e6eef7 100%) fixed;  /* taste-skill-ignore */
  min-height: 100vh;
  min-height: 100dvh;
}
body.glass-theme::before, body.glass-theme::after {
  content: ''; position: fixed; border-radius: 50%; filter: blur(90px);
  pointer-events: none; z-index: 0; opacity: .5;
}
body.glass-theme::before {
  width: 42vw; height: 42vw; left: -10vw; top: 16vh;
  background: radial-gradient(circle, rgba(150, 160, 230, .26), rgba(47, 157, 240, .1) 58%, transparent 75%);  /* taste-skill-ignore */
  animation: lg-float-a 26s ease-in-out infinite alternate;
}
body.glass-theme::after {
  width: 36vw; height: 36vw; right: -8vw; top: 56vh;
  background: radial-gradient(circle, rgba(140, 195, 235, .22), rgba(160, 180, 240, .12) 58%, transparent 75%);  /* taste-skill-ignore */
  animation: lg-float-b 30s ease-in-out infinite alternate;
}
@keyframes lg-float-a { to { transform: translate(9vw, -6vh) scale(1.14); } }
@keyframes lg-float-b { to { transform: translate(-7vw, 5vh) scale(1.1); } }
body.glass-theme > * { position: relative; z-index: 1; }

/* ---------- 白色透明玻璃容器 ---------- */
.glass-theme .card, .glass-theme .glass, .glass-theme .app-header, .glass-theme .sheet,
.glass-theme .field, .glass-theme .tabs, .glass-theme .tab, .glass-theme .banner-warn,
.glass-theme .toast, .glass-theme .stepper button, .glass-theme .change-btn,
.glass-theme .node-list li, .glass-theme .list-item, .glass-theme .status-pill,
.glass-theme .hall-item, .glass-theme .stat, .glass-theme dialog, .glass-theme .mock-card {
  position: relative;
  background: var(--lg-card);
  -webkit-backdrop-filter: blur(24px) saturate(160%);  /* taste-skill-ignore */
  backdrop-filter: blur(24px) saturate(160%);  /* taste-skill-ignore */
  border: 1px solid var(--lg-border);  /* taste-skill-ignore */
  border-radius: 22px;
  box-shadow: var(--lg-shadow), inset 0 1px 0 rgba(255, 255, 255, .9);  /* taste-skill-ignore */
  overflow: hidden;
  color: var(--lg-ink);
  transition: background .5s ease-out, border-color .5s ease-out, box-shadow .5s ease-out, transform .5s ease-out, opacity .5s ease-out;  /* taste-skill-ignore */
}
/* 磨砂层级（顶栏/底部面板/演示大卡：更白的实感） */
.glass-theme .app-header, .glass-theme .sheet, .glass-theme .mock-card, .glass-theme .status-pill {
  background: var(--lg-card-strong);
  -webkit-backdrop-filter: blur(30px) saturate(180%);  /* taste-skill-ignore */
  backdrop-filter: blur(30px) saturate(180%);  /* taste-skill-ignore */
  border-color: rgba(255, 255, 255, .85);
}

/* 文字 */
.glass-theme, .glass-theme .card, .glass-theme .sheet { color: var(--lg-ink); }
.glass-theme .muted, .glass-theme .stop-meta, .glass-theme .login-sub,
.glass-theme .modeDesc, .glass-theme .login-wrap .muted { color: var(--lg-ink-80) !important; }
.glass-theme .login-sub { text-shadow: none; }  /* taste-skill-ignore */

/* ---------- 白色亮光 ①：悬停/按压扫过 ---------- */
.glass-theme .card::after, .glass-theme .sheet::after, .glass-theme .app-header::after,
.glass-theme .tab::after, .glass-theme .btn::after, .glass-theme .hall-item::after,
.glass-theme .status-pill::after, .glass-theme .change-btn::after, .glass-theme .mock-card::after {
  content: ''; position: absolute; top: -30%; bottom: -30%; left: -35%; width: 42%;
  background: linear-gradient(112deg, transparent 10%, rgba(255, 255, 255, .55) 50%, transparent 90%);  /* taste-skill-ignore */
  transform: translateX(-140%) skewX(-14deg);
  transition: transform .85s cubic-bezier(.22, .75, .28, 1);
  pointer-events: none; z-index: 2; opacity: .8;
}
.glass-theme .card:hover::after, .glass-theme .tab:hover::after,
.glass-theme .btn:hover::after, .glass-theme .change-btn:hover::after,
.glass-theme .status-pill:hover::after, .glass-theme .mock-card:hover::after { transform: translateX(360%) skewX(-14deg); }

/* ---------- 白色亮光 ②：指针跟随光斑 ---------- */
.glass-theme .card::before, .glass-theme .mock-card::before, .glass-theme .sheet::before,
.glass-theme .hall-item::before, .glass-theme .tab::before {
  content: ''; position: absolute; inset: 0; opacity: 0; transition: opacity .35s;
  background: radial-gradient(220px circle at var(--mx, 50%) var(--my, 50%),  /* taste-skill-ignore */
    rgba(255, 255, 255, .42), rgba(255, 255, 255, .12) 45%, transparent 65%);
  pointer-events: none; z-index: 1;
}
.glass-theme .card:hover::before, .glass-theme .mock-card:hover::before,
.glass-theme .hall-item:hover::before, .glass-theme .tab:hover::before,
.glass-theme .shine-track::before { opacity: 1; }

/* 按压下沉（柔和） */
.glass-theme .btn:active, .glass-theme .tab:active, .glass-theme .change-btn:active,
.glass-theme .stepper button:active { transform: scale(.97); }
.glass-theme .btn, .glass-theme .tab, .glass-theme .change-btn { transition: background .5s ease-out, border-color .5s ease-out, box-shadow .5s ease-out, transform .5s ease-out, opacity .5s ease-out;  overflow: hidden; }  /* taste-skill-ignore */

/* ---------- 组件样式（白色透明） ---------- */
.glass-theme .field { background: rgba(255, 255, 255, .55); border: 1px solid rgba(255, 255, 255, .8); border-radius: 16px; }  /* taste-skill-ignore */
.glass-theme .field:focus-within { background: rgba(255, 255, 255, .75); border-color: rgba(47, 157, 240, .55); box-shadow: 0 0 0 3px rgba(47, 157, 240, .18); }  /* taste-skill-ignore */
.glass-theme .tab { color: var(--lg-ink-80); background: rgba(255, 255, 255, .45); border: 1px solid rgba(255, 255, 255, .7); border-radius: 14px; }  /* taste-skill-ignore */
.glass-theme .tab.active {
  background: rgba(255, 255, 255, .85);
  border-color: rgba(47, 157, 240, .5); color: #1567b8; font-weight: 700;
  box-shadow: 0 4px 16px rgba(47, 157, 240, .22);  /* taste-skill-ignore */
}
.glass-theme .btn.dark {
  background: linear-gradient(135deg, #3ba7f2, #6a5cf5);  /* taste-skill-ignore */
  border: 1px solid rgba(255, 255, 255, .55); color: #fff; font-weight: 800;  /* taste-skill-ignore */
  box-shadow: 0 6px 20px rgba(59, 130, 240, .35), inset 0 1px 0 rgba(255, 255, 255, .45);  /* taste-skill-ignore */
}
.glass-theme .btn.blue, .glass-theme .btn.dark ~ .btn.blue {
  background: linear-gradient(135deg, #3ba7f2, #6a5cf5);  /* taste-skill-ignore */
  border: 1px solid rgba(255, 255, 255, .45); color: #fff; font-weight: 700;  /* taste-skill-ignore */
  box-shadow: 0 6px 20px rgba(59, 130, 240, .32), inset 0 1px 0 rgba(255, 255, 255, .4);  /* taste-skill-ignore */
}
.glass-theme .btn.blue:hover, .glass-theme .btn:hover { box-shadow: 0 8px 26px rgba(59, 130, 240, .4), inset 0 1px 0 rgba(255, 255, 255, .5); filter: brightness(1.06); }  /* taste-skill-ignore */
.glass-theme .btn { color: #fff; font-weight: 700; }
.glass-theme .btn.ghost { background: rgba(255, 255, 255, .5); border: 1.5px solid rgba(120, 150, 200, .45); color: var(--lg-ink); }
.glass-theme .btn.ghost:hover { background: rgba(255, 255, 255, .75); box-shadow: 0 4px 18px rgba(60, 90, 160, .18); }  /* taste-skill-ignore */
.glass-theme .btn.dark:hover, .glass-theme .btn.blue:hover { transform: translateY(-1px); }

.glass-theme .pill { background: rgba(28, 39, 64, .08); color: var(--lg-ink); }
.glass-theme .pill.blue { background: rgba(47, 157, 240, .16); color: #1567b8; }
.glass-theme .pill.ok { background: rgba(52, 199, 123, .16); color: #12855c; }
.glass-theme .pill.warn { background: rgba(255, 157, 60, .18); color: #b25e00; }
.glass-theme .pill.red { background: rgba(255, 77, 79, .14); color: #c53030; }
.glass-theme .node-num { background: linear-gradient(135deg, #3ba7f2, #6a5cf5); color: #fff; box-shadow: 0 2px 8px rgba(59, 130, 240, .35); }  /* taste-skill-ignore */
.glass-theme .node-list li { border-bottom: 1px dashed rgba(28, 39, 64, .14); color: var(--lg-ink); }  /* taste-skill-ignore */
.glass-theme .node-list li.done { color: var(--lg-ink-50); }
.glass-theme .node-list li.done .node-num { background: rgba(52, 199, 123, .75); box-shadow: none; }  /* taste-skill-ignore */
.glass-theme .node-list li.mine { background: rgba(47, 157, 240, .1); border-radius: 12px; }
.glass-theme .banner-warn { background: rgba(255, 199, 120, .28); border: 1px solid rgba(255, 183, 94, .5); color: #7a4a00; }  /* taste-skill-ignore */
.glass-theme .toast { background: rgba(255, 255, 255, .82); border: 1px solid rgba(255, 255, 255, .9); color: var(--lg-ink); backdrop-filter: blur(28px) saturate(170%); box-shadow: 0 8px 30px rgba(60, 90, 160, .25); }  /* taste-skill-ignore */
.glass-theme .stepper button { background: rgba(255, 255, 255, .6); border: 1px solid rgba(120, 150, 200, .4); color: var(--lg-ink); }  /* taste-skill-ignore */
.glass-theme .change-btn { background: rgba(255, 255, 255, .55); color: var(--lg-ink); border: 1px solid rgba(120, 150, 200, .35); border-radius: 10px; }  /* taste-skill-ignore */
.glass-theme .code-btn { background: rgba(47, 157, 240, .16); color: #1567b8; font-weight: 700; }
.glass-theme dialog { background: rgba(255, 255, 255, .78); color: var(--lg-ink); backdrop-filter: blur(30px) saturate(170%); border: 1px solid rgba(255, 255, 255, .9); }  /* taste-skill-ignore */
.glass-theme .status-pill.on { background: rgba(52, 199, 123, .18); color: #12855c; }
.glass-theme .status-pill.off { background: rgba(28, 39, 64, .08); color: var(--lg-ink-80); }
.glass-theme .bar { background: rgba(28, 39, 64, .1); }
.glass-theme .bar i { background: linear-gradient(90deg, #3ba7f2, #6a5cf5); }  /* taste-skill-ignore */
.glass-theme table th { color: var(--lg-ink-50); }
.glass-theme table td { border-bottom: 1px solid rgba(28, 39, 64, .1); color: var(--lg-ink); }  /* taste-skill-ignore */

/* ---------- 输入框（白色透明 + 深字） ---------- */
.glass-theme input, .glass-theme select {
  color: var(--lg-ink);
  background: rgba(255, 255, 255, .55);
  -webkit-backdrop-filter: blur(24px) saturate(160%);  /* taste-skill-ignore */
  backdrop-filter: blur(24px) saturate(160%);  /* taste-skill-ignore */
  border: 1px solid rgba(255, 255, 255, .8);  /* taste-skill-ignore */
  border-radius: 14px;
  transition: background .5s ease-out, border-color .5s ease-out, box-shadow .5s ease-out, transform .5s ease-out, opacity .5s ease-out;  /* taste-skill-ignore */
}
.glass-theme input:focus, .glass-theme select:focus {
  outline: none;
  background: rgba(255, 255, 255, .8);
  border-color: rgba(47, 157, 240, .55);
  box-shadow: 0 0 0 3px rgba(47, 157, 240, .18);  /* taste-skill-ignore */
}
.glass-theme input::placeholder { color: var(--lg-ink-50); }
.glass-theme .field input { background: transparent; border: none; }
.glass-theme .field:focus-within { background: rgba(255, 255, 255, .75); border-color: rgba(47, 157, 240, .55); box-shadow: 0 0 0 3px rgba(47, 157, 240, .18); }  /* taste-skill-ignore */
.glass-theme .param-grid input, .glass-theme .code-row input { background: rgba(255, 255, 255, .55); border: 1px solid rgba(120, 150, 200, .35); color: var(--lg-ink); }  /* taste-skill-ignore */
.glass-theme .param-grid input:focus { border-color: rgba(47, 157, 240, .55); box-shadow: 0 0 0 3px rgba(47, 157, 240, .18); }  /* taste-skill-ignore */

/* ---------- 页内局部适配 ---------- */
.glass-theme #chatMsgs, .glass-theme #searchResults, .glass-theme #histList,
.glass-theme #hallList, .glass-theme #delayList { background: rgba(255, 255, 255, .45); border-radius: 14px; color: var(--lg-ink); }
.glass-theme #chatMsgs .muted, .glass-theme .hall-item .muted, .glass-theme .fareMeta { color: var(--lg-ink-80); }
.glass-theme .stop-ico, .glass-theme .hall-item b, .glass-theme .list-item b { color: var(--lg-ink); }
.glass-theme .login-title, .glass-theme .login-title span, .glass-theme .logo, .glass-theme .stop-name { color: var(--lg-ink); }
.glass-theme .stop-row { border-bottom: 1px dashed rgba(28, 39, 64, .14); }  /* taste-skill-ignore */
.glass-theme .fare-box .price, .glass-theme #farePrice, .glass-theme #dPlate { color: #1567b8; text-shadow: none; font-weight: 800; }  /* taste-skill-ignore */
.glass-theme .phone-num, .glass-theme #phoneShow, .glass-theme #statText { color: var(--lg-ink); }
.glass-theme .app-header .logo span { color: #2f9df0; }
.glass-theme .agree, .glass-theme .agree span, .glass-theme .agree a { color: var(--lg-ink-80); }
.glass-theme .mock-card { color: var(--lg-ink); }
.glass-theme #nodeList li, .glass-theme #paxList li { color: var(--lg-ink); }
.glass-theme .dCar, .glass-theme #dCar { color: var(--lg-ink-80); }
.glass-theme .freeCancelTip, .glass-theme #freeCancelTip { color: var(--lg-ink-80); }

/* ---------- 滚动条 ---------- */
.glass-theme ::-webkit-scrollbar { width: 8px; height: 8px; }
.glass-theme ::-webkit-scrollbar-thumb { background: rgba(120, 150, 200, .4); border-radius: 8px; }
.glass-theme ::-webkit-scrollbar-track { background: transparent; }

/* ---------- 减少动效降级 ---------- */
@media (prefers-reduced-motion: reduce) {
  body.glass-theme::before, body.glass-theme::after { animation: none; }
  .glass-theme .card, .glass-theme .mock-card, .glass-theme .sheet { animation: none; }
  .glass-theme .card, .glass-theme .sheet, .glass-theme .app-header { transition: none; }
}

/* ---------- 可读性微调（白卡深字） ---------- */
.glass-theme b, .glass-theme strong { color: var(--lg-ink); }
.glass-theme .btn.blue, .glass-theme .btn.dark { text-shadow: 0 1px 3px rgba(0, 0, 0, .25); }  /* taste-skill-ignore */
.glass-theme .card b { font-weight: 700; }

/* ---------- 搜索/聊天/客服面板（白净版，深字高对比） ---------- */
.glass-theme #searchPanel, .glass-theme #chatPanel, .glass-theme #supPanel { color: var(--lg-ink); }
.glass-theme #searchPanel .muted, .glass-theme #chatPanel .muted, .glass-theme #supPanel .muted { color: var(--lg-ink-80) !important; }
.glass-theme #searchPanel .btn.blue, .glass-theme #supPanel .btn.dark {
  background: linear-gradient(135deg, #3ba7f2, #6a5cf5); border: 1px solid rgba(255,255,255,.6);  /* taste-skill-ignore */
  box-shadow: 0 4px 16px rgba(59,130,240,.28); color: #fff; text-shadow: none;  /* taste-skill-ignore */
}
.glass-theme #searchPanel .btn.ghost, .glass-theme #chatPanel .btn.ghost {
  background: rgba(255,255,255,.6); color: var(--lg-ink); border: 1.5px solid rgba(120,150,200,.45);
}
.glass-theme #searchPanel .btn.ghost:hover, .glass-theme #chatPanel .btn.ghost:hover { background: rgba(255,255,255,.9); }
.glass-theme #searchResults .list-item b, .glass-theme #searchResults .list-item div { color: var(--lg-ink); }
.glass-theme #searchResults .list-item .muted { color: var(--lg-ink-80) !important; }
.glass-theme #searchResults { border: 1px solid rgba(120,150,200,.18); }  /* taste-skill-ignore */
.glass-theme #chatMsgs > div > div { color: var(--lg-ink); }
.glass-theme #chatMsgs .muted { color: var(--lg-ink-80) !important; }
.glass-theme #chatPanel .change-btn, .glass-theme #supPanel .change-btn { background: rgba(255,255,255,.7); color: var(--lg-ink); }
