:root{
  --r1:#ff9aa2; --r2:#ffb7b2; --r3:#ffdac1; --r4:#e2f0cb;
  --r5:#b5ead7; --r6:#c7ceea; --r7:#f3c4fb;
  --ink:#4a4458; --muted:#9a93a8; --line:#efeaf4; --card:#fff;
  --ok:#46c98b; --warn:#ffb347; --urgent:#ff7a59; --expired:#ff5b6e; --low:#7b6cff;
  --shadow:0 8px 24px rgba(150,130,180,.14);
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
[hidden]{display:none !important;}
html,body{margin:0;padding:0;}
body{
  font-family:"PingFang SC","Microsoft YaHei",-apple-system,"Segoe UI",sans-serif;
  color:var(--ink);
  background:linear-gradient(135deg,#fff6f9 0%,#f3f8ff 35%,#f1fff8 70%,#fffaf0 100%);
  min-height:100vh;
}
.app{max-width:1080px;margin:0 auto;padding:14px 14px 40px;}

/* 顶栏 */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(120deg,var(--r1),var(--r6),var(--r5),var(--r7));
  background-size:300% 300%;animation:flow 12s ease infinite;
  border-radius:22px;padding:14px 18px;box-shadow:var(--shadow);color:#fff;
}
@keyframes flow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.brand{display:flex;align-items:center;gap:12px;}
.logo{font-size:30px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));}
.topbar h1{margin:0;font-size:22px;letter-spacing:1px;}
.topbar .sub{margin:2px 0 0;font-size:12px;opacity:.92;}

