/* ============ 糯汪旅行手帐 v3 · 红黑编辑杂志风 ============ */
:root{
  --bg:#F7F4EE; --card:#FFFFFF;
  --ink:#1C1B1A; --ink-2:#6F6B63; --ink-3:#A8A39A;
  --red:#D43A2F; --red-deep:#B72C22; --red-soft:#FBE9E7;
  --green:#2E9E63; --green-soft:#E8F5EE;
  --line:#E7E2D8; --line-soft:#F0ECE3;
  --beige:#F3EFE6;
  --shadow:0 2px 14px rgba(60,50,40,.05);
  --shadow-sm:0 1px 4px rgba(60,50,40,.06);
  --r-lg:20px; --r-md:15px; --r-sm:11px;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  /* 字号体系（设计规范）：页面标题/卡标题/正文/辅助 四级，全局统一，禁止随手写更大字号 */
  --fs-h1:21px;   /* 页面一级标题 page-title */
  --fs-h2:17px;   /* 卡片大标题 tc-title / dc-title / map-title */
  --fs-h3:13.5px; /* 区块小标题 section-title h3 */
  --fs-body:12.5px; /* 正文 */
  --fs-small:11.5px;/* 辅助说明 */
  --fs-mini:10.5px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:#E7E3D9;color:var(--ink);
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink)}
img{display:block}

.phone{
  max-width:460px;margin:0 auto;min-height:100dvh;background:var(--bg);
  position:relative;box-shadow:0 0 40px rgba(40,35,25,.2);
  padding-bottom:72px;
}
.page{padding:4px 14px 22px}

/* ---------- topbar ---------- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px 8px;gap:10px;position:sticky;top:0;z-index:40;
  background:rgba(247,244,238,.94);backdrop-filter:blur(10px);
}
.hamburger{
  width:46px;height:46px;border-radius:14px;background:var(--card);border:1px solid var(--line);
  font-size:21px;font-weight:900;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-sm);color:var(--ink);line-height:1;
}
.top-right{display:flex;align-items:center;gap:10px}
.icon-btn{
  width:46px;height:46px;border-radius:14px;background:var(--card);border:1px solid var(--line);
  font-size:18px;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-sm);padding:0;
}
.brand{display:none}
.sync-mini{display:none}
#roleBtn{font-size:20px}

/* ---------- sidebar ---------- */
.sidebar-mask{
  display:block;position:absolute;inset:0;background:rgba(28,27,26,.42);z-index:70;
  opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(2px);
}
.sidebar-mask.open{opacity:1;pointer-events:auto}
.sidebar{
  position:absolute;top:0;left:0;bottom:0;width:80%;max-width:350px;z-index:75;
  background:var(--bg);padding:14px 12px calc(10px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;overflow:hidden;
  transform:translateX(-103%);transition:transform .28s cubic-bezier(.32,.72,.3,1);
  box-shadow:8px 0 30px rgba(0,0,0,.14);
}
.sidebar.open{transform:translateX(0)}
.side-head{padding:4px 8px 8px;flex:none}
.side-dots{display:flex;align-items:center;gap:7px;margin-bottom:8px}
.side-dots i{width:11px;height:11px;border-radius:50%;display:block}
.side-dots .d1{background:var(--ink)}.side-dots .d2{background:var(--red)}
.side-brand{font-size:19px;font-weight:900;letter-spacing:2px;margin-left:2px}
.side-en{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--ink-3);margin-top:3px}
.side-year{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:2px}
.side-menu{display:flex;flex-direction:column;gap:1px;flex:1;min-height:0;overflow-y:auto;padding-bottom:6px;scrollbar-width:none}
.side-menu::-webkit-scrollbar{display:none}
.menu-item{
  display:flex;align-items:center;gap:10px;padding:6.5px 12px;border-radius:11px;
  font-size:13.5px;font-weight:700;color:var(--ink);text-align:left;width:100%;flex:none;
}
.menu-item .mi{font-size:15px;width:21px;text-align:center;flex:none;filter:grayscale(1);opacity:.7}
.menu-item:active{background:var(--line-soft)}
.menu-item.active{background:var(--red-soft);color:var(--red)}
.menu-item.active .mi{filter:none;opacity:1}
.side-sync{
  background:var(--card);border:1px solid var(--line);border-radius:13px;padding:9px 12px;
  box-shadow:var(--shadow-sm);margin-bottom:7px;flex:none;
}
.ss-head{display:flex;gap:8px;align-items:flex-start}
.ss-ic{font-size:17px;line-height:1.2}
.ss-head b{font-size:12.5px;font-weight:800;display:block}
.ss-sub{font-size:10px;color:var(--ink-3);margin-top:1px;line-height:1.4}
.ss-link{color:var(--red);font-weight:800;font-size:11px;margin-top:5px;display:block;text-align:left;padding:0}
.side-user{
  display:flex;align-items:center;gap:9px;padding:8px 6px 0;
  border-top:1px solid var(--line);text-align:left;width:100%;flex:none;background:transparent;
}
.side-user .avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
.su-name{font-weight:800;font-size:13px;flex:1}
.su-name small{display:block;font-weight:400;font-size:9.5px;color:var(--ink-3);margin-top:1px}
.su-go{color:var(--ink-3);font-size:13px}

