/* =====================================================================
   赴星 · v2.0 视觉升级（星夜极光 · Starry Aurora）
   —— 加载于 styles.css / styles-v130.css 之后的覆盖层 ——
   仅改外观：不影响任何功能、接口、DOM 结构。
   主题：浅色「晨星极光」/ 暗色「深空极光」，同一套层次逻辑。
===================================================================== */

/* ---------- 0. 主题扩展变量 ---------- */
:root {
  --ink-hi: #1b2140;
  --aurora-1: rgba(99,128,255,.5);
  --aurora-2: rgba(167,120,255,.4);
  --aurora-3: rgba(255,142,190,.32);
  --aurora-4: rgba(255,180,94,.2);
  --ring-hi: rgba(255,255,255,.92);
  --shell-border: rgba(255,255,255,.7);
  --grad-brand: linear-gradient(135deg,#4a6cf7 0%,#6d5ce7 52%,#8b5cf6 100%);
  --grad-brand-hi: linear-gradient(135deg,#4a6cf7 0%,#7c5cf0 45%,#a855f7 72%,#ec4899 100%);
  --grad-gold: linear-gradient(135deg,#f5b94e,#f0942e);
  --sheen: linear-gradient(115deg,transparent 30%,rgba(255,255,255,.6) 48%,transparent 62%);
}
[data-theme="dark"] {
  --ink-hi:#eef1ff;
  --aurora-1: rgba(96,120,255,.42);
  --aurora-2: rgba(146,102,255,.34);
  --aurora-3: rgba(255,110,170,.2);
  --aurora-4: rgba(255,185,90,.14);
  --ring-hi: rgba(255,255,255,.12);
  --shell-border: rgba(255,255,255,.08);
}

/* ---------- 1. 画布：晨星 / 深空 ---------- */
body {
  background:
    radial-gradient(1100px 620px at 8% -8%, rgba(140,160,255,.34), transparent 60%),
    radial-gradient(900px 640px at 104% 6%, rgba(205,150,255,.30), transparent 55%),
    radial-gradient(1000px 760px at 60% 112%, rgba(255,164,206,.24), transparent 60%),
    linear-gradient(150deg,#e6e9fb 0%,#e9e6fa 42%,#efe7f8 100%);
}
[data-theme="dark"] body {
  background:
    radial-gradient(1100px 640px at 6% -10%, rgba(74,96,204,.35), transparent 60%),
    radial-gradient(900px 660px at 104% 4%, rgba(140,80,216,.26), transparent 55%),
    radial-gradient(1000px 800px at 55% 114%, rgba(214,70,150,.14), transparent 60%),
    linear-gradient(150deg,#070a15 0%,#0a0d1e 48%,#0e1024 100%);
}

.phone-shell {
  background:
    radial-gradient(480px 360px at 85% -10%, var(--aurora-1), transparent 62%),
    radial-gradient(460px 400px at -12% 34%, var(--aurora-2), transparent 60%),
    radial-gradient(520px 460px at 78% 108%, var(--aurora-3), transparent 62%),
    radial-gradient(300px 220px at 12% 88%, var(--aurora-4), transparent 70%),
    linear-gradient(168deg,#e7ebfc 0%,#ece7fb 48%,#f7e9f4 100%);
  box-shadow: 0 24px 70px rgba(31,38,135,.2), 0 6px 20px rgba(31,38,135,.1);
}
[data-theme="dark"] .phone-shell {
  background:
    radial-gradient(520px 400px at 88% -12%, rgba(96,120,255,.30), transparent 60%),
    radial-gradient(500px 420px at -14% 30%, rgba(132,92,238,.22), transparent 60%),
    radial-gradient(560px 500px at 80% 112%, rgba(233,74,150,.16), transparent 62%),
    radial-gradient(320px 240px at 10% 90%, rgba(255,176,80,.10), transparent 70%),
    linear-gradient(168deg,#0a0d1e 0%,#0d0f23 50%,#120f26 100%);
}

/* 彩色光斑更柔、更大 */
.phone-shell::before {
  width: 430px; height: 430px; top: -130px; right: -120px;
  background: radial-gradient(circle, rgba(120,146,255,.5), transparent 66%);
  opacity:.8;
}
.phone-shell::after {
  width: 400px; height: 400px; bottom: 6%; left: -130px;
  background: radial-gradient(circle, rgba(196,130,255,.42), transparent 66%);
  opacity:.75;
}
#app::before {
  background: radial-gradient(circle, rgba(255,158,200,.5), transparent 68%);
  width: 340px; height: 340px; right: -140px; top: 42%;
}
[data-theme="dark"] .phone-shell::before { background: radial-gradient(circle, rgba(110,138,255,.42), transparent 66%); opacity:.9; }
[data-theme="dark"] .phone-shell::after  { background: radial-gradient(circle, rgba(168,110,255,.34), transparent 66%); opacity:.85; }
[data-theme="dark"] #app::before { background: radial-gradient(circle, rgba(255,120,170,.28), transparent 68%); }

/* 星星带柔光、暗夜更亮 */
.deco-star { background: rgba(255,255,255,.9); box-shadow: 0 0 10px rgba(255,255,255,.7); opacity:.5; }
[data-theme="dark"] .deco-star { background:#fff; box-shadow:0 0 12px rgba(180,196,255,.9); opacity:.75; }

/* ---------- 2. 顶栏标题：尾缀星光 + 更深渐变 ---------- */
.topbar .title {
  background: linear-gradient(120deg,#3a56d4 0%,#7c5cf0 45%,#a855f7 78%,#d946b8 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
[data-theme="dark"] .topbar .title { background: linear-gradient(120deg,#9fb6ff,#b79bff 45%,#d7a2ff 78%,#ff9fe0); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.topbar .title::after {
  content:"✦";
  -webkit-text-fill-color:#f5b94e; color:#f5b94e;
  font-size:46%; font-weight:700; margin-left:7px;
  vertical-align:6px; display:inline-block;
  filter:drop-shadow(0 0 8px rgba(245,185,78,.75));
  animation: sparkleDrift 3.4s ease-in-out infinite;
}
@keyframes sparkleDrift { 0%,100%{ transform:scale(1) rotate(0deg); opacity:.85 } 50%{ transform:scale(1.18) rotate(16deg); opacity:1 } }
.topbar .sub { letter-spacing:.2px; }


.greet-name { font-size:15px; }
.greet-tail { color:var(--text-2); font-size:12px; }

/* ---------- 3. 卡片：微光纸 + 发丝描边 ---------- */
.card {
  background:
    linear-gradient(160deg, rgba(255,255,255,.94), rgba(246,246,255,.96) 55%, rgba(252,243,255,.94));
  border:1px solid rgba(255,255,255,.9);
  box-shadow:
    0 0 0 .5px rgba(99,112,255,.10),
    0 10px 26px rgba(31,38,135,.07),
    0 2px 6px rgba(31,38,135,.05),
    inset 0 1px 0 rgba(255,255,255,.95);
}
[data-theme="dark"] .card {
  background:linear-gradient(160deg, rgba(26,31,52,.92), rgba(24,27,48,.94) 55%, rgba(31,26,52,.92));
  border-color:rgba(255,255,255,.09);
  box-shadow:
    0 0 0 .5px rgba(255,255,255,.04),
    0 14px 34px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.09);
}
.card h3 { letter-spacing:.2px; }

/* 分段控件：极光容器 */
.seg {
  background:rgba(124,92,240,.07);
  border:1px solid rgba(124,92,240,.12);
  box-shadow:inset 0 1px 4px rgba(31,38,135,.05);
}
[data-theme="dark"] .seg { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.07); }
.seg button.on {
  background:linear-gradient(160deg,#ffffff,#f4f1ff);
  box-shadow:0 4px 14px rgba(84,84,200,.14), inset 0 1px 0 rgba(255,255,255,.9);
  color:#4a3f9e;
}
[data-theme="dark"] .seg button.on { background:linear-gradient(160deg,#2b2f52,#232546); color:#e7e2ff; box-shadow:0 4px 14px rgba(0,0,0,.35); }
.seg button.on svg { stroke:#7c5cf0; }

/* chip / 分类胶囊 */
.chip { border:1px solid rgba(124,92,240,.16); }
.chip.active, .chip.active:hover { background:var(--grad-brand); color:#fff; border-color:transparent; box-shadow:0 5px 14px rgba(109,92,231,.34); }
/* 标签 */
.tag { letter-spacing:.3px; }
.tag-blue { background:linear-gradient(135deg,rgba(74,108,247,.16),rgba(124,92,240,.16)); }
.tag-gold { background:linear-gradient(135deg,rgba(245,185,78,.2),rgba(245,150,80,.2)); }

/* 输入框 */
.input,.textarea {
  background:linear-gradient(160deg, rgba(255,255,255,.92), rgba(247,246,255,.9));
  border:1px solid rgba(124,92,240,.14);
  box-shadow:inset 0 2px 6px rgba(31,38,135,.04);
}
[data-theme="dark"] .input,[data-theme="dark"] .textarea { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.1); }
.input:focus,.textarea:focus {
  border-color:transparent;
  background:linear-gradient(160deg,#fff,#fbfaff);
  box-shadow:0 0 0 3px rgba(109,92,231,.18);
}
[data-theme="dark"] .input:focus,[data-theme="dark"] .textarea:focus { background:rgba(255,255,255,.09); box-shadow:0 0 0 3px rgba(139,122,246,.26); }

/* ---------- 4. 按钮：流光 ---------- */
.btn-primary {
  background:linear-gradient(135deg,#4a6cf7 0%,#6d5ce7 48%,#8b5cf6 74%,#a855f7 100%);
  background-size:170% 170%;
  box-shadow:0 8px 22px rgba(109,92,231,.34), inset 0 1px 0 rgba(255,255,255,.34);
}
.btn-primary:hover { box-shadow:0 12px 30px rgba(109,92,231,.42); }
.btn-ghost { border:1px solid rgba(124,92,240,.16); background:linear-gradient(160deg,rgba(255,255,255,.86),rgba(248,246,255,.8)); backdrop-filter:blur(14px); }
[data-theme="dark"] .btn-ghost { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.12); }
.icon-btn { border:1px solid rgba(124,92,240,.14); }



/* ---------- 5. Hero：星夜航程 ---------- */
.hero-card { /* 非首页通用 hero（纪念页等） */
  background:
    radial-gradient(140% 90% at 14% 0%, rgba(140,160,255,.9), transparent 55%),
    radial-gradient(120% 100% at 92% 12%, rgba(178,120,255,.85), transparent 55%),
    linear-gradient(135deg,#3a4fd0 0%,#5545c8 48%,#7b3aa8 100%);
  box-shadow:0 18px 44px rgba(74,70,180,.4), 0 4px 12px rgba(74,70,180,.22);
}
.hero-card::after { background:linear-gradient(150deg,rgba(255,255,255,.22),rgba(255,255,255,.06) 42%,transparent 70%); }

.hero-home {
  background:
    radial-gradient(130% 90% at 8% -6%, rgba(96,120,255,.95), transparent 55%),
    radial-gradient(120% 110% at 96% 6%, rgba(150,100,255,.8), transparent 55%),
    radial-gradient(130% 120% at 60% 118%, rgba(233,96,168,.5), transparent 60%),
    linear-gradient(150deg,#1d2354 0%,#2d2665 52%,#5a2b70 100%);
}
[data-theme="dark"] .hero-home { background:
    radial-gradient(130% 90% at 8% -6%, rgba(96,120,255,.6), transparent 55%),
    radial-gradient(120% 110% at 96% 6%, rgba(150,100,255,.5), transparent 55%),
    radial-gradient(130% 120% at 60% 118%, rgba(233,96,168,.32), transparent 60%),
    linear-gradient(150deg,#141a3c,#241f50 52%,#4a2158 100%);
}
.hero-home::before {
  background:
    radial-gradient(circle at 82% 18%, rgba(255,255,255,.28), transparent 26%),
    linear-gradient(180deg, rgba(6,9,28,.05) 0%, rgba(6,9,28,.16) 42%, rgba(6,9,28,.5) 78%, rgba(6,9,28,.72) 100%);
}
.hero-home::after {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(3px 3px at 18% 24%, #fff 0 100%, transparent), /* 星星由 .stars-bg 提供，这里只做柔光 */
    linear-gradient(115deg, transparent 30%, rgba(255,255,255,.10) 48%, transparent 64%);
  background-size:auto, 260% 100%;
  animation:heroDrift 7s ease-in-out infinite;
}
@keyframes heroDrift { 0%,100%{ background-position:0 0, 115% 0 } 50%{ background-position:0 0, -20% 0 } }
.hero-home .hero-pill { background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,.1)); border-color:rgba(255,255,255,.5); letter-spacing:2px; box-shadow:inset 0 1px 0 rgba(255,255,255,.3); }
.hero-home .hero-status {
  font-weight:800; letter-spacing:.6px;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28);
  padding:2px 10px; border-radius:999px; backdrop-filter:blur(6px);
}
.hero-home .artist { font-size:24px; font-weight:900; letter-spacing:.4px;
  background:linear-gradient(100deg,#fff 30%,#ffe9b0 55%,#fff 80%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  text-shadow:none;
}
[data-theme="dark"] .hero-home .artist { background:linear-gradient(100deg,#fff 30%,#ffe6ad 55%,#fff 80%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero-home .place { color:rgba(255,255,255,.95); font-weight:600; }
.hero-home .place svg { stroke:#ffe9a8; }
.hero-home .countdown .unit { background:rgba(8,10,28,.5); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(8px); }
.hero-home .countdown .unit::after { content:''; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(180deg,rgba(255,255,255,.14),transparent 55%); pointer-events:none; }
.hero-home .countdown .num { color:#fff; }
.hero-home .countdown .lbl { color:rgba(255,255,255,.72); }
.hero-top { z-index:2; }

/* 空状态 / 首页其它卡片入口 */
.empty-start .ei { box-shadow:0 10px 24px rgba(124,92,240,.35), inset 0 1px 0 rgba(255,255,255,.5); }

/* 首页迷你统计（ht）：彩色冰格 */
.ht { background:linear-gradient(165deg, rgba(255,255,255,.9), rgba(248,245,255,.94)); }
[data-theme="dark"] .ht { background:linear-gradient(165deg, rgba(33,37,60,.9), rgba(28,30,50,.95)); border-color:rgba(255,255,255,.08); }
.ht b { background:linear-gradient(120deg,#3a56d4,#7c5cf0 70%,#a855f7); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; font-weight:900; }
[data-theme="dark"] .ht b { background:linear-gradient(120deg,#8fb0ff,#b79bff 70%,#d7a2ff); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.ht-ic { box-shadow:0 3px 10px rgba(31,38,135,.16); border:1px solid rgba(255,255,255,.85); }
[data-theme="dark"] .ht-ic { border-color:rgba(255,255,255,.14); }

/* 速办 / 快捷入口 */
.qt { background:linear-gradient(165deg, #fff, #faf5ff); }
[data-theme="dark"] .qt { background:linear-gradient(165deg, rgba(33,37,60,.94), rgba(30,30,52,.96)); }
.qt:active,.f:active,.ht:active { transform:scale(.97); }
.qt-ic { box-shadow:0 4px 12px rgba(109,92,231,.3); }
.qt-bar i { background:linear-gradient(90deg,#6d5ce7,#a855f7); box-shadow:0 0 8px rgba(124,92,240,.5); }

/* 首页「大家都在聊」 */
.hot-mini { background:linear-gradient(160deg, #fff, #f3f6ff); }
[data-theme="dark"] .hot-mini { background:linear-gradient(160deg, rgba(33,37,60,.94), rgba(28,32,52,.96)); }
.hot-cv { box-shadow:inset 0 0 0 1px rgba(255,255,255,.5); }

/* 年度回忆册入口：暗紫烫金 */
.recap-banner {
  background:
    radial-gradient(120% 160% at 88% -30%, rgba(255,255,255,.34), transparent 55%),
    radial-gradient(110% 150% at -12% 120%, rgba(255,200,120,.3), transparent 55%),
    linear-gradient(120deg,#3f3a92 0%,#5b3fae 52%,#8d3f9c 100%);
  box-shadow:0 12px 30px rgba(74,50,160,.32), inset 0 1px 0 rgba(255,255,255,.3);
}
[data-theme="dark"] .recap-banner { box-shadow:0 12px 30px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.16); }
.recap-banner::after {
  background:
    radial-gradient(2px 2px at 24% 22%, rgba(255,255,255,.9), transparent),
    radial-gradient(2px 2px at 66% 34%, rgba(255,255,255,.7), transparent),
    radial-gradient(circle, rgba(255,255,255,.4), transparent 70%);
  background-size:auto,auto,100% 100%;
}
.recap-banner-title { color:#fff; }
.recap-banner-sub { color:rgba(255,255,255,.88); }
.recap-banner .recap-banner-title svg { stroke:#ffd98e; }
.recap-banner-go { background:rgba(255,255,255,.2); color:#ffe6ad; }

/* ---------- 6. 回忆页 ---------- */
.view-cap { color:var(--text-3); letter-spacing:.3px; }
.stat-grid .stat { background:linear-gradient(170deg, rgba(255,255,255,.92), rgba(246,246,255,.96)); }
[data-theme="dark"] .stat-grid .stat { background:linear-gradient(170deg, rgba(26,31,52,.9), rgba(23,25,44,.95)); border-color:rgba(255,255,255,.08); }
.stat .n { background:linear-gradient(120deg,#3a56d4,#7c5cf0 60%,#a855f7); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
[data-theme="dark"] .stat .n { background:linear-gradient(120deg,#9fb6ff,#b79bff 60%,#e0a2ff); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* 票根：夜场质感 */
.ticket {
  border:1px solid rgba(124,92,240,.12);
  box-shadow:0 16px 34px rgba(31,38,135,.13), 0 4px 10px rgba(31,38,135,.06);
  background:linear-gradient(120deg,#fff 0%,#fbfaff 100%);
}
[data-theme="dark"] .ticket { border-color:rgba(255,255,255,.1); background:linear-gradient(120deg,#1c2036,#191c31); }
.ticket::before {
  content:''; position:absolute; left:50px; top:0; bottom:0; z-index:2; pointer-events:none;
  border-left:2px dashed rgba(124,92,240,.22);
}
[data-theme="dark"] .ticket::before { border-left-color:rgba(255,255,255,.16); }
.t-side { box-shadow:inset 0 0 0 1px rgba(255,255,255,.2), inset 0 0 24px rgba(255,255,255,.12); }
.t-side-mark { filter:drop-shadow(0 0 8px rgba(255,255,255,.85)); animation:markGlow 3s ease-in-out infinite; }
@keyframes markGlow { 0%,100%{ opacity:.85; transform:scale(1) } 50%{ opacity:1; transform:scale(1.12) } }
.t-name { letter-spacing:.3px; }
.t-flag { letter-spacing:.6px; }
.ticket.st-night { box-shadow:0 18px 36px rgba(20,15,40,.35); }
.ticket.st-night::before { border-left-color:rgba(215,179,94,.3); }
.ticket.st-paper::before { border-left-color:rgba(150,110,60,.35); }
.ticket.st-live::before { border-left-color:rgba(74,150,255,.3); }
/* 观演印章：更真实 */
.stamp {
  display:flex; align-items:center; justify-content:center; text-align:center;
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.82); border:2.5px double #e5484d; color:#e5484d;
  font-size:8.5px; font-weight:800; line-height:1.15; letter-spacing:.5px;
  transform:rotate(-14deg); box-shadow:0 2px 6px rgba(229,72,77,.18);
}
[data-theme="dark"] .stamp { background:rgba(20,22,38,.8); }

/* 时间轴：发丝光轨 + 星点 */
.tl::before { background:linear-gradient(to bottom, rgba(124,92,240,.9), rgba(124,92,240,.34) 60%, rgba(168,85,247,.08)); width:3px; box-shadow:0 0 10px rgba(124,92,240,.5); }
.tl-node::before { border-color:#fff; box-shadow:0 0 0 3px rgba(124,92,240,.18), 0 0 12px rgba(124,92,240,.8); }
[data-theme="dark"] .tl-node::before { border-color:#101226; }
.tl-sec-head { display:flex; align-items:baseline; gap:8px; }
.tl-year {
  font-size:21px; font-weight:900; letter-spacing:1px; line-height:1;
  background:linear-gradient(120deg,#3a56d4,#7c5cf0 60%,#a855f7);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
[data-theme="dark"] .tl-year { background:linear-gradient(120deg,#9fb6ff,#b79bff 60%,#e0a2ff); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.tl-sec-count { padding:2px 10px; border-radius:999px; background:rgba(124,92,240,.12); color:#6d5ce7; font-weight:800; letter-spacing:.6px; }
[data-theme="dark"] .tl-sec-count { background:rgba(139,122,246,.16); color:#c4b2ff; }
.tl-card { background:linear-gradient(165deg, rgba(255,255,255,.96), rgba(247,245,255,.94)); border:1px solid rgba(124,92,240,.1); box-shadow:0 6px 18px rgba(31,38,135,.05); }
[data-theme="dark"] .tl-card { background:linear-gradient(165deg, rgba(33,37,60,.94), rgba(28,30,50,.95)); border-color:rgba(255,255,255,.07); }
.tl-chip.done { background:linear-gradient(135deg,rgba(34,197,94,.18),rgba(16,185,129,.18)); color:#0e9f6e; }
.tl-chip.up { background:rgba(74,108,247,.12); color:#3a56d4; }
[data-theme="dark"] .tl-chip.done { color:#4ade80; }
[data-theme="dark"] .tl-chip.up { color:#9fb6ff; }
.tl-open { box-shadow:0 4px 12px rgba(109,92,231,.18); }
.tl-artist { letter-spacing:.2px; }

/* 足迹地图卡片 */
.map-wrap { border:1px solid rgba(124,92,240,.14); box-shadow:0 8px 22px rgba(31,38,135,.06); }
.map-rank-num { border:1px solid rgba(255,255,255,.6); }
.map-hint { font-size:11px; font-weight:500; color:var(--text-3); margin-left:6px; }
.map-wrap .china-map { transform-origin:0 0; will-change:transform; cursor:grab; }
.map-wrap .china-map:active { cursor:grabbing; }
.map-ctl {
  position:absolute; top:10px; right:10px; z-index:5;
  display:flex; flex-direction:column; gap:6px;
}
.map-ctl-btn {
  width:30px; height:30px; padding:0;
  display:flex; align-items:center; justify-content:center;
  border-radius:10px; font-size:17px; line-height:1;
  background:rgba(255,255,255,.85); color:#5b4bd6;
  border:1px solid rgba(124,92,240,.22);
  box-shadow:0 4px 12px rgba(31,38,135,.16);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.map-ctl-btn:active { transform:scale(.92); }
.map-ctl-btn[data-map-ctl="reset"] { font-size:15px; }
[data-theme="dark"] .map-ctl-btn { background:rgba(38,42,70,.92); color:#cfc4ff; border-color:rgba(255,255,255,.14); box-shadow:0 4px 12px rgba(0,0,0,.4); }

/* ---- 纪念票整票大版：票纸嵌套海报 + 票面信息 + 圆形裁剪副券 ---- */
.memt-grid { display:flex; flex-direction:column; gap:38px; margin-top:8px; }
.memt {
  position:relative; cursor:pointer; -webkit-tap-highlight-color:transparent;
  filter:drop-shadow(0 20px 30px rgba(52,38,12,.16));
  transition:transform .14s ease, filter .14s ease;
}
[data-theme="dark"] .memt { filter:drop-shadow(0 22px 36px rgba(0,0,0,.55)); }
.memt:active { transform:scale(.984); filter:drop-shadow(0 12px 18px rgba(52,38,12,.12)); }
.memt-inner {
  position:relative;
  border-radius:26px 26px 0 0;
  padding-top:24px;
  background:
    radial-gradient(rgba(124,94,46,.05) 0.6px, rgba(255,255,255,0) 0.9px) 0 0/3px 3px,
    linear-gradient(180deg,#fffdf6 0%,#f9efdc 46%,#f6ecd6 100%);
}
.memt-inner::before { /* 票纸顶部极细金色压线（沿圆角内侧） */
  content:''; position:absolute; left:24px; right:24px; top:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(190,156,100,.5) 22%, rgba(190,156,100,.5) 78%, transparent);
}
[data-theme="dark"] .memt-inner { background:linear-gradient(180deg,#fbf3e2 0%,#f2e7d0 46%,#eee0c6 100%); }

/* 内嵌大海报 */
.mt-poster {
  position:relative; aspect-ratio:.96; margin:0 20px;
  border-radius:8px; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:15px 16px 17px; color:#fff;
  background-color:#23244d;
  box-shadow:0 1px 0 rgba(255,255,255,.5), 0 10px 20px -6px rgba(74,46,8,.38), 0 0 0 1px rgba(172,132,62,.62);
}
.mt-poster::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 64% at 88% -10%, rgba(255,255,255,.16), transparent 54%),
    radial-gradient(120% 80% at 8% 110%, rgba(255,255,255,.06), transparent 58%),
    linear-gradient(180deg, rgba(8,9,20,.14) 0%, rgba(8,9,20,0) 28%, rgba(8,9,20,.02) 50%, rgba(6,7,15,.4) 74%, rgba(4,5,10,.9) 100%);
}
.mt-fx {
  position:absolute; top:68px; right:10px; z-index:0;
  display:none; font-size:40px; line-height:1; text-align:right;
  font-weight:900; letter-spacing:4px; color:rgba(255,255,255,.15);
  font-family:Georgia,'Times New Roman',serif;
}
.mt-poster.noart .mt-fx { display:block; }
.mt-poster-top { position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.mt-brand {
  display:inline-flex; align-items:center; gap:6px;
  font-size:11px; font-weight:800; letter-spacing:1.5px;
  padding:6px 12px; border-radius:999px; white-space:nowrap;
  color:#fff; background:rgba(16,18,40,.3);
  border:1px solid rgba(255,255,255,.3);
  backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
  box-shadow:0 2px 10px rgba(0,0,0,.14);
}
.mt-brand i { font-style:normal; font-size:10px; color:#ffd98a; text-shadow:0 0 8px rgba(255,217,138,.75); }
.mt-pill {
  flex:none; display:inline-flex; align-items:center;
  font-size:11px; font-weight:800; letter-spacing:.6px;
  padding:6px 12px; border-radius:999px; white-space:nowrap;
  color:#fff; background:rgba(14,16,34,.32);
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.mt-pill.ok { color:#4a3000; background:linear-gradient(135deg,#ffd98a,#efae3f); border-color:rgba(255,255,255,.66); box-shadow:0 4px 16px rgba(238,160,50,.5); }
.mt-pill.miss { color:rgba(255,255,255,.85); background:rgba(14,16,34,.38); }
.mt-poster-copy { position:relative; z-index:2; margin-top:auto; min-width:0; }
.mt-kick {
  font-size:11.5px; font-weight:700; letter-spacing:3.2px;
  color:rgba(255,255,255,.92); margin-bottom:7px;
  text-shadow:0 1px 8px rgba(0,0,0,.34);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.mt-name {
  font-size:28px; font-weight:900; line-height:1.16; letter-spacing:.4px;
  text-shadow:0 2px 18px rgba(0,0,0,.55);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.mt-line { display:flex; flex-wrap:wrap; gap:7px 16px; margin-top:13px; }
.mt-line-i { display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:600; color:rgba(255,255,255,.97); text-shadow:0 1px 8px rgba(0,0,0,.5); }
.mt-line-i svg { flex:none; }
.mt-where { display:flex; align-items:center; gap:5px; margin-top:6px; font-size:12.5px; font-weight:600; color:rgba(255,255,255,.94); text-shadow:0 1px 8px rgba(0,0,0,.5); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mt-where svg { flex:none; }

/* 票面信息区（票纸纸面，紧接海报下方） */
.mt-body { position:relative; padding:18px 20px 8px; }
.mt-event { position:relative; z-index:1; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.mt-event-l { min-width:0; }
.mt-event-name { font-size:16px; font-weight:800; line-height:1.32; color:#2b2315; letter-spacing:.3px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.mt-event-sub { display:flex; align-items:center; gap:5px; margin-top:6px; font-size:9.5px; letter-spacing:2px; color:#a2885a; font-weight:600; }
.mt-event-sub svg { flex:none; }
.mt-seal {
  flex:none; position:relative; margin-top:3px; width:46px; height:46px;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  font-size:11px; font-weight:900; letter-spacing:.6px;
  color:#4c3d6b;
  border-radius:50%;
  background:
    radial-gradient(circle at 33% 27%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.45) 32%, rgba(255,255,255,0) 54%),
    conic-gradient(from 205deg, #d7b6f4, #a9c8ff, #b9efd9, #ffe6a9, #ffc2cd, #e0c0f2, #d7b6f4);
  border:1.5px solid rgba(255,255,255,.98);
  box-shadow:0 0 0 1px rgba(255,255,255,.55), 0 1px 1.5px rgba(46,30,80,.22), 0 3px 5px -1px rgba(46,30,80,.3), 0 6px 11px -2px rgba(46,30,80,.3), 0 11px 20px -6px rgba(46,30,80,.35);
  transform:rotate(-7deg);
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}
.mt-seal::after {
  content:''; position:absolute; inset:-25% -70%; pointer-events:none;
  background:linear-gradient(115deg, transparent 40%, rgba(255,255,255,.85) 49%, rgba(255,255,255,.18) 55%, transparent 63%);
  transform:translateX(-80%) skewX(-12deg);
  animation:mtHolo 3.6s ease-in-out infinite;
}
@keyframes mtHolo {
  0%, 20% { transform:translateX(-80%) skewX(-12deg); }
  55%, 100% { transform:translateX(80%) skewX(-12deg); }
}
.mt-grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:16px 24px; margin-top:16px; }
.mt-cell { display:flex; flex-direction:column; min-width:0; }
.mt-cell > span { font-size:9.5px; letter-spacing:1.4px; color:#ab9366; margin-bottom:3px; }
.mt-cell b { font-size:14px; font-weight:700; color:#382d1a; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-variant-numeric:tabular-nums; }
.mt-cell-price b { font-size:18px; font-weight:800; color:#963a26; letter-spacing:.2px; }
.mt-msg {
  position:relative; z-index:1; margin:15px 0 4px; text-align:center;
  font-size:12px; line-height:1.55; color:#8d7444; letter-spacing:.5px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* 圆形裁剪副券：居中对称版式（月桂两侧 + 专属编号），保留打孔虚线/扇贝齿 */
.mt-stub {
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; padding:14px 20px 23px; text-align:center;
}
.mt-stub::before { /* 主票与副券之间的打孔虚线：简洁虚线 */
  content:''; position:absolute; left:0; right:0; top:0; height:1px; pointer-events:none;
  border-top:2px dashed rgba(150,116,60,.5);
  background:none;
}
.mt-stub::after { /* 底部半圆齿裁剪：纸面向下延伸的扇贝沿（非三角撕边） */
  content:''; position:absolute; left:0; right:0; top:100%; height:13px; pointer-events:none;
  background-image:radial-gradient(circle at 13px .5px, #f6ecd6 0 12px, rgba(246,236,214,0) 12.8px);
  background-size:26px 13px; background-repeat:repeat-x; background-position:center 0;
}
[data-theme="dark"] .mt-stub::after {
  background-image:radial-gradient(circle at 13px .5px, #eee0c6 0 12px, rgba(238,224,198,0) 12.8px);
}
[data-theme="dark"] .mt-stub::before {
  content:''; position:absolute; left:0; right:0; top:0; height:1px; pointer-events:none;
  border-top:2px dashed rgba(160,128,74,.55);
  background:none;
}
.mt-stub-crest { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; gap:10px; min-width:0; }
.mt-lau { position:relative; z-index:1; flex:none; width:30px; height:26px; color:#c19a4e; opacity:.9; display:inline-flex; align-items:center; justify-content:center; }
.mt-lau svg { width:30px; height:26px; overflow:visible; }
.mt-lau-r { transform:scaleX(-1); }
.mt-stub-mark {
  position:relative; z-index:1; flex:none; font-style:normal; font-size:13px; line-height:1;
  color:#b8893a; display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:50%;
  background:#fffdf6; border:1px solid #dfc48e;
  box-shadow:0 0 0 2px rgba(226,202,151,.32), inset 0 0 0 1px #fff;
}
.mt-stub-brand {
  position:relative; z-index:1; font-size:12.5px; font-weight:900; letter-spacing:2.2px;
  color:#33291a; white-space:nowrap;
}
.mt-stub-note {
  position:relative; z-index:1; display:block; max-width:250px;
  font-size:9.5px; font-weight:500; letter-spacing:1.2px; color:#8a7348;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px;
}
.mt-serial { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:3px; margin-top:3px; min-width:0; }
.mt-serial span { font-size:8.5px; letter-spacing:2.2px; color:#a08a60; }
.mt-serial b {
  position:relative; font-size:15px; font-weight:800; letter-spacing:3px; font-variant-numeric:tabular-nums; white-space:nowrap;
  color:#6b5126; font-family:Georgia,'Times New Roman',serif;
}
.mt-wm {
  position:absolute; z-index:0; left:0; right:0; top:33%; transform:translateY(-50%);
  text-align:center; font-style:normal; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  pointer-events:none; user-select:none; max-width:86%; margin:0 auto;
  font-size:30px; font-weight:900; letter-spacing:3px; line-height:1.2;
  color:rgba(96,72,34,.065); font-family:Georgia,'Times New Roman',serif;
}
[data-theme="dark"] .mt-wm { color:rgba(255,255,255,.05); }
/* ---- 纪念票双页瀑布（与大图 100% 同款，仅整体缩小）+ 大图页 ---- */
.memt-masonry { display:flex; align-items:flex-start; gap:12px; margin-top:12px; }
.mtm-col { flex:1; min-width:0; display:flex; flex-direction:column; gap:16px; }
.mtm-cell { position:relative; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.mtm-cell .memt { pointer-events:none; }
.mtm-stage { transform-origin:top left; will-change:transform; }
.mtm-cell:active { opacity:.86; }

.mt-show { margin-top:10px; }
.mt-show .memt { filter:drop-shadow(0 20px 30px rgba(52,38,12,.16)); }
.mt-show-back {
  display:flex; align-items:center; justify-content:center; gap:6px;
  margin:20px auto 30px; padding:10px 18px; border:none; cursor:pointer;
  font-size:12.5px; font-weight:700; color:#6d5a38;
  background:rgba(255,255,255,.6); border:1px solid rgba(190,160,95,.4);
  border-radius:999px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.mt-show-back:active { transform:scale(.97); }

/* 纪念票大图页：编辑样式入口 + 纯净截图小眼睛 */
.mt-show-page { position:relative; }
.mt-tools { display:inline-flex; align-items:center; gap:7px; }
.mt-edit, .mt-clean {
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; cursor:pointer; border:1px solid transparent;
  font-size:11.5px; font-weight:700; transition:background .2s ease, color .2s ease, border-color .2s ease, opacity .3s ease, transform .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.mt-edit {
  gap:4px; padding:6px 11px; color:#5a48a0; white-space:nowrap;
  background:rgba(255,255,255,.82); border-color:rgba(124,104,224,.4);
}
.mt-edit svg { width:12px !important; height:12px !important; stroke:currentColor; }
.mt-clean {
  width:27px; height:27px; color:#fff; flex:none;
  background:rgba(14,16,44,.22); border-color:rgba(255,255,255,.5);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.mt-clean svg { width:14px !important; height:14px !important; stroke:#fff; }
.mt-edit:hover, .mt-clean:hover, .mt-clean.on { background:#6d5ce7; color:#fff; border-color:transparent; }
.mt-edit:active, .mt-clean:active { transform:scale(.92); }
.mt-show-page > .mt-clean { position:absolute; top:10px; right:12px; }
body.clean-armed .mt-clean { opacity:0; pointer-events:none; }
body.clean-shot .mt-show-page .back-bar,
body.clean-shot .mt-show-page .mt-show-back { display:none !important; }
[data-theme="dark"] .mt-edit { background:rgba(255,255,255,.1); color:#c3b8ef; border-color:rgba(160,140,240,.35); }
[data-theme="dark"] .mt-clean { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.3); }

/* ---------- 7. 社区：星光公告 + 杂志瀑布 ---------- */
.community-banner {
  background:
    radial-gradient(130% 200% at 92% -40%, rgba(255,255,255,.4), transparent 55%),
    linear-gradient(120deg,#41409c 0%,#5a3eae 55%,#873a94 100%);
  border:none; color:#fff;
  box-shadow:0 10px 24px rgba(80,60,180,.26), inset 0 1px 0 rgba(255,255,255,.28);
}
[data-theme="dark"] .community-banner { box-shadow:0 10px 24px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.14); }
.community-banner .banner-icon {
  width:34px; height:34px; flex:none; display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; background:rgba(255,255,255,.2); color:#ffe9ad; font-size:15px;
  box-shadow:0 0 0 4px rgba(255,255,255,.14);
}
.community-banner .banner-title { color:#fff; }
.community-banner .banner-desc { color:rgba(255,255,255,.84); }

.community-header {
  background:linear-gradient(180deg, rgba(231,236,255,.94), rgba(236,232,253,.86) 86%, rgba(236,232,253,0));
}
[data-theme="dark"] .community-header { background:linear-gradient(180deg, rgba(11,14,28,.96), rgba(13,14,30,.88) 86%, rgba(13,14,30,0)); }
.search-box {
  background:linear-gradient(160deg, rgba(255,255,255,.94), rgba(248,246,255,.9));
  border:1px solid rgba(124,92,240,.14);
  box-shadow:0 4px 14px rgba(31,38,135,.06), inset 0 1px 0 rgba(255,255,255,.8);
}
[data-theme="dark"] .search-box { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.1); }
.search-box:focus-within { border-color:rgba(124,92,240,.5); box-shadow:0 0 0 4px rgba(124,92,240,.14); }
[data-theme="dark"] .search-box:focus-within { box-shadow:0 0 0 4px rgba(139,122,246,.22); }

.cat-tab { border:1px solid rgba(124,92,240,.14); background:linear-gradient(160deg,rgba(255,255,255,.86),rgba(248,246,255,.8)); }
[data-theme="dark"] .cat-tab { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.1); color:#a8b0c8; }
.cat-tab.on {
  background:linear-gradient(135deg,#4a6cf7,#7c5cf0 60%,#a855f7);
  box-shadow:0 6px 16px rgba(109,92,231,.34), inset 0 1px 0 rgba(255,255,255,.3);
}
[data-theme="dark"] .cat-tab.on { box-shadow:0 6px 16px rgba(0,0,0,.4); }

/* 帖子封面渐变画布（无图帖） */
.xh-cover .xh-ph { color:#fff; }
.xh-ph { background:linear-gradient(150deg,#5b6cf5 0%,#7c5cf0 55%,#a855f7 100%); }
.xh-ph::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(2px 2px at 24% 18%, rgba(255,255,255,.95), transparent),
    radial-gradient(3px 3px at 70% 12%, rgba(255,255,255,.8), transparent),
    radial-gradient(2px 2px at 44% 34%, rgba(255,255,255,.7), transparent),
    radial-gradient(110% 90% at 90% 6%, rgba(255,255,255,.28), transparent 55%),
    radial-gradient(90% 80% at 0% 100%, rgba(255,200,120,.3), transparent 60%);
}
.xh-ph i { position:relative; z-index:1; filter:drop-shadow(0 2px 10px rgba(0,0,0,.25)); }
.xh-ph span { position:relative; z-index:1; text-shadow:0 1px 8px rgba(0,0,0,.35); }
.xh-ph-guide    { background:linear-gradient(150deg,#4a6cf7 0%,#6d5ce7 55%,#9d5cff 100%); }
.xh-ph-checklist{ background:linear-gradient(150deg,#0e9f8f 0%,#14b8a6 45%,#2f7cf0 115%); }
.xh-ph-chat     { background:linear-gradient(150deg,#f0577e 0%,#d946b8 55%,#7c5cf0 115%); }
.xh-ph-ticket   { background:linear-gradient(150deg,#f0942e 0%,#f5b94e 45%,#ec4899 120%); }
.xh-ph-ticket::after { background:
    radial-gradient(2px 2px at 24% 18%, rgba(255,255,255,.9), transparent),
    radial-gradient(3px 3px at 70% 12%, rgba(255,255,255,.75), transparent),
    radial-gradient(110% 90% at 90% 6%, rgba(255,255,255,.3), transparent 55%),
    radial-gradient(90% 90% at 4% 100%, rgba(255,110,150,.4), transparent 60%);
}
.xh-ph-0, .xh-ph-undefined { background:linear-gradient(150deg,#4a6cf7,#8b5cf6 60%,#a855f7); }

.xh-card { border-radius:14px; overflow:hidden; box-shadow:0 6px 20px rgba(31,38,135,.07); }
[data-theme="dark"] .xh-card { background:#181b29; }
.xh-cover { border-radius:0; }
.xh-card .xh-body { background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(251,250,255,.98)); }
[data-theme="dark"] .xh-card .xh-body { background:linear-gradient(180deg, #1d2033, #191c2e); }
.xh-title { font-weight:700; letter-spacing:.2px; }
.xh-cat { background:rgba(12,14,32,.55); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.25); letter-spacing:.6px; box-shadow:0 2px 8px rgba(0,0,0,.2); }
.xh-hot { background:linear-gradient(135deg,#f5b94e,#f0932b); color:#fff; box-shadow:0 2px 8px rgba(240,147,43,.5); }
.xh-count { background:rgba(10,12,28,.5); color:#fff; backdrop-filter:blur(6px); }
.xh-avatar { box-shadow:0 0 0 1.5px #fff; }
[data-theme="dark"] .xh-avatar { box-shadow:0 0 0 1.5px #262a42; }
.xh-like { background:rgba(124,92,240,.08); color:#6d5ce7; }
[data-theme="dark"] .xh-like { background:rgba(139,122,246,.14); color:#c4b2ff; }

/* 排序行小胶囊 */
.sort-row .seg { background:rgba(124,92,240,.06); }
.sort-row .seg button.on { background:#fff; color:#4a6cf7; box-shadow:0 3px 10px rgba(74,108,247,.18); }
[data-theme="dark"] .sort-row .seg button.on { background:#2b2f52; color:#9fb6ff; }

/* ---------- 8. 我的：极光主页卡 ---------- */
.pr-head {
  background:
    radial-gradient(130% 130% at 88% -18%, rgba(255,255,255,.26), transparent 52%),
    radial-gradient(120% 130% at -10% 20%, rgba(120,146,255,.5), transparent 60%),
    radial-gradient(120% 130% at 100% 105%, rgba(255,120,190,.4), transparent 60%),
    linear-gradient(150deg,#191d4a 0%,#2a2760 48%,#5a2a68 100%);
  box-shadow:0 14px 34px rgba(30,24,80,.28), inset 0 1px 0 rgba(255,255,255,.22);
}
[data-theme="dark"] .pr-head { box-shadow:0 14px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.1); }
.pr-avatar { border-color:rgba(255,255,255,.8); box-shadow:0 4px 12px rgba(0,0,0,.25); }
.pr-trend .cell { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.16); backdrop-filter:blur(6px); }
.pr-badge { background:linear-gradient(135deg,rgba(255,215,130,.25),rgba(255,180,90,.18)); color:#ffe7b0; }
.li-ico { box-shadow:inset 0 1px 0 rgba(255,255,255,.8); }
[data-theme="dark"] .li-ico { box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }
.grp-label { letter-spacing:1.2px; }
.pr-links { border-radius:16px; overflow:hidden; }

/* ---------- 9. 返回栏 / 弹层 / 其它 ---------- */
.back-bar { background:linear-gradient(180deg, rgba(236,238,252,.9), rgba(238,236,252,0)); }
[data-theme="dark"] .back-bar { background:linear-gradient(180deg, rgba(12,14,26,.92), rgba(12,14,26,0)); }
.bb-back { border:1px solid rgba(124,92,240,.14); background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(248,246,255,.85)); box-shadow:0 3px 10px rgba(31,38,135,.06); }
[data-theme="dark"] .bb-back { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.1); }

.forbid-banner { border-color:rgba(245,185,78,.4); box-shadow:0 6px 16px rgba(245,185,78,.12); }

.modal-mask { background:rgba(11,15,28,.46); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.modal-panel {
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 30px 80px rgba(15,20,50,.4), inset 0 1px 0 rgba(255,255,255,.85);
}
[data-theme="dark"] .modal-panel { border-color:rgba(255,255,255,.12); }

.link-more { color:#5a4bd6; background:rgba(124,92,240,.1); border-color:rgba(124,92,240,.16); }
[data-theme="dark"] .link-more { background:rgba(139,122,246,.14); border-color:rgba(139,122,246,.22); color:#cfc4ff; }
.todo-item > .muted, .link-card > .muted { background:rgba(124,92,240,.14); }

/* ---------- 10. 底部导航：星辉胶囊 ---------- */
.tabbar {
  background:linear-gradient(170deg, rgba(255,255,255,.82), rgba(248,246,255,.6));
  border:1px solid rgba(255,255,255,.9);
  box-shadow:
    0 20px 46px rgba(31,38,135,.2),
    0 4px 12px rgba(31,38,135,.1),
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -6px 18px rgba(255,255,255,.3);
}
[data-theme="dark"] .tabbar {
  background:linear-gradient(170deg, rgba(24,28,48,.9), rgba(18,20,36,.82));
  border-color:rgba(255,255,255,.12);
  box-shadow:0 20px 46px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.12), inset 0 -6px 18px rgba(0,0,0,.25);
}
.tab.on {
  background:linear-gradient(135deg,#4a6cf7,#7c5cf0 55%,#a855f7);
  box-shadow:
    0 8px 22px rgba(109,92,231,.42),
    0 2px 6px rgba(109,92,231,.3),
    inset 0 1px 0 rgba(255,255,255,.4),
    inset 0 -4px 10px rgba(168,85,247,.35);
}
[data-theme="dark"] .tab.on { box-shadow:0 8px 22px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.25); }

/* ---------- 11. 暗色补全：白卡组件反色 ---------- */
[data-theme="dark"] .community-banner .banner-icon { color:#ffd98e; }
[data-theme="dark"] .greet-tail { color:var(--text-3); }
[data-theme="dark"] .card .ticket { box-shadow:0 14px 30px rgba(0,0,0,.5); }
[data-theme="dark"] .map-wrap { border-color:rgba(255,255,255,.1); }
[data-theme="dark"] .recap-banner-title svg { stroke:#ffd98e; }

/* ---- 修正：倒计时格相对定位，柔光只留在格内 ---- */
.hero-home .countdown .unit { position: relative; }



/* ================= v2.1 视觉收口（瓷瓶化） ================= */

/* 1) 全局菜单头：标题与标语拉开呼吸感 */
.topbar { margin-bottom: 18px; }
.topbar .title { font-size: 23px; line-height: 1.14; }
.topbar .sub { margin-top: 10px; font-size: 13px; line-height: 1.5; }
.home-topbar { margin-bottom: 16px; }
.home-topbar .greet { margin-top: 9px; }
@media (max-width: 500px) {
  .topbar .title { font-size: 22px; }
  .topbar .sub { font-size: 12.5px; margin-top: 9px; }
}

/* 2) 首页主卡：去掉左侧大光球/星球，保留干净星夜渐变 */
.hero-home::before { content: none; }
.hero-home {
  background:
    radial-gradient(105% 85% at 94% -10%, rgba(155,125,255,.55), transparent 58%),
    radial-gradient(120% 95% at 8% 118%, rgba(120,105,255,.22), transparent 62%),
    linear-gradient(150deg, #232a63 0%, #342c70 54%, #5a2b70 100%);
  box-shadow: 0 16px 40px rgba(40,44,150,.34), 0 4px 12px rgba(40,44,150,.18);
}

/* 3) 首页统计四格：白瓷小卡（参考图1/图2） */
.ht-grid { gap: 10px; margin: 2px 0 14px; }
.ht {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; padding: 15px 4px 13px; border-radius: 20px;
  background: linear-gradient(165deg, #ffffff, #fbf9ff);
  border: 1px solid rgba(255,255,255,.95);
  box-shadow: 0 8px 20px rgba(40,45,120,.08), 0 2px 6px rgba(40,45,120,.05), inset 0 1px 0 rgba(255,255,255,.9);
}
[data-theme="dark"] .ht {
  background: linear-gradient(165deg, #1d2038, #171a30);
  border-color: rgba(255,255,255,.08);
  box-shadow: 0 8px 20px rgba(0,0,0,.32);
}
.ht-ic {
  width: 44px; height: 44px; border-radius: 14px; border: none; box-shadow: none;
  display: flex; align-items: center; justify-content: center;
}
.ht-ic svg { width: 22px !important; height: 22px !important; }
.ht b {
  background: none; -webkit-text-fill-color: currentColor; color: #5b4bd6;
  font-size: 17px; line-height: 1; font-weight: 900; font-variant-numeric: tabular-nums; margin-top: 2px;
}
[data-theme="dark"] .ht b { -webkit-text-fill-color: currentColor; color: #c9bcff; }
.ht span { font-size: 10.5px; color: #9aa0b8; letter-spacing: .2px; }
[data-theme="dark"] .ht span { color: #8d93ad; }
.ht-c1 { background: #7c5cfc; color: #fff; }
.ht-c2 { background: #3b82f6; color: #fff; }
.ht-c3 { background: #f59e0b; color: #fff; }
.ht-c4 { background: #10b981; color: #fff; }
.ht:nth-child(1) b { color: #7c5cfc; }
.ht:nth-child(2) b { color: #3b82f6; }
.ht:nth-child(3) b { color: #e8890c; }
.ht:nth-child(4) b { color: #0e9f6e; }
[data-theme="dark"] .ht:nth-child(1) b { color: #b9a3ff; }
[data-theme="dark"] .ht:nth-child(2) b { color: #8fb6ff; }
[data-theme="dark"] .ht:nth-child(3) b { color: #ffc266; }
[data-theme="dark"] .ht:nth-child(4) b { color: #5ee0a8; }
/* 3b) 首页「本场速办」：去掉外层白卡，按钮白瓷格 */
.hero-home + .card { background: transparent; border: none; box-shadow: none; padding: 0; }
.hero-home + .card .card-head { padding: 0 2px; margin-bottom: 10px; }
.hero-home + .card h3 { margin-bottom: 0; }
.qt-grid { gap: 10px; }
.qt {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  gap: 7px; padding: 15px 8px 13px; border-radius: 20px; text-align: center;
  background: linear-gradient(165deg, #ffffff, #fbf9ff);
  border: 1px solid rgba(255,255,255,.95);
  box-shadow: 0 8px 20px rgba(40,45,120,.08), 0 2px 6px rgba(40,45,120,.05), inset 0 1px 0 rgba(255,255,255,.9);
}
[data-theme="dark"] .qt {
  background: linear-gradient(165deg, #1d2038, #171a30);
  border-color: rgba(255,255,255,.08);
  box-shadow: 0 8px 20px rgba(0,0,0,.32);
}.qt-bd { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.qt-bd b { font-size: 12.5px; line-height: 1.2; color: #33365c; }
[data-theme="dark"] .qt-bd b { color: #e9e7ff; }
.qt-bd > span { font-size: 10px; line-height: 1.4; color: #9aa0bc; }
[data-theme="dark"] .qt-bd > span { color: #8d93ad; }
.qt-ic { width: 42px; height: 42px; border-radius: 14px; box-shadow: none; display: flex; align-items: center; justify-content: center; color: #fff; }
.qt-ic svg { width: 21px !important; height: 21px !important; }
.qt-grid .qt:nth-child(1) .qt-ic { background: #7c5cfc; }
.qt-grid .qt:nth-child(2) .qt-ic { background: #3b82f6; }
.qt-grid .qt:nth-child(3) .qt-ic { background: #f59e0b; }
.qt-grid .qt:nth-child(4) .qt-ic { background: #10b981; }
.qt-bar { width: 78%; height: 4px; border-radius: 99px; background: rgba(124,92,252,.14); overflow: hidden; margin-top: 3px; }
.qt-bar i { border-radius: 99px; box-shadow: none; }/* 4) 年度回忆入口：白瓷卡 */
.card.link-card {
  border-radius: 22px; padding: 16px; gap: 12px;
  background: linear-gradient(165deg, #ffffff, #fbf8ff);
  box-shadow: 0 10px 24px rgba(40,45,120,.09), 0 2px 6px rgba(40,45,120,.05), inset 0 1px 0 rgba(255,255,255,.95);
  margin-top: 2px;
}
[data-theme="dark"] .card.link-card {
  background: linear-gradient(165deg, #1d2038, #191b31);
  box-shadow: 0 10px 24px rgba(0,0,0,.3);
}
.lc-icon {
  width: 48px; height: 48px; border-radius: 16px; flex: none;
  display: flex; align-items: center; justify-content: center; color: #fff;
  background: linear-gradient(145deg, #4a6cf7, #8b5cf6 58%, #c048e0);
  box-shadow: 0 8px 18px rgba(109,92,231,.32);
}
.lc-icon svg { width: 22px !important; height: 22px !important; }
.link-card b { font-size: 15px; }
.link-card .grow { display: flex; flex-direction: column; gap: 3px; }
.link-card .grow span { font-size: 11.5px; line-height: 1.4; color: #9aa0bc; }
[data-theme="dark"] .link-card .grow span { color: #8d93ad; }
.card.link-card > .muted {
  width: 30px; height: 30px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  background: #f0edff; color: #6d5ce7; font-size: 14px;
}
[data-theme="dark"] .card.link-card > .muted { background: rgba(139,122,246,.2); color: #cfc4ff; }/* 5) 首页「大家都在聊」：社区化迷你卡片 */
.hot-row { gap: 10px; }
.hot-mini {
  display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 18px;
  background: linear-gradient(160deg, #ffffff, #fbf9ff);
  border: 1px solid rgba(255,255,255,.95);
  box-shadow: 0 6px 16px rgba(40,45,120,.07), inset 0 1px 0 rgba(255,255,255,.9);
}
[data-theme="dark"] .hot-mini {
  background: linear-gradient(160deg, #1d2038, #191b31);
  border-color: rgba(255,255,255,.08);
  box-shadow: 0 6px 16px rgba(0,0,0,.3);
}
.hot-cv { width: 56px; height: 62px; border-radius: 14px; flex: none; background-size: cover; background-position: center; background-color: #e9e6ff; }
.hot-cv-ph { display: flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(150deg, #7c5cfc, #d946b8); box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); }
.hot-cv-ph svg { width: 20px !important; height: 20px !important; }
.hot-txt { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.hot-txt b {
  font-size: 12px; line-height: 1.4; color: #33365c;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
[data-theme="dark"] .hot-txt b { color: #e9e7ff; }
.hot-txt span { font-size: 10px; color: #9aa0bc; }
[data-theme="dark"] .hot-txt span { color: #8d93ad; }/* 6) 行程卡片：图3 渐变紫卡（排版不变） */
.concert-card {
  position: relative; overflow: hidden;
  background: linear-gradient(150deg, #4a55cf 0%, #5d4bd0 46%, #7c3fa8 100%);
  border: none; border-radius: 22px; padding: 12px;
  box-shadow: 0 12px 26px rgba(64,60,170,.24), inset 0 1px 0 rgba(255,255,255,.25);
  color: #fff;
}
[data-theme="dark"] .concert-card {
  background: linear-gradient(150deg, #3c46b8 0%, #4c3eb6 48%, #6b3090 100%);
  box-shadow: 0 12px 26px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.14);
}
.concert-card::before { content: ''; position: absolute; top: -70px; right: -52px; width: 190px; height: 190px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.30), transparent 66%); pointer-events: none; }
.concert-card::after { content: ''; position: absolute; left: -42px; bottom: -84px; width: 170px; height: 170px; border-radius: 50%; background: radial-gradient(circle, rgba(140,200,255,.24), transparent 68%); pointer-events: none; }
.concert-card .concert-cover {
  width: 88px; height: 92px; border-radius: 16px; flex: none;
  background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.24);
  box-shadow: none; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.concert-card .concert-cover img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.concert-card .concert-cover .cc-ico { color: #fff; opacity: .95; margin: auto; }.concert-card .concert-body { position: relative; z-index: 1; padding: 2px 2px 2px 6px; }
.concert-card .cc-name { color: #fff; font-size: 16px; padding-right: 70px; text-shadow: 0 1px 6px rgba(0,0,0,.16); }
.concert-card .cc-meta, .concert-card .cc-date { color: rgba(255,255,255,.88); }
.concert-card .tag { background: rgba(255,255,255,.22); color: #fff; border: 1px solid rgba(255,255,255,.34); text-shadow: 0 1px 4px rgba(0,0,0,.18); }
.concert-card .tag-blue { background: rgba(255,255,255,.24); color: #fff; }
.concert-card .tag-red { background: rgba(255,110,105,.44); color: #fff; border-color: rgba(255,190,185,.5); }
.concert-card .tag-gold { background: rgba(245,180,70,.5); color: #fff; border-color: rgba(255,215,140,.55); }
.concert-card .tag-gray { background: rgba(255,255,255,.18); color: #fff; }
.concert-card .cc-next {
  align-self: flex-start; margin-top: 8px;
  background: rgba(255,255,255,.96); color: #5543b8;
  border-radius: 999px; padding: 5px 12px; font-size: 10.5px; font-weight: 800;
  box-shadow: 0 4px 12px rgba(0,0,0,.16);
}
.concert-card .cc-next svg { stroke: #5543b8; }
.concert-card.past { background: linear-gradient(150deg, #7a8199, #5f687e 50%, #4d5670); box-shadow: 0 10px 22px rgba(40,45,90,.18); }
[data-theme="dark"] .concert-card.past { background: linear-gradient(150deg, #565e78, #41485f 50%, #333a52); }
.concert-card.past .concert-cover { background: rgba(255,255,255,.14); }
.concert-card.past .cc-next { background: rgba(255,255,255,.92); color: #4a5568; }
.concert-card.past .cc-next svg { stroke: #4a5568; }/* 7) 社区：瓷瓶大圆角 */
.community-banner { border-radius: 20px; padding: 14px 16px; }
.search-box { border-radius: 18px; }
.cat-tab { border-radius: 999px; }
.xh-feed { column-gap: 11px; }
.xh-feed .xh-card { margin-bottom: 11px; }
.xh-card {
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.85);
  box-shadow: 0 8px 22px rgba(31,38,135,.08), 0 2px 6px rgba(31,38,135,.04);
}
[data-theme="dark"] .xh-card { border-color: rgba(255,255,255,.08); background: #191c2e; }
.xh-body { padding: 9px 11px 11px; }
.xh-title { font-size: 12.5px; }
.xh-meta { margin-top: 6px; gap: 6px; }
.xh-avatar { width: 18px; height: 18px; font-size: 9px; }
.xh-like { border-radius: 999px; padding: 2px 8px; }/* v2.1-final 首页主卡：左右侧无光球，仅右上极光 */
.hero-home, [data-theme="dark"] .hero-home {
  background:
    radial-gradient(110% 88% at 96% -8%, rgba(155,125,255,.42), rgba(0,0,0,0) 55%),
    linear-gradient(150deg, #232a63 0%, #342c70 55%, #5b2a70 100%);
}.hero-home::after { content: none; }

/* ================= v2.2 polish (static nickname / squares / single-column community / CTA & ticket tweaks) ================= */

/* 1) static nickname gradient (no shimmer animation) */
.greet-name {
  animation: none !important;
  background-size: auto !important;
}

/* 2) countdown cells: square */
.hero-home .countdown { gap: 8px; }
.hero-home .countdown .unit {
  flex: 1 1 0;
  aspect-ratio: 1 / 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 4px 0;
}
.hero-home .countdown .num { font-size: 20px; }
.hero-home .countdown .lbl { margin-top: 3px; }

/* 3) home "everyone is chatting" thumbnails: square */
.hot-cv { width: 56px !important; height: 56px !important; }

/* 4) bottom nav: rounded-square tiles */
.tab { border-radius: 15px; }

/* 5) trip CTA: clearer button */
.concert-card .cc-next {
  min-height: 30px;
  padding: 6px 14px;
  font-size: 11px;
  letter-spacing: .2px;
  background: linear-gradient(180deg, #ffffff 0%, #f3edff 100%);
  box-shadow: 0 6px 14px rgba(15,10,60,.22), inset 0 1px 0 rgba(255,255,255,.95);
}
.concert-card.past .cc-next { box-shadow: 0 6px 14px rgba(20,25,55,.22), inset 0 1px 0 rgba(255,255,255,.9); }

/* 6) community feed: single column, memories-style full-width cards */
.xh-feed { columns: 1; column-gap: 0; }
.xh-feed .xh-card { display: block; width: 100%; margin: 0 0 12px; overflow: hidden; }
.xh-cover { aspect-ratio: 16 / 8.5; }
.xh-body { padding: 12px 13px 13px; }
.xh-title {
  font-size: 14px; line-height: 1.45; min-height: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.xh-meta { margin-top: 8px; gap: 7px; }
.xh-avatar { width: 19px; height: 19px; font-size: 9px; }
.xh-name { font-size: 11px; }
.xh-like { font-size: 11px; padding: 2px 9px; }

/* 7) ticket stub: whole card editable + inside "custom style" chip */
.ticket { cursor: pointer; }
.t-edit { display: flex; justify-content: flex-end; margin-top: 8px; }
.t-custom {
  display: inline-flex; align-items: center; gap: 4px;
  background: rgba(124,92,252,.1); color: #5b4bd6;
  font-size: 10.5px; font-weight: 800; letter-spacing: .2px;
  padding: 4px 10px; border-radius: 999px;
}
[data-theme="dark"] .t-custom { background: rgba(150,125,255,.18); color: #cfc4ff; }

/* ============ v2.3 恢复毛玻璃：倒计时方块格 + 底栏（用户反馈） ============ */

/* 倒计时：可见的正方形毛玻璃格 */
.hero-home .countdown .unit {
  aspect-ratio: 1 / 1;
  background: linear-gradient(180deg, rgba(255,255,255,.27), rgba(255,255,255,.07));
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 8px 18px rgba(6,8,26,.26);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
}
.hero-home .countdown .num { color: #fff; }
.hero-home .countdown .lbl { color: rgba(255,255,255,.85); }

/* 底部导航：恢复半透明毛玻璃（保留圆角方块选中态） */
.tabbar {
  background: linear-gradient(170deg, rgba(255,255,255,.52), rgba(248,246,255,.34));
  backdrop-filter: blur(34px) saturate(190%);
  -webkit-backdrop-filter: blur(34px) saturate(190%);
  border: 1px solid rgba(255,255,255,.6);
}
[data-theme="dark"] .tabbar {
  background: linear-gradient(170deg, rgba(24,28,48,.52), rgba(18,20,36,.32));
  border-color: rgba(255,255,255,.15);
}

/* ============ v2.4 行程CTA去塑料感 + 底栏放大（用户反馈） ============ */

/* 行程卡《准备清单》：磨砂玻璃胶囊，不再白亮塑料 */
.concert-card .cc-next {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 5px;
  min-height: 32px; padding: 7px 16px 7px 14px; margin-top: 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.55);
  color: #fff; font-size: 11.5px; font-weight: 800; letter-spacing: .4px;
  backdrop-filter: blur(12px) saturate(170%);
  -webkit-backdrop-filter: blur(12px) saturate(170%);
  box-shadow: 0 6px 16px rgba(8,6,40,.3), inset 0 1px 0 rgba(255,255,255,.32);
  text-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.concert-card .cc-next svg { stroke: #fff; }
.concert-card.past .cc-next { color:#fff; border-color: rgba(255,255,255,.45); box-shadow:0 6px 14px rgba(15,20,45,.28), inset 0 1px 0 rgba(255,255,255,.22); }
.concert-card.past .cc-next svg { stroke: #fff; }

/* 底部导航：整体放大 */
.tabbar { padding: 7px 6px; }
.tab { min-height: 58px; padding: 7px 2px; gap: 3px; font-size: 11.5px; border-radius: 16px; }
.tab .ti svg { width: 24px !important; height: 24px !important; }

/* ============ v2.5 社区双列贴纸 + 顶部留白 + 四大卡统一浅紫蓝调 + 记账(去进度条换»)(用户反馈) ============ */

/* 社区：顶部呼吸感 */
.community-banner { margin-bottom: 14px; }
.community-header { padding-top: 8px; }
.search-box { margin-bottom: 10px; }
.cat-tabs { gap: 8px; padding: 8px 0 6px; }
.sort-row { margin: 8px 0 14px; }
.cat-tab { font-size: 12.5px !important; padding: 7px 16px !important; border-radius: 999px !important; }
#app { overscroll-behavior-y: contain; }
.xh-card, .community-header, .cat-tabs, .search-box { touch-action: pan-y; }

/* 社区：双列竖贴纸卡片 */
.xh-feed { columns: 2; column-gap: 10px; padding-bottom: 4px; }
.xh-feed .xh-card { display: inline-block; width: 100%; margin: 0 0 12px; vertical-align: top; break-inside: avoid; }
.xh-card { border-radius: 18px; overflow: hidden; background: #fff;
  border: 1px solid rgba(255,255,255,.95);
  box-shadow: 0 10px 26px rgba(31,38,135,.09), 0 2px 8px rgba(31,38,135,.05); }
.xh-cover { aspect-ratio: 3 / 3.55; }
.xh-body { padding: 10px 12px 12px; }
.xh-title { font-size: 13px; line-height: 1.45; min-height: 0; -webkit-line-clamp: 2; }
.xh-meta { margin-top: 8px; gap: 6px; }
.xh-avatar { width: 19px; height: 19px; font-size: 9px; }
.xh-name { font-size: 11px; }
.xh-like { font-size: 11px; padding: 2px 9px; }
.xh-cat { left: 8px; top: 8px; padding: 3px 10px; font-size: 10px; }
.xh-feed.single { columns: 1; }
.xh-feed.single .xh-card { max-width: 300px; margin-left: auto; margin-right: auto; }

/* 首页主卡 / 行程卡 / 回忆条卡 / 我的资料卡：统一浅紫蓝调（更淡更协调） */
.hero-home, .recap-banner, .pr-head, .concert-card {
  background:
    radial-gradient(120% 130% at 92% -12%, rgba(255,255,255,.22), transparent 52%),
    linear-gradient(150deg, #4a55cf 0%, #5d4bd0 50%, #7c3fa8 100%);
}
[data-theme="dark"] .hero-home, [data-theme="dark"] .recap-banner, [data-theme="dark"] .pr-head, [data-theme="dark"] .concert-card {
  background:
    radial-gradient(120% 130% at 92% -12%, rgba(255,255,255,.1), transparent 52%),
    linear-gradient(150deg, #3c46b8 0%, #4c3eb6 50%, #6b3090 100%);
}
.recap-banner-go { color: #fff; }
.recap-banner .recap-banner-title svg { stroke: #ffe9b0; }

/* 记账卡：进度条换成 » 角标 */
.qt-go { font-style: normal; color: #9aa0bc; font-size: 14px; line-height: 1; margin-top: 2px; }
[data-theme="dark"] .qt-go { color: #8d93ad; }

/* ============ v2.6/v2.7 倒计时更透更小 / 预算金额普通样式 / 社区欢迎卡对照回忆馆条卡 / 首页头像同步(用户反馈) ============ */

/* 首页头像与主页头像同步 */
.greet-ava { position: relative; overflow: hidden; }
.greet-ava .greet-ava-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* 倒计时：更透明 + 整体缩小（字号不变） */
.hero-home .countdown { gap: 8px; justify-content: space-between; }
.hero-home .countdown .unit {
  flex: 0 0 auto; width: 58px; height: 58px; aspect-ratio: auto; padding: 6px 2px;
  background: linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.3); border-radius: 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 4px 12px rgba(6,8,26,.12);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
}
.hero-home .countdown .num { font-size: 20px; }
.hero-home .countdown .lbl { font-size: 10px; margin-top: 2px; }

/* 预算记账卡：金额普通样式（去掉渐变特效） */
.qt-money {
  font-size: 15px; font-weight: 800; line-height: 1.2; margin-top: 2px; font-style: normal;
  font-variant-numeric: tabular-nums; color: #33365c;
  background: none;
  -webkit-background-clip: initial; background-clip: initial; -webkit-text-fill-color: initial;
}
[data-theme="dark"] .qt-money {
  color: #e9e7ff; background: none;
  -webkit-background-clip: initial; background-clip: initial; -webkit-text-fill-color: initial;
}
.qt-sub2 { font-size: 10px; line-height: 1.35; color: #9aa0bc; margin-top: 2px; }
[data-theme="dark"] .qt-sub2 { color: #8d93ad; }

/* 社区欢迎卡：尺寸对照回忆馆「年度回忆册」条卡（紧凑），前置圆圈缩小 */
.community-banner { padding: 9px 12px !important; margin: 2px 0 8px !important; border-radius: 13px !important; }
.community-banner .banner-icon {
  width: 26px !important; height: 26px !important; font-size: 12px !important; flex: none;
  border-radius: 50% !important; box-shadow: 0 0 0 3px rgba(255,255,255,.16);
}
.community-banner .banner-title { font-size: 13px !important; }
.community-banner .banner-desc { font-size: 10px !important; margin-top: 2px !important; line-height: 1.4 !important; }
/* ============ v2.8 记账弹窗：支出/预算 二选一（用户反馈：缺少预算录入入口） ============ */
.exp-kind { display: flex; gap: 8px; }
.exp-opt {
  position: relative; flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 6px; border-radius: 12px; background: #f1f0fa; color: #8a8ea9;
  font-size: 12.5px; font-weight: 600; cursor: pointer; border: 1px solid transparent; transition: all .15s ease;
}
[data-theme="dark"] .exp-opt { background: rgba(255,255,255,.07); color: #9fa3bd; }
.exp-opt input { position: absolute; opacity: 0; pointer-events: none; }
.exp-opt.on {
  background: linear-gradient(135deg, #6d5ce7, #8b5cf6); color: #fff;
  box-shadow: 0 6px 14px rgba(109,92,231,.28);
}
/* ============ v2.9 主卡淡渐变纱幕铺底 + 倒计时方块放大1/4（用户反馈） ============ */
.hero-home::after {
  content: '';
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(to top, rgba(74,32,106,.95) 0%, rgba(74,32,106,.78) 8%, rgba(74,32,106,.60) 16%, rgba(74,32,106,.42) 24%, rgba(74,32,106,.24) 32%, rgba(74,32,106,.10) 38%, rgba(74,32,106,0) 42%);
}
.hero-home .countdown { gap: 10px; justify-content: space-between; }
.hero-home .countdown .unit {
  width: 72px; height: 72px; aspect-ratio: auto; padding: 6px 2px;
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.05));
  border: 1px solid rgba(255,255,255,.34); border-radius: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.32), 0 6px 14px rgba(6,8,26,.18);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
}
.hero-home .countdown .num { font-size: 22px; }
.hero-home .countdown .lbl { font-size: 10.5px; margin-top: 3px; }
/* ============ v1.3.2 修正：准备清单勾选对比 / 详情卡原图直出 / 主卡倒计时贴底短渐变 ============ */
.cbox { border-color:#6a74ad; background:#eef0fb; box-shadow:0 1px 3px rgba(80,90,160,.18); }
[data-theme="dark"] .cbox { border-color:#4d5575; background:rgba(255,255,255,.07); box-shadow:none; }
.cbox:active { transform:scale(.92); }
.hero-card.detail-hero.has-cover::before,
.hero-card.detail-hero.has-cover::after { content:none; }
.hero-card.detail-hero.has-cover .stars-bg { display:none; }
.hero-card.detail-hero.has-cover > div { text-shadow:0 1px 8px rgba(3,6,24,.45); }
.hero-home::after {
  background: linear-gradient(to top, rgba(64,28,104,.98) 0%, rgba(64,28,104,.92) 3%, rgba(64,28,104,.80) 6%, rgba(64,28,104,.58) 10%, rgba(64,28,104,.34) 14%, rgba(64,28,104,.16) 18%, rgba(64,28,104,.06) 22%, rgba(64,28,104,0) 26%);
}

/* ============ v1.3.4 首页演唱会主卡：按需求取消底部纱幕渐变（原图直出） ============ */
.hero-home::after { content: none; }
/* ============ v1.3.7 首页演唱会主卡：可自定义版式（用户反馈） ============ */
/* 版式入口按钮 */
.hero-top-r { display:inline-flex; align-items:center; gap:7px; }
.hc-lay { display:inline-flex; align-items:center; justify-content:center; width:27px; height:27px; padding:0; border-radius:50%;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.34); color:#fff; cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.hc-lay:active { transform:scale(.9); }
[data-theme="dark"] .hc-lay { background:rgba(255,255,255,.12); }

/* 版式一：经典沉底（保持原样，无需覆写） */

/* 版式二：倒计时置顶 */
.hero-card.hero-home[data-lay="cdtop"] { justify-content:flex-start; }
.hero-card.hero-home[data-lay="cdtop"] > .hero-top { order:1; }
.hero-card.hero-home[data-lay="cdtop"] > .countdown { order:2; margin:12px auto 0; align-self:center; justify-content:center; }
.hero-card.hero-home[data-lay="cdtop"] > .artist { order:3; margin-top:auto; padding-top:18px; }
.hero-card.hero-home[data-lay="cdtop"] > .place { order:4; margin-top:4px; }

/* 版式三：标题居中 */
.hero-card.hero-home[data-lay="center"] > .artist,
.hero-card.hero-home[data-lay="center"] > .place { align-self:center; text-align:center; }
.hero-card.hero-home[data-lay="center"] > .artist { margin-top:auto; }
.hero-card.hero-home[data-lay="center"] > .place { margin-top:5px; }
.hero-card.hero-home[data-lay="center"] > .countdown { margin-top:13px; align-self:center; justify-content:center; }

/* 版式四：海报分栏（左标题 + 右倒计时 2x2） */
.hero-card.hero-home[data-lay="split"] > .artist { margin-top:auto; padding-right:126px; }
.hero-card.hero-home[data-lay="split"] > .place { margin-top:4px; padding-right:126px; }
.hero-card.hero-home[data-lay="split"] > .countdown {
  position:absolute; right:12px; bottom:12px; margin:0; z-index:2;
  display:grid; grid-template-columns:1fr 1fr; gap:6px; width:110px; justify-content:initial;
}
.hero-card.hero-home[data-lay="split"] > .countdown .unit { width:52px; height:52px; border-radius:14px; padding:4px 2px; }
.hero-card.hero-home[data-lay="split"] > .countdown .num { font-size:17px; }
.hero-card.hero-home[data-lay="split"] > .countdown .lbl { font-size:9px; margin-top:2px; }

/* 版式选择弹层 */
.hcs-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.hcs-item { margin:0; display:flex; flex-direction:column; align-items:center; gap:6px; padding:10px 8px 9px;
  border-radius:14px; cursor:pointer; text-align:center;
  border:1.5px solid rgba(124,92,240,.20); background:linear-gradient(165deg,#fff,#fbf8ff);
  box-shadow:0 2px 8px rgba(40,45,120,.05); transition:transform .15s,border-color .15s,box-shadow .15s; }
[data-theme="dark"] .hcs-item { background:linear-gradient(165deg,#232648,#1c1e38); }
.hcs-item:active { transform:scale(.97); }
.hcs-item.on { border-color:#7c5cfc; box-shadow:0 6px 16px rgba(109,92,231,.28); }
.hcs-item .hcs-name { font-size:12.5px; font-weight:700; color:#33365c; letter-spacing:.2px; }
[data-theme="dark"] .hcs-item .hcs-name { color:#e9e7ff; }
.hcs-item .hcs-sub { font-size:10px; color:#9aa0bc; line-height:1.35; }
[data-theme="dark"] .hcs-item .hcs-sub { color:#8d93ad; }
.hc-tb { position:relative; display:block; width:100%; height:62px; border-radius:10px; overflow:hidden;
  background:linear-gradient(150deg,#232a63 0%,#3f2a78 55%,#5a2b70 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28), 0 2px 6px rgba(20,24,80,.2); }
.hc-tb i { position:absolute; display:block; border-radius:3px; }
.hc-tb .hd { top:7px; left:8px; width:34px; height:6px; background:rgba(255,255,255,.55); }
.hc-tb .hn { width:58%; height:8px; background:linear-gradient(90deg,#fff,#ffe3a6); }
.hc-tb .hm { width:44%; height:4px; background:rgba(255,255,255,.5); }
.hc-tb .cd { position:absolute; display:flex; gap:4px; }
.hc-tb .cd b { position:static; width:11px; height:11px; border-radius:3px; background:rgba(255,255,255,.92); box-shadow:0 1px 2px rgba(0,0,0,.3); }
.hc-tb.classic .hn { left:9%; bottom:36%; }
.hc-tb.classic .hm { left:9%; bottom:26%; }
.hc-tb.classic .cd { left:9%; right:9%; bottom:9%; justify-content:space-between; }
.hc-tb.cdtop .hn { left:9%; bottom:36%; }
.hc-tb.cdtop .hm { left:9%; bottom:26%; }
.hc-tb.cdtop .cd { left:9%; right:9%; top:19%; justify-content:space-between; }
.hc-tb.center .hn { left:50%; transform:translateX(-50%); bottom:38%; }
.hc-tb.center .hm { left:50%; transform:translateX(-50%); bottom:28%; }
.hc-tb.center .cd { left:9%; right:9%; bottom:9%; justify-content:space-between; }
.hc-tb.split .hn { left:8%; bottom:34%; width:42%; }
.hc-tb.split .hm { left:8%; bottom:24%; width:34%; }
.hc-tb.split .cd { right:9%; bottom:12%; display:grid; grid-template-columns:repeat(2,11px); gap:4px; justify-content:end; }
.hc-tb.split .cd b { width:11px; height:11px; }


/* ========== v1.4.1 游客模式：欢迎页 + 游客横幅 + 长条按钮 ========== */
.btn-xl { min-height: 54px; font-size: 17px; font-weight: 700; border-radius: 18px; letter-spacing: 1px; }
.btn-xl:active { transform: scale(0.98); }
.btn-glass {
  background: var(--card); border: 1px solid var(--border); color: var(--text);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.7);
}
[data-theme="dark"] .btn-glass {
  background: rgba(255,255,255,0.07); border-color: rgba(255,255,255,0.16);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.06);
}
.btn-glass:hover { transform: translateY(-1px); }

.welcome-page {
  position: relative; z-index: 1; min-height: 100%;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: calc(7vh + env(safe-area-inset-top)) 26px calc(7vh + env(safe-area-inset-bottom));
  overflow: hidden;
}
.welcome-glow {
  position: absolute; width: 320px; height: 320px; border-radius: 50%;
  background: radial-gradient(circle, rgba(124,92,255,0.28), transparent 65%);
  top: 10%; left: 50%; transform: translateX(-50%); filter: blur(24px);
  pointer-events: none; z-index: 0;
}
.welcome-inner { position: relative; z-index: 1; text-align: center; }
.welcome-logo { font-size: 40px; }
.welcome-title { margin-top: 10px; font-size: 27px; font-weight: 800; letter-spacing: 1px; }
.welcome-sub { margin-top: 8px; font-size: 14px; color: var(--text-2); }
.welcome-points { margin: 24px auto 0; max-width: 330px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.welcome-points span {
  display: inline-flex; align-items: center; gap: 5px; padding: 8px 13px; border-radius: 999px;
  background: var(--card); border: 1px solid var(--border); color: var(--text-2);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  font-size: 13px; box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.6);
}
[data-theme="dark"] .welcome-points span { box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.06); }
.welcome-points svg { color: var(--primary); }
.welcome-actions { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 12px; }
.welcome-note { margin-top: 4px; text-align: center; font-size: 12px; color: var(--text-3); }

.guest-banner {
  position: sticky; top: 0; z-index: 60;
  display: flex; align-items: center; gap: 9px; padding: 8px 12px;
  font-size: 12px; color: #fff;
  background: linear-gradient(90deg, rgba(74,108,247,0.96), rgba(124,92,255,0.96));
  box-shadow: 0 4px 14px rgba(40,45,120,0.22);
}
[data-theme="dark"] .guest-banner { box-shadow: 0 4px 14px rgba(0,0,0,0.4); }
.guest-banner .gb-dot {
  width: 7px; height: 7px; border-radius: 50%; background: #ffe08a; flex: none;
  box-shadow: 0 0 8px #ffe08a; animation: gbPulse 1.6s ease-in-out infinite;
}
@keyframes gbPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.45; } }
.guest-banner .gb-txt { flex: 1; opacity: 0.96; }
.guest-banner .gb-btn {
  flex: none; border: none; cursor: pointer; padding: 5px 14px; border-radius: 999px;
  background: rgba(255,255,255,0.22); color: #fff; font-size: 12px; font-weight: 600;
}
.guest-banner .gb-btn:active { transform: scale(0.97); }

/* ========== v1.4.1 本场速办自选 / 纯净截图 / 社区顶部分类收敛 ========== */
.card-head .head-mini { display:inline-flex; align-items:center; gap:3px; font-size:11px; }
.qk-list { display:flex; flex-direction:column; gap:8px; max-height:48vh; overflow:auto; padding:2px; }
.qk-row { display:flex; align-items:center; gap:10px; width:100%; text-align:left; padding:9px 12px; border-radius:12px; border:1px solid rgba(124,92,240,.14); background:linear-gradient(160deg, rgba(255,255,255,.9), rgba(248,246,255,.86)); cursor:pointer; transition:all .2s; }
[data-theme="dark"] .qk-row { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.1); }
.qk-row .qk-ic { width:32px; height:32px; flex:none; display:inline-flex; align-items:center; justify-content:center; border-radius:9px; background:rgba(124,92,240,.1); color:#6d5ce7; }
[data-theme="dark"] .qk-row .qk-ic { background:rgba(139,122,246,.16); color:#c4b2ff; }
.qk-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.qk-tx b { font-size:13px; }
.qk-tx span { font-size:11px; color:#8a93ad; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qk-check { width:22px; height:22px; flex:none; border-radius:50%; border:1.5px solid #d6d9e6; display:none; align-items:center; justify-content:center; color:#fff; }
.qk-row.on .qk-check { display:inline-flex; background:linear-gradient(135deg,#4a6cf7,#7c5cf0); border-color:transparent; }
.qk-row.on { border-color:rgba(74,108,247,.45); }

/* 纯净截图：隐藏首页主卡与纪念票根上的角标 / 操作按钮 */
body.clean-shot .hero-home .hero-pill,
body.clean-shot .hero-home .hero-status,
body.clean-shot .hero-home .hc-lay,
body.clean-shot .ticket .t-flag,
body.clean-shot .ticket .t-edit,
body.clean-shot .ticket .t-act-btn { display:none !important; }

/* 社区顶部分类按钮小一号 + 左侧留白 */
.community-header .cat-tabs { gap:6px; padding:8px 2px 6px; }
.cat-tab { font-size:11px !important; padding:4px 10px !important; border-radius:12px !important; }
.cat-tab.on { transform:none !important; }
.sort-row .seg button { padding:3px 12px; font-size:11px; }

/* v1.4.1 预算记账：与打包清单同款进度条（有预算显示，超支满条变红） */
.qt-bar.over i { background:linear-gradient(90deg,#ef4444,#f97316); box-shadow:0 0 8px rgba(239,68,68,.45); }
[data-theme="dark"] .qt-bar.over i { box-shadow:0 0 8px rgba(239,68,68,.35); }

/* ========== v1.4.2 欢迎页与登录页：功能点高级化 + 扁平化 ========== */
/* 1) 欢迎页功能点：玻璃胶囊 -> 2x2 扁平白卡（克制留白、轻阴影、图标紫调） */
.welcome-points {
  display:grid; grid-template-columns:repeat(2, 1fr); gap:10px;
  max-width:344px; margin:28px auto 0;
}
.welcome-points span {
  display:flex; align-items:center; justify-content:flex-start; gap:8px;
  padding:13px 13px; border-radius:16px;
  background:#ffffff; border:1px solid rgba(124,92,240,.13); color:#3f4368;
  font-size:12.5px; font-weight:600; letter-spacing:.3px;
  box-shadow:0 6px 18px rgba(90,80,200,.07);
}
.welcome-points span svg { color:#6d5ce7; flex:none; }
[data-theme="dark"] .welcome-points span {
  background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12);
  color:#e2e5f8; box-shadow:none;
}
[data-theme="dark"] .welcome-points span svg { color:#b7a7ff; }

/* 2) 长条主/次按钮：扁平纯色，去流光渐变与顶部高光（欢迎页 + 登录页 + 引导页） */
.welcome-page .btn::after, .auth-wrap .btn::after, .onb-wrap .btn::after { content:none; }
.welcome-page .btn-primary, .auth-wrap .btn-primary, .onb-wrap .btn-primary {
  background:#6d5ce7; background-image:none; border:none;
  box-shadow:0 4px 12px rgba(109,92,231,.22);
}
[data-theme="dark"] .welcome-page .btn-primary, [data-theme="dark"] .auth-wrap .btn-primary, [data-theme="dark"] .onb-wrap .btn-primary {
  background:#6f62e6; box-shadow:none;
}
.welcome-page .btn-primary:hover, .auth-wrap .btn-primary:hover, .onb-wrap .btn-primary:hover {
  transform:none; box-shadow:0 6px 16px rgba(109,92,231,.26); filter:brightness(1.06);
}
[data-theme="dark"] .welcome-page .btn-primary:hover, [data-theme="dark"] .auth-wrap .btn-primary:hover, [data-theme="dark"] .onb-wrap .btn-primary:hover { filter:brightness(1.12); }
/* 欢迎页「随便逛逛」玻璃按钮 -> 扁平白底描边 */
.welcome-page .btn-glass {
  background:#ffffff; border:1px solid rgba(124,92,240,.24); color:#454a6d;
  backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none;
}
[data-theme="dark"] .welcome-page .btn-glass {
  background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.16); color:#e6e9fb;
}
.welcome-page .btn-glass:hover { transform:none; background:#f7f5ff; }
[data-theme="dark"] .welcome-page .btn-glass:hover { background:rgba(255,255,255,.1); }

/* 3) 登录页卡片/输入框/分段/幽灵按钮：去玻璃改扁平白 */
.auth-wrap .card {
  background:#ffffff; backdrop-filter:none; -webkit-backdrop-filter:none;
  border:1px solid rgba(124,92,240,.10); box-shadow:0 10px 28px rgba(80,75,190,.08);
}
[data-theme="dark"] .auth-wrap .card { background:#1d2038; border-color:rgba(255,255,255,.1); box-shadow:0 10px 28px rgba(0,0,0,.3); }
.auth-wrap .input, .auth-wrap .textarea {
  background:#fafaff; backdrop-filter:none; -webkit-backdrop-filter:none;
  border:1px solid rgba(124,92,240,.16); box-shadow:none;
}
[data-theme="dark"] .auth-wrap .input, [data-theme="dark"] .auth-wrap .textarea { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.12); }
.auth-wrap .input:focus, .auth-wrap .textarea:focus {
  background:#ffffff; border-color:#6d5ce7;
  box-shadow:0 0 0 3px rgba(109,92,231,.14);
}
[data-theme="dark"] .auth-wrap .input:focus { background:rgba(255,255,255,.09); box-shadow:0 0 0 3px rgba(139,122,246,.22); }
.auth-wrap .seg { background:#f1f0fb; backdrop-filter:none; -webkit-backdrop-filter:none; border:1px solid transparent; box-shadow:none; }
[data-theme="dark"] .auth-wrap .seg { background:rgba(255,255,255,.06); }
.auth-wrap .seg button.on { background:#ffffff; color:#1a1f36; box-shadow:none; }
[data-theme="dark"] .auth-wrap .seg button.on { background:rgba(255,255,255,.14); color:#fff; box-shadow:none; }
.auth-wrap .btn-ghost {
  background:#ffffff; backdrop-filter:none; -webkit-backdrop-filter:none;
  border:1px solid rgba(124,92,240,.2); color:#454a6d; box-shadow:none;
}
[data-theme="dark"] .auth-wrap .btn-ghost { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); color:#e2e5f8; }
.auth-wrap .btn-ghost:hover { background:#f6f5ff; transform:none; }
[data-theme="dark"] .auth-wrap .btn-ghost:hover { background:rgba(255,255,255,.1); }

/* 4) 品牌字标：去渐变与光晕，改扁平纯色（欢迎/登录） */
.welcome-page .auth-logo-icon img, .auth-wrap .auth-logo-icon img { filter:none; }
.welcome-page .auth-logo, .auth-wrap .auth-logo {
  background:none; -webkit-background-clip:initial; background-clip:initial;
  -webkit-text-fill-color:initial; color:#6d5ce7; filter:none; text-shadow:none;
}
[data-theme="dark"] .welcome-page .auth-logo, [data-theme="dark"] .auth-wrap .auth-logo { color:#a99cff; }

/* ========== v1.4.3 录入表单增强：仅作用于「录入」作用域，其它页面/控件零影响 ==========
   作用域 = 演唱会新增/编辑(form[data-form=concert])、票根录入(form[data-form=ticket])、
   弹窗内表单(.modal form：记一笔/设置预算/添加交通住宿同行时间线/添加物品/现场记录/编辑资料)、
   社区发帖(.fx-form)。 */

/* ---- 标签：对比提升 + 主题色小竖条 ---- */
form[data-form="concert"] .field label,
form[data-form="ticket"] .field label,
.modal form .field label,
.fx-form .field label,
.fx-form .field-head label { color:#454b6b; letter-spacing:.2px; }
form[data-form="concert"] .field label::before,
form[data-form="ticket"] .field label::before,
.modal form .field label::before,
.fx-form .field label::before,
.fx-form .field-head label::before {
  content:''; display:inline-block; width:3px; height:13px; border-radius:2px; margin-right:7px; vertical-align:-2px;
  background:linear-gradient(180deg,#6d5ce7,#a06ff0);
}

/* ---- 输入框/文本域/下拉：白底 + 细紫描边 + 大圆角 + 明确聚焦 ---- */
form[data-form="concert"] .input,
form[data-form="ticket"] .input,
.modal form .input,
.fx-form .input,
form[data-form="concert"] .textarea,
form[data-form="ticket"] .textarea,
.modal form .textarea,
.fx-form textarea.input {
  background:#fff; border:1px solid rgba(124,92,240,.18); border-radius:14px;
  box-shadow:0 1px 3px rgba(31,38,135,.05); color:var(--text);
  font-size:15px; caret-color:#6d5ce7;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
form[data-form="concert"] .input,
form[data-form="ticket"] .input,
.modal form .input,
.fx-form .input { height:50px; padding:0 14px; }
form[data-form="concert"] .textarea,
form[data-form="ticket"] .textarea,
.modal form .textarea,
.fx-form textarea.input { min-height:108px; height:auto; padding:12px 14px; line-height:1.6; }
form[data-form="concert"] .input:focus,
form[data-form="ticket"] .input:focus,
.modal form .input:focus,
.fx-form .input:focus,
form[data-form="concert"] .textarea:focus,
form[data-form="ticket"] .textarea:focus,
.modal form .textarea:focus,
.fx-form textarea.input:focus {
  border-color:#6d5ce7; background:#fff; outline:none;
  box-shadow:0 0 0 3px rgba(109,92,231,.14), 0 2px 8px rgba(31,38,135,.06);
}
form[data-form="concert"] .input::placeholder,
form[data-form="ticket"] .input::placeholder,
.modal form .input::placeholder,
.fx-form .input::placeholder,
form[data-form="concert"] .textarea::placeholder,
form[data-form="ticket"] .textarea::placeholder,
.modal form .textarea::placeholder,
.fx-form textarea.input::placeholder { color:#a7acc8; font-size:14px; }

/* 下拉：去掉原生箭头，换主题色小箭头 */
.modal form select.input,
.fx-form select.input {
  appearance:none; -webkit-appearance:none; padding-right:36px; color:var(--text);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236d5ce7' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 13px center; background-size:16px 16px;
}

/* ---- 图片选择：虚线上传区 + 品牌化“选择文件”按钮 ---- */
form[data-form="concert"] input[type="file"],
form[data-form="ticket"] input[type="file"],
.modal form input[type="file"],
.fx-form input[type="file"] {
  display:flex; align-items:center; height:auto; min-height:52px; padding:6px 10px;
  background:rgba(124,92,240,.05); border:1.5px dashed rgba(124,92,240,.34); border-radius:14px;
  color:#8a8fb0; font-size:12px; cursor:pointer; box-shadow:none;
}
form[data-form="concert"] input[type="file"]::file-selector-button,
form[data-form="ticket"] input[type="file"]::file-selector-button,
.modal form input[type="file"]::file-selector-button,
.fx-form input[type="file"]::file-selector-button {
  background:#6d5ce7; color:#fff; border:none; border-radius:10px; padding:9px 16px;
  font-family:inherit; font-size:13px; font-weight:600; margin-right:12px; cursor:pointer;
  box-shadow:0 4px 10px rgba(109,92,231,.22);
}
form[data-form="concert"] input[type="file"]:hover,
form[data-form="ticket"] input[type="file"]:hover,
.modal form input[type="file"]:hover,
.fx-form input[type="file"]:hover { border-color:rgba(109,92,231,.55); background:rgba(124,92,240,.08); }

/* ---- 选择控件：实际支出/预算 二选一 ---- */
.modal form .exp-opt { background:#fff; border:1px solid rgba(124,92,240,.22); color:#656a8a; border-radius:14px; padding:10px 6px; }
.modal form .exp-opt.on { background:#6d5ce7; border-color:#6d5ce7; color:#fff; box-shadow:0 6px 14px rgba(109,92,231,.26); }

/* ---- 票面样式 chip（仅票根录入页） ---- */
form[data-form="ticket"] .chip.tkopt { background:#fff; border:1.5px solid rgba(124,92,240,.2); color:#5f6482; padding:8px 14px; border-radius:13px; font-size:12.5px; box-shadow:none; }
form[data-form="ticket"] .chip.tkopt.active { background:#6d5ce7; border-color:#6d5ce7; color:#fff; box-shadow:0 5px 12px rgba(109,92,231,.26); }
form[data-form="ticket"] .chip.tkopt.active .sw { box-shadow:inset 0 0 0 1px rgba(255,255,255,.4); }

/* ---- 社区发帖分类 chip ---- */
.fx-form .cat-option { background:#fff; border:1.5px solid rgba(124,92,240,.2); color:#6b6f8e; }
.fx-form .cat-option.on { background:#6d5ce7; border-color:#6d5ce7; color:#fff; box-shadow:0 5px 12px rgba(109,92,231,.26); }

/* 复选/单选标记用主题色 */
.modal form input[type="checkbox"],
.modal form input[type="radio"],
form[data-form="ticket"] input[type="checkbox"],
.fx-form input[type="checkbox"] { accent-color:#6d5ce7; }

/* ---- 暗色主题对应 ---- */
[data-theme="dark"] form[data-form="concert"] .field label,
[data-theme="dark"] form[data-form="ticket"] .field label,
[data-theme="dark"] .modal form .field label,
[data-theme="dark"] .fx-form .field label,
[data-theme="dark"] .fx-form .field-head label { color:#c9ceea; }
[data-theme="dark"] form[data-form="concert"] .input,
[data-theme="dark"] form[data-form="ticket"] .input,
[data-theme="dark"] .modal form .input,
[data-theme="dark"] .fx-form .input,
[data-theme="dark"] form[data-form="concert"] .textarea,
[data-theme="dark"] form[data-form="ticket"] .textarea,
[data-theme="dark"] .modal form .textarea,
[data-theme="dark"] .fx-form textarea.input {
  background:rgba(255,255,255,.07); border-color:rgba(139,122,246,.4); color:#eef0ff; box-shadow:none;
}
[data-theme="dark"] form[data-form="concert"] .input:focus,
[data-theme="dark"] form[data-form="ticket"] .input:focus,
[data-theme="dark"] .modal form .input:focus,
[data-theme="dark"] .fx-form .input:focus,
[data-theme="dark"] form[data-form="concert"] .textarea:focus,
[data-theme="dark"] form[data-form="ticket"] .textarea:focus,
[data-theme="dark"] .modal form .textarea:focus,
[data-theme="dark"] .fx-form textarea.input:focus {
  background:rgba(255,255,255,.1); border-color:#8b7cf0;
  box-shadow:0 0 0 3px rgba(139,122,246,.26);
}
[data-theme="dark"] form[data-form="concert"] .input::placeholder,
[data-theme="dark"] form[data-form="ticket"] .input::placeholder,
[data-theme="dark"] .modal form .input::placeholder,
[data-theme="dark"] .fx-form .input::placeholder,
[data-theme="dark"] form[data-form="concert"] .textarea::placeholder,
[data-theme="dark"] form[data-form="ticket"] .textarea::placeholder,
[data-theme="dark"] .modal form .textarea::placeholder,
[data-theme="dark"] .fx-form textarea.input::placeholder { color:#7f86a8; }
[data-theme="dark"] form[data-form="concert"] input[type="file"],
[data-theme="dark"] form[data-form="ticket"] input[type="file"],
[data-theme="dark"] .modal form input[type="file"],
[data-theme="dark"] .fx-form input[type="file"] { background:rgba(139,122,246,.08); border-color:rgba(139,122,246,.5); color:#aab0cf; }
[data-theme="dark"] .modal form .exp-opt { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.16); color:#a7accc; }
[data-theme="dark"] .modal form .exp-opt.on { background:#7c5cf0; border-color:#7c5cf0; }
[data-theme="dark"] form[data-form="ticket"] .chip.tkopt,
[data-theme="dark"] .fx-form .cat-option { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.18); color:#c7cbe6; }
[data-theme="dark"] form[data-form="ticket"] .chip.tkopt.active,
[data-theme="dark"] .fx-form .cat-option.on { background:#7c5cf0; border-color:#7c5cf0; color:#fff; }

/* ====== v1.4.3 微调 2：字段标签装饰只作用于标签本体、描边/上传/文本域细节 ====== */
/* 标签颜色与竖条改为「直系标签」，排除 chip/复选框类 label */
form[data-form="concert"] .field > label,
form[data-form="ticket"] .field > label,
.modal form .field > label,
.fx-form .field > label { color:#454b6b; letter-spacing:.2px; }
form[data-form="concert"] .field > label::before,
form[data-form="ticket"] .field > label::before,
.modal form .field > label::before,
.fx-form .field > label::before {
  content:''; display:inline-block; width:3px; height:13px; border-radius:2px; margin-right:7px; vertical-align:-2px;
  background:linear-gradient(180deg,#6d5ce7,#a06ff0);
}
.modal form label.exp-opt::before,
.fx-form .cat-select label::before { content:none !important; }

/* 静止描边更清晰 */
form[data-form="concert"] .input,
form[data-form="ticket"] .input,
.modal form .input,
.fx-form .input,
form[data-form="concert"] .textarea,
form[data-form="ticket"] .textarea,
.modal form .textarea,
.fx-form textarea.input { border-color:rgba(109,92,231,.28); box-shadow:0 1px 2px rgba(31,38,135,.04); }
form[data-form="concert"] .input:focus,
form[data-form="ticket"] .input:focus,
.modal form .input:focus,
.fx-form .input:focus,
form[data-form="concert"] .textarea:focus,
form[data-form="ticket"] .textarea:focus,
.modal form .textarea:focus,
.fx-form textarea.input:focus {
  border-color:#6d5ce7; box-shadow:0 0 0 3px rgba(109,92,231,.20), 0 2px 10px rgba(31,38,135,.07);
}

/* 上传区：虚线与底色更精致 */
form[data-form="concert"] input[type="file"],
form[data-form="ticket"] input[type="file"],
.modal form input[type="file"],
.fx-form input[type="file"] {
  min-height:54px; border-width:2px; border-color:rgba(109,92,231,.38);
  background:linear-gradient(180deg, rgba(124,92,240,.07), rgba(124,92,240,.03));
  color:#7c80a0; font-size:12.5px;
}
form[data-form="concert"] input[type="file"]:hover,
form[data-form="ticket"] input[type="file"]:hover,
.modal form input[type="file"]:hover,
.fx-form input[type="file"]:hover { border-color:rgba(109,92,231,.62); background:rgba(124,92,240,.08); }

/* 发帖文本域：隐藏右下角调节柄，保持干净 */
.fx-form textarea::-webkit-resizer { display:none; }
.fx-form textarea { scrollbar-width:thin; }

/* v1.4.3 微调 3：静止描边再清晰一档（不刺眼） */
form[data-form="concert"] .input,
form[data-form="ticket"] .input,
.modal form .input,
.fx-form .input,
form[data-form="concert"] .textarea,
form[data-form="ticket"] .textarea,
.modal form .textarea,
.fx-form textarea.input { border-color:rgba(109,92,231,.34); }

/* ========== v1.4.4 综合收口：行程/票根样式扩展/社区/欢迎/纯净快捷钮 ========== */

/* ---- 4) 「我的行程」统计：场次数字突出 ---- */
.trip-sum { gap:7px; padding:2px 2px 10px; align-items:baseline; }
.tsum-n { font-size:24px; line-height:1; font-weight:900; letter-spacing:-.3px;
  background:linear-gradient(120deg,#6d5ce7 10%,#8b5cf6 55%,#ec4899 105%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 6px rgba(109,92,231,.18));
}
.tsum-n em { font-style:normal; font-size:14px; margin-left:2px; -webkit-text-fill-color:#6d5ce7; letter-spacing:0; }
.tsum-t { color:#8a90ab; font-size:13px; font-weight:500; }

/* ---- 2) 行程卡片：已赴星海与即将奔赴同语言（同紫蓝家族、仅更沉稳） ---- */
.concert-card.past {
  background:linear-gradient(150deg,#414cbd 0%,#5140be 46%,#6d3f97 100%);
  box-shadow:0 12px 26px rgba(58,50,150,.22), inset 0 1px 0 rgba(255,255,255,.22);
}
[data-theme="dark"] .concert-card.past { background:linear-gradient(150deg,#39429f 0%,#45379f 48%,#5c3380 100%); }
.concert-card.past .concert-cover { background:rgba(255,255,255,.15); }
.concert-card.past .concert-cover img { filter:grayscale(.18) brightness(.92); }
.concert-card.past .cc-name { color:#fff; }

/* ---- 7) 行程卡操作按钮：白底胶囊 + 紫色图标格（不再是塑料玻璃） ---- */
.concert-card .cc-next {
  display:inline-flex; align-items:center; gap:0;
  min-height:32px; margin-top:9px; padding:3px 14px 3px 4px; border-radius:17px;
  background:linear-gradient(180deg,#ffffff,#f5f0ff); border:1px solid rgba(255,255,255,.92);
  color:#3d3588; font-size:11.5px; font-weight:800; letter-spacing:.3px;
  box-shadow:0 7px 16px rgba(10,8,50,.26), inset 0 1px 0 #fff;
}
.concert-card .cc-next svg {
  width:20px !important; height:20px !important; padding:4px; box-sizing:border-box;
  border-radius:11px; margin-right:7px; stroke:#fff;
  background:linear-gradient(135deg,#6d5ce7,#8b5cf6); box-shadow:0 3px 8px rgba(109,92,231,.35);
}
.concert-card .cc-next:hover { transform:translateY(-1px); }
.concert-card .cc-next:active { transform:scale(.96); }
.concert-card.past .cc-next { background:linear-gradient(180deg,#ffffff,#f4f2fb); color:#3c3f68; }
.concert-card.past .cc-next svg { background:linear-gradient(135deg,#6b7390,#4a5568); box-shadow:0 3px 8px rgba(40,45,90,.28); }

/* ---- 9) 社区：顶栏去背景色条（只留胶囊本身），卡片背景不外露 ---- */
.community-header { background:transparent !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
[data-theme="dark"] .community-header { background:transparent !important; }
.community-header .cat-tabs { padding-top:4px; }
.cat-tab { background:rgba(255,255,255,.75); }
.cat-tab.on { box-shadow:0 4px 12px rgba(109,92,231,.26); }
[data-theme="dark"] .cat-tab { background:rgba(255,255,255,.06); }
[data-theme="dark"] .cat-tab.on { box-shadow:0 4px 12px rgba(0,0,0,.35); }
.xh-feed { background:transparent !important; }
.xh-feed .xh-card,
.xh-card { overflow:hidden !important; background:#fff !important; }
[data-theme="dark"] .xh-card { background:#1a1d30 !important; }

/* ---- 1) 纯净截图快捷钮（hero / 票根） ---- */
.hc-clean, .t-clean {
  display:inline-flex; align-items:center; justify-content:center; padding:0;
  border-radius:999px; cursor:pointer; color:#fff;
  background:rgba(14,16,44,.24); border:1px solid rgba(255,255,255,.45);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  transition:opacity .3s ease, background .2s ease, transform .15s ease;
}
.hc-clean { width:27px; height:27px; }
.hc-clean svg, .t-clean svg { width:13px !important; height:13px !important; stroke:#fff; }
.hc-clean.on, .hc-clean:hover, .t-clean:hover { background:#6d5ce7; border-color:transparent; }
.hc-clean:active, .t-clean:active { transform:scale(.9); }
.t-clean { position:absolute; right:8px; top:8px; width:25px; height:25px; z-index:3; }
.ticket.has-clean .t-top { padding-right:40px; }
body.clean-armed .hc-clean, body.clean-armed .t-clean { opacity:0; pointer-events:none; }
body.clean-shot .ticket.has-clean .t-flag { display:none !important; }
[data-theme="dark"] .hc-clean { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.3); }
[data-theme="dark"] .hc-clean.on { background:#6d5ce7; }

/* ---- 5) 票根新样式：星河流光 / 落日霓虹 ---- */
.ticket.st-aurora { background:linear-gradient(165deg,#eef1ff,#f6f2ff 60%,#e8ecff); border-color:#dcdfff; box-shadow:0 10px 26px rgba(80,70,220,.16); }
.ticket.st-aurora .t-side { background:
  radial-gradient(circle at 82% 12%, rgba(255,255,255,.55), transparent 44%),
  radial-gradient(circle at 12% 88%, rgba(255,255,255,.28), transparent 48%),
  linear-gradient(160deg,#4a6cf7 0%,#6d5ce7 46%,#2e9bff 118%); color:#fff; }
.ticket.st-aurora .t-side::after { background:
  radial-gradient(1.5px 1.5px at 22% 30%, rgba(255,255,255,.95), transparent),
  radial-gradient(2px 2px at 74% 22%, rgba(255,255,255,.9), transparent),
  radial-gradient(1.5px 1.5px at 48% 62%, rgba(255,255,255,.8), transparent),
  repeating-linear-gradient(115deg, rgba(255,255,255,.1) 0 10px, transparent 10px 24px); }
.ticket.st-aurora .t-name { color:#343f96; }
.ticket.st-aurora .t-where, .ticket.st-aurora .t-msg { color:#6a6fb0; }
.ticket.st-aurora .t-cell .k { color:#9398c2; }
.ticket.st-aurora .t-cell b { color:#343f96; }
.ticket.st-aurora .t-cols { border-top-color:rgba(124,92,240,.28); }
.ticket.st-aurora .t-flag { color:#5b4bd6; background:rgba(124,92,240,.1); }
.ticket.st-aurora .t-flag.done { color:#e2504a; background:rgba(226,80,74,.1); }

.ticket.st-rose { background:linear-gradient(165deg,#fff7f8,#fff1f6 55%,#fff6ee); border-color:#ffd9dc; box-shadow:0 10px 26px rgba(240,80,140,.15); }
.ticket.st-rose .t-side { background:
  radial-gradient(circle at 84% 12%, rgba(255,255,255,.55), transparent 44%),
  radial-gradient(circle at 12% 90%, rgba(255,170,90,.5), transparent 52%),
  linear-gradient(160deg,#ff5e7e 0%,#f253b0 45%,#ff9f5a 120%); color:#fff; }
.ticket.st-rose .t-side::after { background:
  radial-gradient(1.5px 1.5px at 70% 24%, rgba(255,255,255,.9), transparent),
  radial-gradient(2px 2px at 26% 62%, rgba(255,255,255,.85), transparent),
  repeating-linear-gradient(115deg, rgba(255,255,255,.12) 0 10px, transparent 10px 22px); }
.ticket.st-rose .t-name { color:#a23056; }
.ticket.st-rose .t-where, .ticket.st-rose .t-msg { color:#b0687e; }
.ticket.st-rose .t-cell .k { color:#c08a97; }
.ticket.st-rose .t-cell b { color:#a23056; }
.ticket.st-rose .t-cols { border-top-color:rgba(226,80,110,.26); }
.ticket.st-rose .t-flag { color:#e0506f; background:rgba(240,80,140,.1); }
.ticket.st-rose .t-flag.done { color:#d94848; background:rgba(217,72,72,.1); }
.ticket.st-rose .t-cell.price b { color:#e5484d; }
.ticket.st-aurora .t-cell.price b { color:#e5484d; }

/* ---- 5.1) 票根自定义照片：封面主视觉(全样式) + 电子票小卡快照 ---- */
.ticket.has-cover .t-side { color:#fff; }
.ticket.has-cover .t-side-head,
.ticket.has-cover .t-side-date { color:#fff; text-shadow:0 1px 5px rgba(8,10,28,.45); }
.ticket.has-cover .t-side-mark { color:#fff; text-shadow:0 2px 12px rgba(8,10,28,.45); }
.ticket.has-cover .t-side-shade { background:linear-gradient(180deg, rgba(10,12,32,.05) 0%, rgba(10,12,32,.22) 45%, rgba(10,12,32,.52) 100%); }
.ticket.has-cover .t-side::after { opacity:.26; }
.t-edit { align-items:center; gap:10px; }
.t-photo {
  align-self:flex-end; flex:none; position:relative; z-index:1;
  width:58px; height:42px; padding:3px;
  border-radius:7px; background:#fff;
  box-shadow:0 3px 10px rgba(20,24,60,.2);
  transform:rotate(-1.6deg);
}
.t-photo::after { content:''; position:absolute; inset:0; border-radius:7px; border:1px solid rgba(20,24,60,.06); pointer-events:none; }
.t-photo img { display:block; width:100%; height:100%; object-fit:cover; border-radius:4px; }
[data-theme="dark"] .t-photo { background:rgba(36,40,68,.98); box-shadow:0 3px 12px rgba(0,0,0,.5); }
body.clean-shot .ticket .t-photo { display:none !important; }

/* ---- 6) 欢迎页功能点：轻特效（保持白卡扁平，只加氛围） ---- */
.welcome-points span { position:relative; overflow:hidden; animation:fxPointIn .55s cubic-bezier(.2,.8,.2,1) both; }
.welcome-points span:nth-child(1){ animation-delay:.06s; }
.welcome-points span:nth-child(2){ animation-delay:.14s; }
.welcome-points span:nth-child(3){ animation-delay:.22s; }
.welcome-points span:nth-child(4){ animation-delay:.30s; }
.welcome-points span::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 34%, rgba(124,92,231,.12) 47%, rgba(244,114,182,.10) 54%, transparent 68%);
  transform:translateX(-130%); animation:fxSheen 4.6s ease-in-out 1.4s infinite;
}
.welcome-points span svg { position:relative; z-index:1; animation:fxIconPulse 3.4s ease-in-out infinite; }
.welcome-points span:hover { transform:translateY(-2px); border-color:rgba(109,92,231,.36); box-shadow:0 10px 24px rgba(90,80,200,.15); }
.welcome-points span:active { transform:scale(.97); }
@keyframes fxPointIn { from { opacity:0; transform:translateY(10px) scale(.96); } to { opacity:1; transform:none; } }
@keyframes fxSheen { 0%,62% { transform:translateX(-130%); } 84%,100% { transform:translateX(130%); } }
@keyframes fxIconPulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.18); } }
[data-theme="dark"] .welcome-points span::after { background:linear-gradient(115deg, transparent 34%, rgba(183,167,255,.12) 47%, rgba(244,150,200,.1) 54%, transparent 68%); }

.mt-seal.long { font-size:9.5px; letter-spacing:.3px; }
.mt-seal.longer { font-size:8.5px; letter-spacing:.2px; }


.mt-event-l { padding-right:64px; }
.mt-seal {
  position:absolute; top:-26px; right:6px; width:60px; height:60px; margin:0;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  font-size:14px; font-weight:900; letter-spacing:.4px; line-height:1.18;
  color:#4c3d6b;
  border-radius:50%;
  background:
    radial-gradient(circle at 32% 25%, rgba(255,255,255,.92) 0%, rgba(255,255,255,.5) 28%, rgba(255,255,255,0) 54%),
    conic-gradient(from 200deg, #d0a8ef, #9fc0ff, #a5e6cd, #ffe09a, #ffaec6, #d5a8f2, #d0a8ef);
  border:3px solid #fff;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.55),
    0 0 0 1px rgba(120,92,180,.16),
    0 1px 1px rgba(46,30,80,.16),
    0 3px 5px -1px rgba(46,30,80,.3),
    0 8px 14px -3px rgba(46,30,80,.32),
    0 14px 26px -8px rgba(46,30,80,.3);
  transform:rotate(-9deg);
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}
.mt-seal.long { font-size:12px; letter-spacing:.2px; }
.mt-seal.longer { font-size:10.5px; letter-spacing:.2px; }
.mt-seal::after {
  content:''; position:absolute; inset:-24% -85%; pointer-events:none;
  background:linear-gradient(115deg, transparent 28%, rgba(255,255,255,.98) 40%, rgba(255,255,255,.6) 47%, rgba(255,255,255,1) 54%, rgba(255,255,255,.25) 61%, transparent 74%);
  box-shadow:inset 0 0 14px rgba(255,255,255,.4);
  transform:translateX(-95%) skewX(-15deg);
  animation:mtHolo 3.4s ease-in-out infinite;
}

.mt-seal-ring { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.mt-seal-rtxt {
  font-size:8px; font-weight:800; letter-spacing:2.2px;
  fill:rgba(255,255,255,.96);
  font-family:Georgia,'Times New Roman','Songti SC',serif;
  filter:drop-shadow(0 0 1px rgba(86,64,138,.45));
}
.mt-seal-txt { position:relative; font-size:14px; }

/* ========== 计划一览（行程 → 演唱会详情 → 筹备中心）：参考图高保真版 ========== */
.plan-page { background: linear-gradient(180deg, #f4f6fa 0%, #eef0f7 100%); }
[data-theme="dark"] .plan-page { background: linear-gradient(180deg, #0d1224 0%, #0a0e1e 100%); }
.plan-head { margin: 6px 2px 2px; text-align: center; }
.plan-head h2 { font-size: 18px; font-weight: 800; letter-spacing: .2px; color: #1f2937; }
.plan-head p { margin-top: 6px; font-size: 12px; color: #6b7280; line-height: 1.6; display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; }
.plan-sep { font-style: normal; color: #c3c8d4; }
[data-theme="dark"] .plan-head h2 { color: #f2f4ff; }
[data-theme="dark"] .plan-head p { color: #9aa3c0; }
.plan-src { margin: 8px 4px 16px; text-align: center; font-size: 11px; color: #9aa1b5; line-height: 1.6; }
.plan-src b { color: #6d5ce7; font-weight: 700; }
[data-theme="dark"] .plan-src { color: #6b7390; }
[data-theme="dark"] .plan-src b { color: #b7a8ff; }
.plan-list { padding: 2px 0 4px; }
.plan-row { position: relative; padding-left: 42px; margin-bottom: 14px; }
.plan-rail { position: absolute; left: 0; top: 0; bottom: -12px; width: 32px; }
.plan-rail::before { content: ''; position: absolute; left: 15px; top: 25px; bottom: 0; width: 2px; border-radius: 2px; background: var(--rc, rgba(205, 210, 225, .9)); }
.plan-row:last-child .plan-rail::before { display: none; }
[data-theme="dark"] .plan-rail::before { background: var(--rc, rgba(90, 100, 140, .5)); }
.plan-num { position: absolute; top: 3px; left: 4px; width: 26px; height: 26px; border-radius: 50%; color: #fff; font-size: 13px; font-weight: 800; font-style: normal; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 3px rgba(255,255,255,.92), 0 2px 7px rgba(31,38,135,.2); }
[data-theme="dark"] .plan-num { box-shadow: 0 0 0 3px rgba(13,18,36,.9), 0 2px 7px rgba(0,0,0,.4); }
.plan-card { position: relative; display: flex; gap: 12px; min-width: 0; background: #fff; border: 1px solid rgba(226,229,240,.9); border-radius: 16px; padding: 12px 14px; box-shadow: 0 3px 12px rgba(31,38,135,.05); overflow: hidden; }
.plan-card::before { content: ''; position: absolute; inset: 0; border-radius: inherit; background: var(--ct, rgba(148,163,184,.05)); pointer-events: none; }
.plan-card > * { position: relative; }
[data-theme="dark"] .plan-card { background: #171d31; border-color: rgba(255,255,255,.07); box-shadow: 0 4px 16px rgba(0,0,0,.3); }
.plan-main { flex: 1; min-width: 0; }
.plan-time { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 800; color: var(--c, #3b82f6); letter-spacing: .3px; }
.plan-time i { font-style: normal; color: var(--c, #3b82f6); opacity: .5; font-weight: 600; }
.plan-time-empty { color: #9aa1b5; }
[data-theme="dark"] .plan-time { color: var(--c, #7aa2ff); }
[data-theme="dark"] .plan-time i { color: var(--c, #7aa2ff); }
.plan-t { margin-top: 2px; font-size: 15px; font-weight: 700; line-height: 1.35; color: #1f2937; overflow-wrap: break-word; }
[data-theme="dark"] .plan-t { color: #eef1ff; }
.plan-d { margin-top: 4px; font-size: 12px; line-height: 1.5; color: #6b7280; overflow-wrap: break-word; }
[data-theme="dark"] .plan-d { color: #9aa3c0; }
.plan-pill { flex: none; align-self: flex-start; margin-top: 2px; padding: 4px 11px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; color: var(--c, #3b82f6); background: var(--pt, rgba(148,163,184,.14)); border: 0; }
[data-theme="dark"] .plan-pill { background: var(--pt, rgba(255,255,255,.07)); }
.plan-card.is-core { border-color: rgba(16,185,129,.55); box-shadow: 0 5px 16px rgba(16,185,129,.14); }
.plan-card.is-core::before { background: var(--ct, rgba(16,185,129,.12)); }
.plan-card.is-core .plan-t { color: #0f5c46; }
[data-theme="dark"] .plan-card.is-core .plan-t { color: #d7fff0; }
.plan-hl { margin: 18px 2px 4px; background: linear-gradient(160deg, #efeefb 0%, #f4ecf8 100%); border: 1px solid rgba(139,92,246,.14); border-radius: 16px; padding: 13px 15px; }
[data-theme="dark"] .plan-hl { background: rgba(139,92,246,.12); border-color: rgba(139,92,246,.25); }
.plan-hl h3 { font-size: 14px; font-weight: 800; color: #4c1d95; display: flex; align-items: center; gap: 6px; }
.plan-hl h3 svg { color: #8b5cf6; }
[data-theme="dark"] .plan-hl h3 { color: #d9c9ff; }
.plan-hl ol { list-style: none; margin: 6px 0 0; padding: 0; }
.plan-hl li { display: flex; gap: 7px; margin-top: 7px; font-size: 12px; line-height: 1.6; color: #4c3a63; }
[data-theme="dark"] .plan-hl li { color: #cfc2ea; }
.plan-hl li b { flex: none; color: #8b5cf6; font-weight: 800; }
.plan-tools { display: flex; justify-content: center; gap: 10px; margin: 18px 0 6px; }
.plan-tools .btn svg { vertical-align: -2px; margin-right: 4px; }

/* ===== v1.4.7 行程·筹备中心「计划一览」发布（2026-09-08）：全自动联动时间轴 .plan-* ===== */