/* 导航 */
.nav{display:flex;gap:8px;overflow-x:auto;padding:12px 2px;margin:0 -2px;}
.nav-pill{
  flex:0 0 auto;border:none;cursor:pointer;font-size:14px;font-weight:600;
  padding:9px 16px;border-radius:999px;background:#fff;color:var(--ink);
  box-shadow:var(--shadow);transition:.15s;white-space:nowrap;
}
.nav-pill.active{background:linear-gradient(120deg,var(--r1),var(--r7));color:#fff;transform:translateY(-1px);}

/* 通用 */
.view{animation:fade .25s ease;}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.panel{background:var(--card);border-radius:18px;padding:16px;margin-top:14px;box-shadow:var(--shadow);}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.panel-head h2{margin:0;font-size:16px;}
.btn-mini{background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer;color:var(--muted);}
.btn-mini:active{transform:scale(.96);}

/* 备忘录 */
.note-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.note-card{background:linear-gradient(135deg,#fff7e6,#ffe8f0);border:1px solid var(--border);border-radius:14px;padding:12px 14px;cursor:pointer;box-shadow:var(--shadow);position:relative;word-break:break-word;}
.note-card:hover{transform:translateY(-2px);}
.note-card.pinned{border-color:#f7c948;box-shadow:0 6px 18px rgba(247,201,72,.25);}
.note-card .nt{font-weight:600;margin-bottom:6px;color:#333;}
.note-card .nc{color:#555;white-space:pre-wrap;font-size:14px;max-height:120px;overflow:auto;}
.note-card .nm{font-size:11px;color:var(--muted);margin-top:8px;}
.note-card .npin{position:absolute;top:8px;right:8px;color:#f7c948;}
/* 备忘录删除按钮（可见入口，不依赖长按） */
.note-card .note-del{
  position:absolute;top:6px;right:6px;
  border:none;background:rgba(255,255,255,.8);color:var(--expired);
  border-radius:50%;width:26px;height:26px;padding:0;
  font-size:13px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(150,130,180,.18);transition:.15s;
}
.note-card .note-del:hover{background:#ffe3e7;transform:scale(1.08);}
.note-card .note-del:active{transform:scale(.9);}
/* 有置顶标记时，把 📌 往左挪，避免和删除按钮重叠 */
.note-card.pinned .npin{right:36px;}
.pin-row{display:flex;align-items:center;gap:6px;font-size:14px;color:#555;}
.travel-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(90deg,#fff3e0,#e8f5ff);border:1px dashed #f7c948;border-radius:12px;padding:10px 14px;margin-bottom:10px;font-size:13px;color:#7a5a00;}
.travel-banner .btn{flex-shrink:0;}
.muted{color:var(--muted);font-size:12px;}

.btn{border:none;cursor:pointer;border-radius:14px;padding:10px 16px;font-size:14px;font-weight:600;
  background:#f3eefa;color:var(--ink);box-shadow:var(--shadow);transition:.15s;}
.btn:active{transform:scale(.97);}
.btn-rainbow{background:linear-gradient(120deg,var(--r1),var(--r7));color:#fff;}
.btn-small{padding:6px 12px;font-size:12px;border-radius:10px;}
.btn-danger{background:#ffe3e7;color:var(--expired);}

.input{border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font-size:14px;width:100%;
  background:#fcfbff;color:var(--ink);font-family:inherit;}
.input:focus{outline:none;border-color:var(--r6);}

.cards-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.stat-card{border-radius:18px;padding:14px;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.stat-card .num{font-size:26px;font-weight:800;margin-top:4px;}
.stat-card .lab{font-size:12px;opacity:.92;}
.sc1{background:linear-gradient(135deg,var(--r1),var(--r2));}
.sc2{background:linear-gradient(135deg,var(--r5),var(--r6));}
.sc3{background:linear-gradient(135deg,var(--warn),var(--urgent));}
.sc4{background:linear-gradient(135deg,var(--low),var(--r7));}

/* 库存布局 */
.inv-layout{display:flex;gap:14px;margin-top:14px;align-items:flex-start;}
.cat-side{flex:0 0 130px;background:var(--card);border-radius:18px;padding:10px;box-shadow:var(--shadow);
  position:sticky;top:10px;max-height:78vh;overflow:auto;}
.cat-side .cat{padding:9px 12px;border-radius:12px;font-size:14px;cursor:pointer;margin-bottom:4px;
  display:flex;justify-content:space-between;align-items:center;color:var(--ink);}
.cat-side .cat.active{background:linear-gradient(120deg,var(--r6),var(--r5));color:#3a3550;font-weight:700;}
.cat-side .cat .cnt{font-size:11px;background:#f0ebf7;border-radius:999px;padding:1px 7px;}
.cat-side .cat.active .cnt{background:rgba(255,255,255,.6);}
.inv-main{flex:1;min-width:0;}
.inv-toolbar{display:flex;gap:10px;margin-bottom:12px;}
.inv-toolbar .input{flex:1;}

.inv-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;}
.item-card{background:var(--card);border-radius:18px;padding:12px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.item-card .ph{width:100%;height:120px;object-fit:cover;border-radius:12px;background:#f3eefa;}
.item-card .nm{font-weight:700;font-size:15px;margin:8px 0 2px;}
.item-card .meta{font-size:12px;color:var(--muted);line-height:1.6;}
.item-card .price{color:var(--urgent);font-weight:700;}
.badge{position:absolute;top:10px;right:10px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;color:#fff;}
.badge.ok{background:var(--ok);} .badge.warn{background:var(--warn);}
.badge.urgent{background:var(--urgent);} .badge.expired{background:var(--expired);} .badge.low{background:var(--low);}
.item-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.item-actions button{flex:1;min-width:54px;border:none;border-radius:10px;padding:7px;font-size:12px;font-weight:600;cursor:pointer;background:#f3eefa;color:var(--ink);}
.item-actions .out{background:#eafaf2;color:var(--ok);}
.item-actions .del{background:#ffe3e7;color:var(--expired);}

/* 提醒 */
.remind-group{margin-bottom:14px;}
.remind-group h3{font-size:14px;margin:6px 0;}
.remind-list .row,.recent-list .row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:14px;
  box-shadow:var(--shadow);margin-bottom:8px;}
.dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;}
.dot.expired{background:var(--expired);} .dot.urgent{background:var(--urgent);} .dot.warn{background:var(--warn);}
.dot.low{background:var(--low);} .dot.ok{background:var(--ok);}
.row .t{flex:1;min-width:0;}
.row .t .n{font-weight:600;font-size:14px;}
.row .t .s{font-size:12px;color:var(--muted);}
.row .act{flex:0 0 auto;}
.row.clickable{cursor:pointer;transition:transform .12s;}
.row.clickable:hover{transform:translateX(2px);}
.empty{text-align:center;color:var(--muted);padding:24px;font-size:14px;}
.bill-section{margin-bottom:14px;}
.bill-section:last-child{margin-bottom:0;}
.bs-h{font-size:12px;font-weight:700;color:var(--muted);margin:6px 4px;text-transform:uppercase;letter-spacing:.5px;}

/* 记账 */
.seg{display:inline-flex;background:#f3eefa;border-radius:12px;padding:3px;}
.seg-btn{border:none;background:transparent;padding:6px 14px;border-radius:10px;font-weight:600;cursor:pointer;color:var(--muted);font-size:13px;}
.seg-btn.active{background:#fff;color:var(--ink);box-shadow:var(--shadow);}
.acc-list .row{justify-content:space-between;}
.acc-list .amt{font-weight:800;}
.acc-list .amt.exp{color:var(--urgent);} .acc-list .amt.inc{color:var(--ok);}

/* 表单 */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);font-weight:600;}
.form-grid label.full{grid-column:1/-1;}
.form-actions{gap:10px;}
.checkbox{flex-direction:row !important;align-items:center;gap:8px !important;color:var(--ink)!important;}
.checkbox input{width:auto;}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(60,50,80,.42);display:flex;align-items:center;justify-content:center;z-index:50;padding:14px;}
.modal{background:#fff;border-radius:22px;width:100%;max-width:520px;max-height:92vh;overflow:auto;padding:18px;box-shadow:var(--shadow);animation:fade .2s;}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.modal-head h3{margin:0;font-size:18px;}
.modal-close{border:none;background:#f3eefa;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:14px;}
.photo-row{display:flex;gap:8px;align-items:center;}
.photo-preview{max-width:120px;max-height:120px;border-radius:12px;margin-top:8px;border:1px solid var(--line);}
.ocr-status{font-size:12px;color:var(--muted);margin-top:6px;min-height:16px;}

/* 标签管理 */
.tag-manage{display:flex;flex-wrap:wrap;gap:8px;}
.tag-manage .tag{display:inline-flex;align-items:center;gap:6px;background:#f3eefa;border-radius:999px;padding:6px 12px;font-size:13px;}
.tag-manage .tag button{border:none;background:transparent;color:var(--expired);cursor:pointer;font-size:14px;line-height:1;}

/* 图表条 */
.bars{display:flex;flex-direction:column;gap:10px;}
.bar-row{display:flex;align-items:center;gap:10px;font-size:13px;}
.bar-row .name{flex:0 0 110px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bar-row .track{flex:1;background:#f3eefa;border-radius:999px;height:16px;overflow:hidden;}
.bar-row .fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--r1),var(--r7));}
.bar-row .val{flex:0 0 90px;text-align:right;color:var(--muted);}

/* 预算 */
.budget-wrap{padding:4px 2px;}
.budget-line{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:8px;}
.budget-line .over{color:var(--expired);}
.budget-bar{height:14px;background:#f3eefa;border-radius:999px;overflow:hidden;}
.budget-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--r5),var(--ok));transition:width .3s;}
.budget-fill.over{background:linear-gradient(90deg,var(--urgent),var(--expired));}
.budget-wrap .muted{margin-top:8px;display:block;}
.input-sm{width:auto;padding:6px 10px;font-size:13px;}

/* 收入 vs 支出 双条 */
.bar-row2{display:flex;align-items:center;gap:10px;font-size:13px;margin-bottom:4px;}
.bar-row2 .name{flex:0 0 84px;color:var(--ink);}
.bar-row2 .track2{flex:1;background:#f3eefa;border-radius:8px;overflow:hidden;}
.bar-row2 .fill{height:11px;border-radius:8px;}
.bar-row2 .fill.exp{background:linear-gradient(90deg,var(--r1),var(--r2));}
.bar-row2 .fill.inc{background:linear-gradient(90deg,var(--r5),var(--r6));margin-top:3px;}
.bar-row2 .val{flex:0 0 150px;text-align:right;color:var(--muted);font-size:12px;line-height:1.4;}
.bar-row2 .val .e{color:var(--urgent);} .bar-row2 .val .i{color:var(--ok);}

/* 可点统计卡 */
.stat-card.clickable{cursor:pointer;transition:transform .15s,box-shadow .15s;}
.stat-card.clickable:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(150,130,180,.22);}
.stat-card.clickable:active{transform:scale(.97);}
.stat-card.clickable::after{content:'→';position:absolute;top:12px;right:14px;opacity:.55;font-weight:700;}

/* 通用对话框 */
.modal-sm{max-width:400px;}
.dlg-body{font-size:14px;color:var(--ink);line-height:1.6;}
.dlg-body #dlgMsg{margin-bottom:10px;white-space:pre-wrap;word-break:break-word;}
.dlg-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}

/* 天气 */
.weather-box{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.weather-box .w-emoji{font-size:54px;line-height:1;}
.weather-box .w-main{flex:1;min-width:140px;}
.weather-box .w-temp{font-size:30px;font-weight:800;}
.weather-box .w-cond{font-size:13px;color:var(--muted);margin-top:2px;}
.weather-forecast{display:flex;gap:8px;width:100%;margin-top:6px;flex-wrap:wrap;}
.weather-forecast .wf{flex:1;min-width:78px;background:#f7f3fc;border-radius:12px;padding:8px 6px;text-align:center;font-size:12px;color:var(--muted);}
.weather-forecast .wf .em{font-size:22px;display:block;margin:2px 0;}
.weather-forecast .wf .deg{color:var(--ink);font-weight:600;}
.link{color:var(--r6);text-decoration:none;}
.link:hover{text-decoration:underline;}

/* 今日一句 */
.quote-panel{background:linear-gradient(120deg,#fff6f9,#f1f8ff,#fffaf0);}
.quote-text{font-size:16px;line-height:1.7;color:var(--ink);text-align:center;padding:10px 8px;font-weight:500;letter-spacing:.5px;}
.quote-text::before{content:'❝ ';color:var(--r7);font-size:20px;}
.quote-text::after{content:' ❞';color:var(--r7);font-size:20px;}

/* toast */
.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:rgba(60,50,80,.92);color:#fff;
  padding:11px 20px;border-radius:14px;font-size:14px;z-index:99;box-shadow:var(--shadow);animation:fade .2s;max-width:90%;}

/* 小分类筛选 */
.sub-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.sub-chip{border:none;cursor:pointer;font-size:12px;font-weight:600;padding:6px 13px;border-radius:999px;background:#f3eefa;color:var(--ink);}
.sub-chip.active{background:linear-gradient(120deg,var(--r5),var(--r6));color:#3a3550;}
.sub-chip .cnt{display:inline-block;background:rgba(120,100,150,.12);border-radius:999px;padding:0 6px;margin-left:3px;font-size:11px;}
.sub-chip.active .cnt{background:rgba(255,255,255,.6);}

/* 视图说明条（生活账目 / 生活管理顶部的一句解释） */
.view-desc{
  background:linear-gradient(120deg,#fff6f9,#f1f8ff 60%,#f7fff9);
  border:1px dashed var(--r7);border-radius:14px;padding:10px 14px;
  font-size:13px;color:#7a6f8a;line-height:1.7;margin-top:14px;
}
.view-desc b{color:var(--ink);}

/* 子 tab 组（生活账目 / 生活管理的二级切换） */
#ledgerTabs,#manageTabs{display:flex;flex-wrap:wrap;}

/* 位置缩略图 */
.loc-thumb{width:64px;height:64px;object-fit:cover;border-radius:12px;border:2px solid var(--r5);margin-top:8px;cursor:pointer;display:block;}

/* 位置照片大图 */
.lightbox{position:fixed;inset:0;background:rgba(40,30,55,.92);display:flex;align-items:center;justify-content:center;z-index:80;padding:20px;}
.lightbox img{max-width:100%;max-height:100%;border-radius:16px;}
.lightbox-close{position:absolute;top:18px;right:18px;border:none;background:#fff;color:#4a4458;border-radius:50%;width:40px;height:40px;font-size:18px;cursor:pointer;box-shadow:var(--shadow);}

@media(max-width:680px){
  .cards-row{grid-template-columns:repeat(2,1fr);}
  .inv-layout{flex-direction:column;}
  .cat-side{flex:none;width:100%;display:flex;gap:8px;overflow-x:auto;position:static;max-height:none;}
  .cat-side .cat{margin-bottom:0;white-space:nowrap;}
  .form-grid{grid-template-columns:1fr;}
  .topbar h1{font-size:19px;}
  .nav-pill{font-size:13px;padding:7px 12px;}
}

/* ---------- 周期账单 ---------- */
.bill-card{background:var(--card);border-radius:16px;padding:14px;box-shadow:var(--shadow);margin-bottom:10px;display:flex;align-items:center;gap:12px;position:relative;}
.bill-card.overdue{border-left:5px solid var(--expired);}
.bill-card.due{border-left:5px solid var(--urgent);}
.bill-card.paid{opacity:.6;}
.bill-card .bico{font-size:28px;width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.bill-card .binfo{flex:1;min-width:0;}
.bill-card .bname{font-weight:700;font-size:15px;margin-bottom:2px;}
.bill-card .bcat{font-size:12px;color:var(--muted);}
.bill-card .bnext{font-size:12px;color:var(--ink);margin-top:4px;}
.bill-card .bamt{font-weight:800;font-size:18px;text-align:right;flex-shrink:0;}
.bill-card .bamt.expense{color:var(--urgent);}
.bill-card .bamt.income{color:var(--ok);}
.bill-card .bact{display:flex;flex-direction:column;gap:6px;flex-shrink:0;}
.bill-card .bact button{border:none;padding:6px 10px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;background:#f3eefa;color:var(--ink);}
.bill-card .bact .paid{background:#eafaf2;color:var(--ok);}
.bill-card .bact .del{background:#ffe3e7;color:var(--expired);}
.bill-card .bpill{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;margin-right:4px;background:#f3eefa;color:var(--muted);}
.bill-card .bpill.due{background:#fff1e6;color:var(--urgent);}
.bill-card .bpill.overdue{background:#ffe3e7;color:var(--expired);}
.bill-card .bpill.paid{background:#eafaf2;color:var(--ok);}

/* ---------- 月经 ---------- */
.period-state{font-size:14px;line-height:1.7;}
.period-state .big{font-size:32px;font-weight:800;margin:6px 0;background:linear-gradient(120deg,#ff9aa2,#f3c4fb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.period-state .psub{color:var(--muted);font-size:13px;margin-bottom:6px;}
.period-state .ptag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;margin-right:6px;}
.period-state .ptag.in{background:#ffe6ec;color:var(--expired);}
.period-state .ptag.fertile{background:#fff0e6;color:#d97a30;}
.period-state .ptag.ovu{background:#fff3cd;color:#a17500;}
.period-state .ptag.normal{background:#eafaf2;color:var(--ok);}
.period-state .ptag.next{background:#eaf0fa;color:var(--r6);}
.period-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:13px;}
.period-cal .chead{text-align:center;font-weight:700;color:var(--muted);font-size:12px;padding:6px 0;}
.period-cal .cd{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;background:#f7f3fc;position:relative;cursor:default;font-weight:600;color:var(--ink);}
.period-cal .cd.empty{background:transparent;cursor:default;}
.period-cal .cd.today{border:2px solid var(--r6);}
.period-cal .cd.period{background:#ffd6e1;color:#a03860;}
.period-cal .cd.fertile{background:#ffe4c2;color:#a86200;}
.period-cal .cd.ovu{background:#ffd980;color:#8a5e00;font-weight:800;}
.period-cal .cd.next{background:#cfe2ff;color:#2b5296;font-weight:700;}
.period-cal .cd.recorded{outline:2px dashed var(--r6);outline-offset:-3px;}
.legend{display:inline-flex;align-items:center;gap:5px;margin-right:12px;font-size:12px;color:var(--muted);}
.legend .sw{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:middle;}
.legend .sw-period{background:#ffd6e1;}
.legend .sw-fertile{background:#ffe4c2;}
.legend .sw-ovu{background:#ffd980;}
.legend .sw-next{background:#cfe2ff;}

/* ---------- 行程 ---------- */
.trip-card{background:var(--card);border-radius:16px;padding:14px;box-shadow:var(--shadow);margin-bottom:10px;border-left:5px solid var(--r5);}
.trip-card.flight{border-left-color:var(--r1);}
.trip-card.train{border-left-color:var(--r5);}
.trip-card.hotel{border-left-color:var(--r7);}
.trip-card .thead{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.trip-card .ttype{font-size:20px;}
.trip-card .tcode{font-weight:700;font-size:15px;}
.trip-card .tdate{font-size:13px;color:var(--muted);}
.trip-card .tinfo{font-size:13px;color:var(--ink);margin:6px 0;line-height:1.6;}
.trip-card .tprice{font-weight:800;color:var(--urgent);font-size:16px;}
.trip-card .tact{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.trip-card .tact button{border:none;padding:6px 12px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;background:#f3eefa;color:var(--ink);}
.trip-card .tact .del{background:#ffe3e7;color:var(--expired);}
.trip-card .tbadge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;margin-left:6px;background:#f3eefa;color:var(--muted);}
.trip-card .tbadge.upcoming{background:#fff3e0;color:#a86b00;}
.trip-card .tbadge.done{background:#eafaf2;color:var(--ok);}
.trip-card .tbadge.cancelled{background:#f3eefa;color:var(--muted);text-decoration:line-through;}
.trip-card .tattach{max-width:100%;max-height:140px;border-radius:10px;margin-top:8px;border:1px solid var(--line);}

/* ---------- 首次使用横幅 ---------- */
.first-banner{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(120deg,#ffffff,#fbf3ff);border:2px solid var(--r5);border-radius:16px;padding:16px;margin-bottom:14px;box-shadow:0 4px 16px rgba(180,140,255,.18);}
.fb-emoji{font-size:34px;line-height:1;flex-shrink:0;}
.fb-body{flex:1;min-width:0;}
.fb-title{font-weight:800;font-size:15px;margin-bottom:6px;color:#5a4a86;}
.fb-text{font-size:13px;line-height:1.65;color:#6b6480;margin-bottom:10px;}
.fb-text b{color:#7b5cd6;}
.fb-actions{display:flex;gap:10px;flex-wrap:wrap;}