/* ---------- page header ---------- */
.kicker{
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;
  color:var(--red);margin:6px 2px 5px;
}
.page-title{
  font-size:var(--fs-h1);font-weight:900;line-height:1.25;letter-spacing:-.3px;
  margin:0 2px;color:var(--ink);
}
.page-title .red,.red{color:var(--red)}
.page-sub{color:var(--ink-2);font-size:var(--fs-small);margin:5px 2px 10px;line-height:1.5}

/* ---------- cards ---------- */
.card{
  background:var(--card);border-radius:var(--r-lg);padding:12px;
  border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:9px;
}
.card.tint-butter,.card.tint-mint,.card.tint-peach,.card.tint-oat{
  background:var(--card);border:1px solid var(--line);
}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:2px 0 9px}
.section-title h3{margin:0;font-size:var(--fs-h3);font-weight:900}
.section-title .sub{font-size:12px;color:var(--ink-2)}

/* ---------- avatar ---------- */
.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.avatar.suki{background:#F6E3E7}
.avatar.weiwei{background:#E2EFE9}
.avatar.dog{background:#F3EEE3}
.heart-link{color:var(--red);font-size:16px}

/* ---------- buttons / chips / pills ---------- */
.btn{
  background:var(--ink);color:#fff;font-weight:700;font-size:13.5px;
  padding:11px 18px;border-radius:99px;transition:transform .12s;
}
.btn:active{transform:scale(.96)}
.btn.secondary{background:#fff;border:1.5px solid var(--line);box-shadow:none;color:var(--ink-2)}
.btn.mint{background:var(--ink)}
.btn.pink{background:var(--red)}
.btn.small{padding:6px 12px;font-size:12px}
.btn.block{width:100%;padding:13px;font-size:14px}
.btn.danger{background:#fff;color:var(--red);border:1.5px solid var(--red-soft);box-shadow:none}
a.btn,a.route-btn,a.map-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:4px;line-height:1;cursor:pointer}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.chip-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{cursor:pointer}
.chip{
  background:#fff;color:var(--ink-2);border-radius:99px;padding:6px 13px;
  font-size:12px;font-weight:700;border:1.5px solid var(--line);
}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip.pink.active{background:var(--red);border-color:var(--red)}
.capsule{
  font-size:11px;font-weight:700;background:var(--beige);color:var(--ink-2);
  padding:4px 10px;border-radius:99px;white-space:nowrap;
}
.capsule.mint{background:var(--green-soft);color:var(--green)}
.capsule.pink{background:var(--red-soft);color:var(--red)}
.capsule.oat{background:var(--beige);color:var(--ink-2)}
.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.home-actions .btn{width:100%;padding:14px;font-size:14px}
/* ---------- day pills / seg ---------- */
.day-scroll{
  display:flex;gap:9px;overflow-x:auto;padding:2px 2px 14px;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;
}
.day-scroll::-webkit-scrollbar{display:none}
.day-pill{
  flex:none;background:#fff;border:1.5px solid var(--line);border-radius:13px;
  padding:9px 13px;text-align:center;box-shadow:var(--shadow-sm);
  scroll-snap-align:start;
}
.day-pill b{display:block;font-size:13px;font-weight:800;white-space:nowrap;color:var(--ink-2)}
.day-pill small{display:block;font-size:10.5px;color:var(--ink-3);white-space:nowrap;margin-top:2px}
.day-pill.active{background:var(--ink);border-color:var(--ink)}
.day-pill.active b{color:#fff}
.day-pill.active small{color:rgba(255,255,255,.75)}
.seg{display:flex;background:var(--beige);border-radius:99px;padding:4px;gap:4px;margin-bottom:10px}
.seg button{flex:1;padding:9px;border-radius:99px;font-size:12.5px;font-weight:700;color:var(--ink-2)}
.seg button.active{background:var(--ink);color:#fff}

/* ---------- 首页行程大卡 ---------- */
.trip-card{padding:0;overflow:hidden}
.tc-body{padding:16px 16px 12px}
.tc-mono{font-family:var(--mono);color:var(--red);font-size:12px;letter-spacing:.1em;font-weight:700}
.tc-title{font-size:var(--fs-h2);font-weight:900;margin:8px 0 5px;letter-spacing:-.3px;line-height:1.2}
.tc-sub{color:var(--ink-2);font-size:var(--fs-body)}
.tc-foot{display:flex;align-items:center;gap:18px;padding:13px 16px;border-top:1px solid var(--line-soft)}
.tc-big{font-size:30px;font-weight:900;color:var(--red);line-height:1;letter-spacing:-.5px}
.tc-big small{font-size:13px;color:var(--ink-2);font-weight:600;margin-left:5px;letter-spacing:0}
.tc-dates{font-family:var(--mono);font-size:13px;color:var(--ink-2);letter-spacing:.03em;font-weight:700}
.tc-meta{font-size:12.5px;color:var(--ink-3);margin-top:6px}

/* ---------- 天气卡 ---------- */
.city-pills{display:flex;gap:9px;margin:2px 0 6px}
.city-pill{
  border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:8px 18px;
  font-size:14px;font-weight:700;color:var(--ink-2);
}
.city-pill.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.wf-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line-soft);margin-top:8px}
.wf-cell{text-align:center;padding:10px 1px 8px;border-right:1px solid var(--line-soft);min-width:0;overflow:hidden}
.wf-cell:last-child{border-right:none}
.wf-date{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.wf-icon{font-size:22px;margin:7px 0 5px;line-height:1}
.wf-temp{font-size:12.5px;font-weight:900;color:var(--ink);white-space:nowrap}
.wf-text{font-size:10px;color:var(--ink-2);margin-top:4px;line-height:1.35;word-break:break-all}
.wf-foot{display:flex;align-items:center;gap:7px;color:var(--ink-3);font-size:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);line-height:1.5}
.wf-foot b{color:var(--red)}

/* ---------- 当天安排（首页） ---------- */
.today-city{font-size:17px;font-weight:900;letter-spacing:-.3px}
.today-row{display:flex;gap:10px;align-items:center;padding:8px 0}
.tr-ic{
  width:37px;height:37px;border-radius:11px;background:var(--beige);
  display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;
}
.tr-t{flex:1;min-width:0}
.tr-t b{font-size:14.5px;display:block}
.tr-t small{font-size:11.5px;color:var(--ink-3);display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- 人均结算卡 ---------- */
.settle-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0 10px}
.settle-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:12px;box-shadow:var(--shadow);min-width:0;overflow:hidden;
}
.sc-head{display:flex;align-items:center;gap:7px;margin-bottom:10px}
.sc-name{font-weight:800;font-size:13.5px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-tag{margin-left:auto;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:99px;white-space:nowrap;flex:none}
.sc-tag.receive{background:var(--green-soft);color:var(--green)}
.sc-tag.pay{background:var(--red-soft);color:var(--red)}
.sc-tag.zero{background:var(--beige);color:var(--ink-2)}
.sc-amt{font-size:19px;font-weight:900;letter-spacing:-.4px;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-amt.pos{color:var(--green)}.sc-amt.neg{color:var(--red)}.sc-amt.zero{color:var(--ink-2);font-size:15px}
.sc-line{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--ink-2);padding:5px 0;border-top:1px solid var(--line-soft)}
.sc-line span{flex:none}
.sc-line b{color:var(--ink);font-weight:800;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-av{width:30px;height:30px;font-size:14px}
/* 黑色大按钮（记一笔） */
.add-big{
  display:block;width:100%;background:var(--ink);color:#fff;border:none;border-radius:99px;
  padding:15px;font-size:15px;font-weight:800;box-shadow:var(--shadow);cursor:pointer;
}
.add-big:active{transform:scale(.98)}
.add-big.ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line);box-shadow:none;font-weight:700;padding:13px}

/* ---------- 汇率换算 ---------- */
.fx-row{display:flex;gap:10px;align-items:center;margin:14px 0 4px}
.fx-amount{
  flex:1;min-width:0;font-size:32px;font-weight:900;border:none;border-bottom:2.5px solid var(--ink);
  padding:6px 2px;outline:none;background:transparent;color:var(--ink);
}
.fx-curs{display:flex;gap:8px;flex:none}
.fx-cur{border:1.5px solid var(--line);border-radius:12px;padding:9px 13px;font-weight:800;font-size:12.5px;color:var(--ink-2);background:#fff;white-space:nowrap}
.fx-cur.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.fx-result{display:flex;align-items:baseline;gap:8px;margin-top:14px;min-height:40px;flex-wrap:wrap}
.fx-result .yen{font-size:32px;font-weight:900;color:var(--red);letter-spacing:-.5px}
.fx-result .eq{color:var(--ink-3);font-size:14px}
.fx-quick{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.fx-quick button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 13px;font-size:12px;color:var(--ink-2);font-weight:600}
.fx-rate{font-size:12px;color:var(--ink-3);margin-top:14px;line-height:1.7}
.fx-rate b{color:var(--ink-2)}
.fx-rate-edit{color:var(--red);font-weight:800;margin-left:8px;font-size:11.5px}
.fx-ref-row{display:flex;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}
.fx-ref-row b{font-weight:800}
.fx-ref-row span{color:var(--ink-2);text-align:right}
/* ---------- 日程地图卡 ---------- */
.map-head{padding:18px 18px 14px}
.map-title{font-size:var(--fs-h2);font-weight:900;letter-spacing:-.3px;margin:5px 0 5px;line-height:1.2}

/* ---------- 当天转场交通 ---------- */
.transit-row{display:flex;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--line-soft)}
.transit-row:first-of-type{border-top:none;padding-top:6px}
.tr-main{flex:1;min-width:0}
.tr-route{display:flex;align-items:center;gap:8px;font-weight:900;font-size:16.5px;flex-wrap:wrap;letter-spacing:-.2px}
.tr-route .arr{color:var(--ink-3);font-weight:400}
.tr-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:7px;font-size:12.5px;color:var(--ink-2)}
.tr-meta b{color:var(--ink);font-weight:800}
.tr-meta .tr-cost{color:var(--red);font-weight:800}
.route-btn{
  flex:none;background:var(--ink);color:#fff;border-radius:99px;
  font-size:12px;font-weight:700;padding:9px 15px;white-space:nowrap;
}
.route-btn:active{transform:scale(.95)}

/* ---------- 时间线 ---------- */
.tl{display:flex;gap:7px;padding:3px 0}
.tl .time{width:36px;flex:none;font-size:11px;font-weight:700;color:var(--ink-3);padding-top:15px;text-align:right;font-family:var(--mono);line-height:1.3;word-break:break-all}
.tl .rail{position:relative;flex:none;width:12px;display:flex;justify-content:center}
.tl .rail::before{content:"";position:absolute;top:0;bottom:0;width:2px;border-left:2px dashed var(--line)}
.tl .dot{width:10px;height:10px;border-radius:50%;background:var(--red);border:2px solid #fff;margin-top:16px;z-index:1;box-shadow:0 0 0 2px var(--red-soft);flex:none}
.tl-card{
  flex:1;min-width:0;background:var(--bg);border:1.5px solid var(--line);border-radius:var(--r-md);
  padding:10px 11px;margin-bottom:8px;
}
.tl-card .tl-head{display:flex;gap:9px;align-items:center}
.tl-thumb{width:48px;height:48px;border-radius:11px;flex:none;object-fit:cover;background:var(--beige)}
.tl-thumb.fallback{display:flex;align-items:center;justify-content:center;font-size:23px}
.tl-card strong{font-size:14px;display:block;line-height:1.4}
.tl-card .note{font-size:12px;color:var(--ink-2);margin-top:3px;line-height:1.5}
.tl-actions{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
.tl-gallery{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
.tl-gallery img{width:56px;height:56px;border-radius:10px;object-fit:cover;border:1px solid var(--line)}
.tag{font-size:10.5px;font-weight:800;padding:2.5px 9px;border-radius:99px;background:var(--beige);color:var(--ink-2);margin-left:4px}
.tag.food{background:#FBF1DE;color:#9A7B3F}
.tag.stay{background:var(--beige);color:var(--ink-2)}
.tag.transit{background:var(--red-soft);color:var(--red)}
.tag.photo{background:#F6E3E7;color:#B35C7C}
.tag.shop{background:#E7E2F2;color:#7C63A8}
.add-place-btn{width:100%;border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:13px;font-size:13.5px;font-weight:700;color:var(--ink-2);margin-top:12px}
.tonight-bar{
  background:var(--beige);border-radius:13px;padding:12px 14px;font-size:13px;
  color:var(--ink-2);margin-top:12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;line-height:1.6;
}
.tonight-bar b{color:var(--ink)}

/* ---------- 通用列表行 ---------- */
.row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft)}
.row:last-child{border-bottom:none}
.row .grow{flex:1;min-width:0}
.row strong{font-size:14px;display:block}
.row .sub{font-size:11.5px;color:var(--ink-3);margin-top:2px;line-height:1.5}
.row .amount{font-weight:900;font-size:15px;white-space:nowrap}
.iconbox{
  width:42px;height:42px;border-radius:13px;background:var(--beige);
  display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;
}
.empty{text-align:center;color:var(--ink-3);font-size:13px;padding:24px 10px}
.empty .big{font-size:34px;display:block;margin-bottom:8px}
.progress{height:8px;border-radius:99px;background:var(--beige);overflow:hidden;margin-top:8px}
.progress span{display:block;height:100%;border-radius:99px;background:var(--red)}

/* ---------- 账单 ---------- */
.bill-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.bill-total{font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.bill-total b{font-size:17px;color:var(--ink);font-weight:900;margin-left:5px}
.bill-col-head{display:flex;gap:9px;align-items:center;padding:8px 0 6px;border-bottom:1.5px solid var(--ink);font-size:11.5px;color:var(--ink-3);font-weight:700;margin-bottom:2px}
.bill-col-head span:nth-child(1){flex:1}
.bill-col-head span:nth-child(2){width:52px;text-align:center;flex:none}
.bill-col-head span:nth-child(3){width:86px;text-align:right;flex:none}
.bill-day{margin-bottom:12px}
.bill-day-head{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:var(--beige);border-radius:12px;padding:9px 13px;margin:10px 0 2px;
}
.bill-day-head b{font-size:12.5px;font-weight:800}
.bill-day-head .sum{font-size:12px;font-weight:900;color:var(--red);white-space:nowrap}
.bill-row{display:flex;align-items:center;gap:9px;padding:13px 0;border-bottom:1px solid var(--line-soft)}
.br-title{flex:1;min-width:0;font-weight:800;font-size:14.5px;line-height:1.35}
.br-title small{display:block;font-weight:400;font-size:11px;color:var(--ink-3);margin-top:3px;line-height:1.5}
.br-cat{background:var(--beige);color:var(--ink-2);border-radius:99px;padding:5px 12px;font-size:11.5px;font-weight:700;flex:none;display:inline-block;white-space:nowrap}
.br-amt{font-weight:900;font-size:16.5px;flex:none;text-align:right;white-space:nowrap}
.br-amt small{display:block;font-weight:500;font-size:10.5px;color:var(--ink-3);margin-top:3px}
.br-amt small.fx-flag{color:var(--red);font-weight:700}
.br-ops{display:flex;flex-direction:column;gap:4px;flex:none}
.legend{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.legend .li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2)}
.legend .dot{width:10px;height:10px;border-radius:3px;flex:none}
.legend .li b{margin-left:auto;font-weight:900;color:var(--ink)}

/* ---------- 环形统计图 ---------- */
.donut-wrap{display:flex;justify-content:center;padding:6px 0 2px}
.donut-box{text-align:center}
.donut-box .cap{font-size:11.5px;color:var(--ink-3);margin-top:6px}
.split-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);padding:10px 0;border-top:1px solid var(--line-soft)}
.split-row b{margin-left:auto;font-weight:900;color:var(--ink);white-space:nowrap}
.split-row .split-sub{font-size:11px;color:var(--ink-3);font-weight:400;margin-left:6px}

/* ---------- 衣柜参考穿搭图 ---------- */
/* ---------- 已保存穿搭缩略图 ---------- */
.of-owner{margin-bottom:2px}
.of-owner-name{font-size:12.5px;font-weight:800;color:var(--ink-2);margin:4px 0 6px}
.of-card{background:var(--bg);border-radius:var(--r-md);padding:9px 10px;margin-bottom:8px}
.of-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.of-head strong{font-size:13px}
.of-strip{
  display:flex;gap:7px;overflow-x:auto;margin-top:7px;
  -webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;scrollbar-width:none;
}
.of-strip::-webkit-scrollbar{display:none}
.of-thumb{
  flex:none;width:52px;height:52px;border-radius:12px;border:1.5px solid var(--line);
  background:var(--beige);display:flex;align-items:center;justify-content:center;
  font-size:24px;overflow:hidden;padding:0;
}
.of-thumb img{width:100%;height:100%;object-fit:cover}

/* ---------- 环状图类别明细 ---------- */
.cat-detail{margin-top:10px;background:var(--bg);border-radius:var(--r-md);padding:10px 12px}
.cat-detail-head{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.cat-detail-head b{font-size:13px}
.cat-detail-head span{flex:1;font-size:11px;color:var(--ink-3)}
.cat-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--line-soft)}
.cat-row:first-of-type{border-top:none}
.cat-row .grow{flex:1;min-width:0}
.cat-row strong{font-size:12.5px;display:block;line-height:1.3}
.cat-row small{font-size:10.5px;color:var(--ink-3)}
.cat-row b{font-size:12.5px;white-space:nowrap;font-weight:800}
.cat-dot{width:8px;height:8px;border-radius:50%;flex:none}
.legend .li{border-radius:8px}

/* ---------- 衣柜参考穿搭图 ---------- */
.ref-strip{
  display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px;
  -webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;scrollbar-width:none;
}
.ref-strip::-webkit-scrollbar{display:none}
.ref-add{
  flex:none;width:96px;height:128px;border:1.5px dashed var(--ink-3);border-radius:14px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  color:var(--ink-3);font-size:22px;background:var(--bg);
}
.ref-add small{font-size:11px;font-weight:700;color:var(--ink-3)}
.ref-tile{position:relative;flex:none;width:96px}
.ref-tile img{width:96px;height:128px;object-fit:cover;border-radius:14px;border:1.5px solid var(--line);background:var(--beige)}
.ref-tile .ref-fb{width:96px;height:128px;border-radius:14px;background:var(--beige);display:flex;align-items:center;justify-content:center;font-size:34px}
.ref-tag{
  position:absolute;left:6px;bottom:6px;background:rgba(28,27,26,.72);color:#fff;
  font-size:10px;font-weight:700;padding:3px 8px;border-radius:99px;white-space:nowrap;
}
.ref-del{
  position:absolute;right:5px;top:5px;width:22px;height:22px;border-radius:50%;
  background:rgba(28,27,26,.72);color:#fff;font-size:11px;line-height:1;
  display:flex;align-items:center;justify-content:center;
}

/* ---------- 首页行李清单小框 ---------- */
.mc-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.mc-seg{display:flex;gap:6px;flex:none}
.mc-seg button{
  border:1.5px solid var(--line);background:#fff;border-radius:99px;
  padding:4px 10px;font-size:11.5px;font-weight:800;color:var(--ink-2);
}
.mc-seg button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.mc-meta{font-size:11.5px;color:var(--ink-3);font-weight:700;margin-bottom:4px}
.mc-list{max-height:148px;overflow-y:auto}
.mc-row{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 2px;border-bottom:1px solid var(--line-soft)}
.mc-row:last-child{border-bottom:none}
.mc-box{
  width:22px;height:22px;border-radius:8px;border:1.5px solid var(--line);flex:none;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:var(--ink-3);
}
.mc-box.ready{background:var(--green);border-color:var(--green);color:#fff}
.mc-box.confirm{background:var(--red-soft);border-color:var(--red);color:var(--red)}
.mc-text{flex:1;min-width:0;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-text.done{text-decoration:line-through;color:var(--ink-3)}
.mc-status{flex:none;font-size:10.5px;color:var(--ink-3)}
.mc-more{display:block;text-align:center;width:100%;padding-top:10px;font-size:12.5px;font-weight:800;color:var(--red)}

/* ---------- 编辑记录 ---------- */
.log-day{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);letter-spacing:.12em;margin:16px 0 4px;padding-bottom:6px;border-bottom:1.5px solid var(--ink)}
.log-day:first-child{margin-top:4px}
.log-item{display:flex;gap:11px;padding:13px 0;border-bottom:1px solid var(--line-soft);align-items:flex-start}
.log-item:last-child{border-bottom:none}
.log-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex:none}
.log-body{flex:1;min-width:0}
.log-action{font-size:14px;font-weight:800;line-height:1.4}
.log-action .who{color:var(--red)}
.log-detail{font-size:12.5px;color:var(--ink-2);margin-top:3px;line-height:1.55;word-break:break-all}
.log-time{font-size:11px;color:var(--ink-3);font-family:var(--mono);flex:none;padding-top:3px}
/* ---------- 愿望池 / 伴手礼 ---------- */
.wish-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wish-card{background:var(--bg);border-radius:var(--r-md);overflow:hidden;border:1.5px solid var(--line)}
.wish-card .wc-img{height:96px;background:var(--beige);display:flex;align-items:center;justify-content:center;font-size:34px;object-fit:cover;width:100%}
.wish-card .wc-body{padding:11px}
.wish-card strong{font-size:13.5px;display:block;line-height:1.4}
.wish-card .sub{font-size:11px;color:var(--ink-3);margin:4px 0 9px;line-height:1.5;min-height:30px}
.wish-card .wc-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.type-group{margin-bottom:16px}
.type-group > h4{margin:0 0 10px;font-size:13.5px;font-weight:900;display:flex;align-items:center;gap:7px}
.type-group > h4::after{content:"";flex:1;height:1.5px;background:var(--line);border-radius:2px}
.city-block{margin-bottom:18px}
.city-head{display:flex;align-items:center;gap:8px;margin:6px 0 12px;background:var(--red-soft);border-radius:13px;padding:10px 14px}
.city-head b{font-size:14px;font-weight:900;color:var(--red-deep)}
.city-head small{font-size:11px;color:var(--red);opacity:.85}

/* ---------- AI 小汪 ---------- */
.chat-panel{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow);padding:12px 12px 10px;margin-bottom:10px;
  height:58dvh;min-height:300px;max-height:540px;
  display:flex;flex-direction:column;
}
.chat-list{
  flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;
  margin-bottom:10px;padding-right:3px;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;scrollbar-width:thin;
}
.chat-msg{display:flex;gap:10px;align-items:flex-end}
.chat-msg.me{align-self:flex-end;flex-direction:row-reverse}
.chat-msg .bubble{margin:0;max-width:78%}
.bubble{
  background:#fff;border:1.5px solid var(--line);border-radius:15px 15px 15px 5px;
  padding:10px 13px;font-size:12.5px;line-height:1.6;box-shadow:var(--shadow-sm);
}
.chat-msg.me .bubble{background:var(--ink);color:#fff;border-color:var(--ink);border-radius:15px 15px 5px 15px}
.chat-msg.dog .bubble{background:#fff;border-radius:15px 15px 15px 5px}
.chat-dog{width:40px;height:40px;flex:none}
/* 小汪思考中动画 */
.bubble.typing{display:flex;align-items:center;gap:5px;padding:13px 15px}
.dot-fl{width:7px;height:7px;border-radius:50%;background:var(--ink-3);animation:dotfl 1.1s infinite ease-in-out}
.dot-fl:nth-child(2){animation-delay:.18s}
.dot-fl:nth-child(3){animation-delay:.36s}
@keyframes dotfl{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.ai-hero{text-align:center;padding:10px 0 6px}
.ai-hero .ai-dog-big{width:128px;height:128px;margin:0 auto}
.ai-hero h2{margin:6px 0 2px;font-size:20px;font-weight:900}
.ai-hero .sub{font-size:12.5px;color:var(--ink-2)}
.smart-card{border:1.5px dashed var(--ink-3);border-radius:var(--r-md);padding:15px;margin-bottom:12px;background:#FCFBF8}
.smart-card h4{margin:0 0 5px;font-size:14px;font-weight:900;display:flex;align-items:center;gap:6px}
.smart-card p{margin:0 0 11px;font-size:12px;color:var(--ink-2);line-height:1.7}
.inspire-card{display:flex;gap:11px;align-items:center;background:var(--bg);border-radius:var(--r-md);padding:11px;margin-bottom:10px;border:1.5px solid var(--line)}
.inspire-card img{width:64px;height:64px;border-radius:12px;object-fit:cover;flex:none;background:var(--beige)}
.inspire-card strong{font-size:13.5px;display:block}
.inspire-card .sub{font-size:11.5px;color:var(--ink-3);margin-top:3px;line-height:1.6}
.inspire-chip-row{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.mini-chip{font-size:10px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:3px 9px;color:var(--ink-2)}

/* ---------- 衣柜 / 虚拟人 ---------- */
.doll-stage{
  display:flex;justify-content:center;gap:8px;align-items:flex-end;
  background:var(--beige);border-radius:var(--r-lg);padding:18px 10px 10px;margin-bottom:14px;
}
.doll-col{text-align:center;flex:1;max-width:170px}
.doll-name{
  display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--line);border-radius:99px;
  padding:5px 13px;font-size:12px;font-weight:800;box-shadow:var(--shadow-sm);margin-bottom:7px;
}
.doll-svg{width:100%;max-width:150px;height:auto}
.doll-heart{font-size:20px;align-self:center;padding-bottom:60px;color:var(--red)}
.wardrobe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-height:330px;overflow-y:auto;padding:2px;-webkit-overflow-scrolling:touch}
.cloth{background:var(--bg);border-radius:var(--r-md);padding:9px;text-align:center;border:2px solid transparent}
.cloth.selected{border-color:var(--red);background:var(--red-soft)}
.cloth-img{height:64px;display:flex;align-items:center;justify-content:center;font-size:34px}
.cloth-img img{width:100%;height:64px;object-fit:contain;border-radius:10px}
.cloth strong{font-size:12px;display:block;margin-top:5px;line-height:1.3}
.cloth .sub{font-size:10px;color:var(--ink-3)}

/* ---------- 相册 ---------- */
.album-record{background:var(--bg);border-radius:var(--r-md);padding:13px;margin-bottom:12px;border:1.5px solid var(--line)}
.album-head{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.album-head .who{font-size:13px;font-weight:900}
.album-text{font-size:13px;line-height:1.7;margin:6px 0 10px}
.album-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.album-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.mood-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.mood{font-size:11px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:4px 11px;color:var(--ink-2)}
.mood.hot{background:var(--red-soft);border-color:var(--red);color:var(--red)}
.album-dog{width:46px;height:46px;flex:none}

/* ---------- 我的 ---------- */
.me-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.me-entry{background:#fff;border-radius:var(--r-md);padding:18px 14px;text-align:center;box-shadow:var(--shadow-sm);border:1.5px solid var(--line)}
.me-entry:active{transform:scale(.96)}
.me-entry .ic{font-size:31px}
.me-entry b{display:block;font-size:14px;margin-top:9px}
.me-entry small{font-size:11px;color:var(--ink-3);display:block;margin-top:3px}
.me-profile{display:flex;align-items:center;gap:14px}
.me-profile .mp-info{flex:1}
.me-profile .mp-info b{font-size:17px;font-weight:900}
.me-profile .mp-info .sub{font-size:12px;color:var(--ink-3);margin-top:3px}
.subhead{display:flex;align-items:center;gap:10px;margin:2px 0 10px}
.subhead .back{width:38px;height:38px;border-radius:50%;background:#fff;border:1.5px solid var(--line);font-size:17px;box-shadow:var(--shadow-sm);flex:none}
.subhead h2{margin:0;font-size:20px;font-weight:900;flex:1}
.subhead .add-btn{width:38px;height:38px;border-radius:50%;background:var(--ink);color:#fff;font-size:20px;font-weight:700;flex:none}

/* ---------- 底部导航 ---------- */
.tabs{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:460px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);
  display:flex;align-items:center;justify-content:space-around;
  padding:5px 8px calc(6px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);z-index:50;
}
.tab{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink-3);flex:1;padding:2px 0}
.tab span{font-size:18px;line-height:1}
.tab b{font-size:10px;font-weight:700}
.tab.active{color:var(--red)}
.tab-ai{position:static}
.tab-ai .ai-dog{
  width:26px;height:26px;border-radius:50%;background:var(--ink);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  border:2px solid #fff;
}
.tab-ai .ai-dog svg{width:20px;height:20px;display:block}
.tab-ai b{margin-top:0;color:var(--red)}

/* ---------- 弹层 ---------- */
.sheet-mask{display:none;position:fixed;inset:0;background:rgba(28,27,26,.4);z-index:90;backdrop-filter:blur(2px)}
.sheet{
  display:none;position:fixed;left:50%;bottom:0;transform:translateX(-50%);
  width:100%;max-width:460px;max-height:86dvh;overflow-y:auto;
  background:#fff;border-radius:24px 24px 0 0;z-index:100;
  padding:10px 18px calc(24px + env(safe-area-inset-bottom));
  box-shadow:0 -8px 30px rgba(28,27,26,.2);
}
.sheet .handle{width:42px;height:5px;border-radius:99px;background:var(--ink-3);opacity:.4;margin:4px auto 14px}
.sheet h3{margin:0 0 14px;font-size:18px;font-weight:900}
.sheet h4{margin:14px 0 8px;font-size:14px;font-weight:900}
.field{margin-bottom:12px}
.field label{display:block;font-size:12px;font-weight:800;color:var(--ink-2);margin-bottom:5px}
.field input,.field select,.field textarea{
  width:100%;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);
  padding:11px 12px;outline:none;
}
.field textarea{min-height:74px;resize:vertical;line-height:1.6}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink-2)}
.sheet-row{display:flex;gap:10px;margin-top:16px}
.sheet-row .btn{flex:1}
.notice{background:var(--beige);border-radius:12px;padding:11px 13px;font-size:12.5px;line-height:1.7;color:var(--ink-2);margin-bottom:12px}
.notice.mint{background:var(--green-soft);color:#2A7A50}
.notice.pink{background:var(--red-soft);color:var(--red-deep)}
.parse-row{background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:11px;margin-bottom:10px}
.parse-row .pr-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.parse-row .pr-head .num{width:23px;height:23px;border-radius:50%;background:var(--ink);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.parse-row .pr-head b{font-size:13px;flex:1}
.parse-row .pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.parse-row .pr-grid .full{grid-column:1/-1}
.parse-row input,.parse-row select{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:8px 9px;font-size:12.5px;background:#fff}
.parse-row label{font-size:10.5px;color:var(--ink-3);display:block;margin-bottom:3px;font-weight:700}

/* ---------- toast / 状态 / 其他 ---------- */
.toast{
  position:fixed;left:50%;bottom:120px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#fff;font-size:13px;padding:11px 22px;border-radius:99px;
  opacity:0;pointer-events:none;transition:all .25s;z-index:200;max-width:86%;text-align:center;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.map-card{
  height:124px;border-radius:var(--r-md);position:relative;overflow:hidden;
  background:
    linear-gradient(105deg,transparent 48%,rgba(212,58,47,.16) 49%,rgba(212,58,47,.16) 51%,transparent 52%),
    linear-gradient(15deg,transparent 60%,rgba(157,184,210,.35) 61%,rgba(157,184,210,.35) 70%,transparent 71%),
    repeating-linear-gradient(90deg,transparent 0 38px,rgba(168,163,154,.16) 38px 40px),
    repeating-linear-gradient(0deg,transparent 0 38px,rgba(168,163,154,.13) 38px 40px),
    var(--beige);
}
.map-card .map-pin{position:absolute;font-size:18px;transform:translate(-50%,-100%)}
.map-card .map-btn{position:absolute;right:10px;bottom:10px;background:var(--ink);color:#fff;font-size:12px;font-weight:700;padding:9px 15px;border-radius:99px;box-shadow:var(--shadow-sm)}
.status{font-size:11px;font-weight:800;border-radius:99px;padding:5px 11px;white-space:nowrap}
.status.ready{background:var(--green-soft);color:var(--green)}
.status.pending{background:var(--beige);color:var(--ink-2)}
.status.confirm{background:var(--red-soft);color:var(--red)}
.status.bought{background:var(--green-soft);color:var(--green)}
.status.want{background:var(--beige);color:var(--ink-2)}
.done-text{text-decoration:line-through;color:var(--ink-3)}
.photo-thumb{width:54px;height:54px;border-radius:12px;object-fit:cover;border:1.5px solid var(--line)}
.img-upload{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--bg);border:1.5px dashed var(--ink-3);border-radius:12px;padding:13px;font-size:12.5px;color:var(--ink-2);cursor:pointer;text-align:center;min-height:48px}
.img-upload:active{background:var(--beige)}
.img-upload img{width:44px;height:44px;border-radius:10px;object-fit:cover}
.img-field-input{display:none}
/* 多图上传缩略图条 */
.multi-upload{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.multi-upload .mu-add{width:64px;height:64px;border-radius:12px;border:1.5px dashed var(--ink-3);background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:22px;color:var(--ink-3);cursor:pointer;gap:2px}
.multi-upload .mu-add small{font-size:9.5px;font-weight:700}
.mu-tile{position:relative;width:64px;height:64px}
.mu-tile img{width:64px;height:64px;border-radius:12px;object-fit:cover;border:1px solid var(--line)}
.mu-tile .mu-del{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--ink);color:#fff;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;border:2px solid #fff;cursor:pointer}
/* 图片灯箱 */
.lightbox{display:none;position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.92);align-items:center;justify-content:center;touch-action:pan-y}
.lightbox.open{display:flex}
.lightbox img{max-width:100vw;max-height:78vh;object-fit:contain}
.lb-close{position:absolute;top:14px;right:16px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;z-index:2}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;z-index:2}
.lb-prev{left:10px}.lb-next{right:10px}
.lb-count{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:rgba(255,255,255,.85);font-size:13px;font-weight:700;z-index:2}
.lb-hint{position:absolute;bottom:44px;left:0;right:0;text-align:center;color:rgba(255,255,255,.5);font-size:11px;z-index:2}
/* 时间滚轮选择器 */
.wheel-wrap{display:flex;gap:10px;justify-content:center;margin:6px 0 4px}
.wheel{position:relative;width:74px;height:152px;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.wheel::-webkit-scrollbar{display:none}
.wheel-item{height:38px;line-height:38px;text-align:center;font-size:19px;font-weight:800;color:var(--ink-3);scroll-snap-align:center;font-family:var(--mono)}
.wheel-item.sel{color:var(--ink)}
.wheel-mask{position:absolute;left:0;right:0;top:57px;height:38px;border-top:1.5px solid var(--line);border-bottom:1.5px solid var(--line);border-radius:8px;pointer-events:none;background:rgba(212,58,47,.05)}
.wheel-label{text-align:center;font-size:11px;color:var(--ink-3);font-weight:700;margin-top:4px}
.wheel-presets{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:4px 0 2px}
.wheel-presets button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 11px;font-size:11.5px;font-weight:700;color:var(--ink-2)}
.wheel-presets button:active{background:var(--beige)}
.wheel-show{text-align:center;font-family:var(--mono);font-size:22px;font-weight:900;color:var(--red);margin:2px 0}
/* 账单按天筛选横条 */
.day-filter{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x}
.day-filter::-webkit-scrollbar{display:none}
.day-filter button{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:7px 13px;font-size:12px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.day-filter button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
/* AI 对话输入栏 */
.chat-input-bar{display:flex;gap:8px;align-items:center;flex:none;padding:6px 0 0;border-top:1px solid var(--line-soft)}
.chat-input-bar input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:99px;padding:11px 16px;font-size:13.5px;background:#fff}
.chat-send{flex:none;width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center}
.chat-quick{display:flex;gap:7px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x}
.chat-quick::-webkit-scrollbar{display:none}
.chat-quick button{flex:none;border:1px solid var(--line);background:#fff;border-radius:99px;padding:7px 12px;font-size:12px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.dog-bounce{animation:dogbounce 1.6s ease-in-out infinite}
@keyframes dogbounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.dog-wave{transform-origin:70% 90%;animation:dogwave 1.8s ease-in-out infinite}
@keyframes dogwave{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg)}60%{transform:rotate(14deg)}}

@media (min-width:461px){
  body{padding:20px 0}
  .phone{border-radius:32px;min-height:calc(100dvh - 40px);overflow:hidden}
  .tabs{border-radius:0 0 32px 32px;overflow:hidden}
  .sidebar{border-radius:32px 0 0 32px}
}
/* __CSS_CHUNK_4_END__ */


