.logo-icon { width: 42px; height: 42px; filter: drop-shadow(0 3px 8px var(--warm-shadow-soft)); }
.logo-icon > img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 11px; }
.logo-icon > svg { display: none; }
.logo-wrapper h1 { font-size: 16px; letter-spacing: 0; white-space: nowrap; color: var(--text-color); }
@media (max-width: 768px) { .logo-wrapper h1 { font-size: 13px; } }
/* 参考图首页 UI 覆盖样式：375px 移动端奶油色与焦糖色主题 */
body.reference-ui { background:var(--bg); color:var(--text-color); }
body.reference-ui .bg-decoration { display:none; }
.reference-home { position: relative; max-width: 100%; padding: 8px 0 110px; }
.reference-overview {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 116px;
  padding: 16px 20px;
  margin: 10px 0 14px;
  border-radius: 22px;
  background: linear-gradient(110deg, var(--tag-autumn-bg), var(--bg-warm-subtle));
  color: var(--warm-text);
  box-shadow: 0 6px 16px var(--warm-shadow-sm);
  overflow: hidden;
}
.overview-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  margin-bottom: 4px;
}
.overview-total strong {
  display: block;
  font-size: 40px;
  line-height: 1;
  letter-spacing: -1px;
  margin-bottom: 4px;
}
.overview-sub {
  display: block;
  /* v2.9.30：warm-text-secondary 在 default 仅 3.88:1（rccJr7），换作用域墨色档 */
  color: var(--wardrobe-ink-2);
  font-size: 11px;
}
.overview-sub b {
  color: var(--warm-text);
  font-size: 14px;
  font-weight: 700;
  margin-left: 2px;
}
/* v2.9.49：概览页可见添加入口（P0——概览下悬浮 + 钮位于 display:none 的衣物面板内，不渲染）。
   ≤768px 占满一行好按；≥769px 收到 320px，避免在 1440px 宽容器里拉成一条超长按钮。
   min-height 必须显式给 44px：本文件 409 行的 `.btn{min-height:38px}` 加载在 style.css 的
   全局 44px 底线之后且同特异性，会把 .btn 压成 38px（全站既有问题，见本文件 607 行旧注）。
   `.overview-actions .btn` 特异性 (0,2,0) > `.btn` (0,1,0)，故无需 !important 即可生效。 */
.overview-actions { display: flex; gap: 10px; margin: 0 0 16px; }
.overview-actions .btn { flex: 1 1 auto; min-height: 44px; }
@media (min-width: 769px) { .overview-actions { max-width: 320px; } }
.overview-health {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.overview-health-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.3;
}
.overview-health-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--warm-text);
}
.overview-health-text small {
  font-size: 11px;
  font-weight: 500;
  /* v2.9.30：同 .overview-sub（rccJr7） */
  color: var(--wardrobe-ink-2);
  margin-top: 2px;
}
/* 92 健康度环形：严格正圆，使用 SVG 圆环确保跨浏览器一致 */
.health-ring {
  position: relative;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  flex-shrink: 0;
  background:
    radial-gradient(circle at center, var(--bg-card-solid) 0 58%, transparent 59%),
    /* v2.9.28：弧长改由 --progress 驱动（0-100 分 → 0-360deg）。此前写死 331deg = 恒 92%，
       与环内数字无关（script.js 中 health-ring 零引用），衣橱页 critique 判为 P0 失真。
       写法照抄本文件 :163 旅行倒计时环的既有模式。 */
    conic-gradient(var(--accent-deep) 0deg calc(var(--progress, 0) * 3.6deg), var(--warning-bg-light) calc(var(--progress, 0) * 3.6deg) 360deg);
  display: grid;
  place-items: center;
}
.health-ring strong {
  position: relative;
  z-index: 1;
  font-size: 20px;
  font-weight: 700;
  color: var(--warm-text);
  line-height: 1;
}
/* 衣物列表右下角悬浮 + 号按钮 */
#wardrobeClothingPanel { position: relative; }
.reference-add-button { position:fixed; right:max(22px,calc((100vw - 375px)/2 + 22px)); bottom:86px; z-index:210; display:grid; place-items:center; width:56px; height:56px; border:0; border-radius:50%; color:var(--white-text); background:var(--accent-deep); box-shadow:0 6px 14px var(--warm-shadow-medium); cursor:pointer; transition:transform .15s ease; }
.reference-add-button:active { transform:scale(.9); }
.reference-add-button svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; }

/* 穿搭页：把"+"生成按钮改成右下角悬浮 FAB（与衣橱页 referenceAddButton 一致）。
   v2.9.70 B2：原 17 个 !important（反杀 index.html 内联）全部退役——内联已删，
   right 公式保留移动端 375 基准列语义，桌面 ≥969px 由文件尾 B4 段锚定内容列 */
.workbench-generate-fab {
  position: fixed;
  right: max(22px, calc((100vw - 375px) / 2 + 22px));
  bottom: 86px;
  z-index: 210;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--accent-deep);
  color: var(--white-text);
  border: 0;
  box-shadow: 0 6px 14px var(--warm-shadow-medium);
  font-size: 28px;
  line-height: 1;
  display: grid;
  place-items: center;
  padding: 0;
  cursor: pointer;
  transition: transform .15s ease;
  margin: 0;
}
.workbench-generate-fab:active { transform: scale(.9); }.reference-hidden-action, .reference-legacy-stats { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; }.reference-home .empty-state { padding:40px 10px; /* v2.9.30（rccJr7） */ color:var(--wardrobe-ink-2); }

/* 旅行打包工作台：暖色、移动端优先，旧旅行管理区仅作为兼容入口保留 */
.travel-workbench-page { min-height:calc(100vh - 80px); padding:calc(10px + env(safe-area-inset-top)) 14px calc(112px + env(safe-area-inset-bottom)); background:var(--bg); color:var(--text-color); }
.travel-workbench-topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:22px; }.travel-workbench-topbar h2 { margin:2px 0 0; font-size:28px; color:var(--warm-text); }.travel-eyebrow,.travel-card-kicker { color:var(--primary-dark); font-size:10px; letter-spacing:1.5px; font-weight:800; }.travel-back-button,.travel-more-button { width:44px; height:44px; border:0; border-radius:50%; background:var(--bg-card-solid); color:var(--warm-text-secondary); font-size:30px; box-shadow:0 4px 12px var(--border-warm-soft); }.travel-more-button { font-size:18px; letter-spacing:2px; }.travel-trip-hero { display:flex; flex-direction:column; gap:14px; padding:18px; border:2px solid var(--warning-border); border-radius:22px; background:var(--bg-card-solid); color:var(--text-color); box-shadow:0 8px 18px var(--warm-shadow-sm); }
.travel-trip-hero-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.travel-trip-hero-head > div { flex: 1 1 auto; min-width: 0; }
.travel-trip-hero h3 { margin:4px 0 2px; font-size:21px; color:var(--text-color); line-height:1.2; }
.travel-trip-hero p { margin:0; font-size:12px; color:var(--wardrobe-ink-2); opacity:1; }
.travel-trip-date { margin-top:4px !important; font-size:11px !important; word-break:keep-all !important; } /* v2.9.34：去掉 opacity .85（default 3.11:1） */
.travel-edit-button { position:relative; min-height:36px; padding:0 12px; border:1px solid var(--warning-border); border-radius:18px; background:var(--warning-bg-light); color:var(--primary-dark); font-size:13px; }
/* v2.9.64 adapt：36px 视觉保持，::after 上下外扩命中至 44px */
.travel-edit-button::after { content:''; position:absolute; inset:-6px 0; border-radius:18px; }
.travel-edit-button-corner { align-self:flex-start; flex-shrink:0; min-height:32px; padding:0 14px; font-size:12px; border-radius:16px; }
.travel-start-button { min-height:36px; padding:0 18px; border:0; border-radius:18px; background:var(--tab-active-bg); color:var(--white-text); font-weight:600; font-size:13px; letter-spacing:.5px; box-shadow:0 4px 10px var(--warm-shadow-soft); transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease; }
.travel-start-button:hover:not([disabled]) { transform:translateY(-1px); box-shadow:0 6px 14px var(--warm-shadow-medium); }
.travel-start-button:active:not([disabled]) { transform:translateY(0); box-shadow:0 2px 6px var(--warm-shadow-soft); }
.travel-start-button[disabled] { background:var(--gray-100); color:var(--text-completed); box-shadow:none; cursor:default; opacity:.85; }
.travel-trip-hero.is-finished { padding:14px 14px 14px; gap:10px; min-height:0 !important; height:auto !important; }
.travel-trip-hero.is-finished .travel-countdown-widget { display:none !important; height:0 !important; min-height:0 !important; padding:0 !important; margin:0 !important; border:0 !important; visibility:hidden; overflow:hidden; }
.travel-trip-hero.is-finished .travel-next-trip-cta { padding:12px 14px !important; gap:12px; background:var(--bg-warm-subtle); border-color:var(--warm-border-strong); }
.travel-trip-hero.is-finished .travel-next-trip-cta-text strong { color:var(--primary-dark); font-size:13px; }
.travel-trip-hero.is-finished .travel-next-trip-cta-text span { color:var(--warm-text-secondary); font-size:11px; }
/* v2.9.73：hero 右上角操作列（出发+编辑竖排），替代原独占一行的 hero-foot（已删） */
.travel-trip-hero-actions { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
.travel-trip-hero-head > .travel-trip-hero-actions { flex:0 0 auto; } /* 同特异性反制 hero-head > div 的 flex:1（0,2,0 > 0,1,1），列宽钉内容 */
.travel-trip-hero-actions .travel-edit-button { align-self:stretch; } /* corner 原 align-self:flex-start 抵消 stretch，列内两钮同宽 */
.travel-next-trip-cta { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-radius:18px; background:var(--bg-warm-subtle); border:1px dashed var(--warm-border-strong); }
.travel-next-trip-cta-text { display:flex; flex-direction:column; gap:3px; min-width:0; }
.travel-next-trip-cta-text strong { color:var(--primary-dark); font-size:15px; font-weight:700; }
.travel-next-trip-cta-text span { color:var(--warm-text-secondary); font-size:12px; }
.travel-next-trip-cta .travel-start-button { flex-shrink:0; }
/* v2.9.34（旅行页 critique）：进行中状态不再硬编码绿色渐变——4 主题契约要求状态色走主题 token，语义由「正在旅行中」文字表达 */
.travel-countdown-widget.is-ongoing { background:var(--tab-active-bg); border-color:var(--warm-border-strong); color:var(--white-text); }
.travel-countdown-widget.is-ongoing .countdown-label,
.travel-countdown-widget.is-ongoing .countdown-caption,
.travel-countdown-widget.is-ongoing .countdown-date { color:var(--white-text); opacity:.9; }
.travel-countdown-widget.is-ongoing .countdown-num { color:var(--white-text); }
.travel-countdown-widget.is-ongoing .countdown-unit { color:var(--white-text); opacity:.85; }
.travel-countdown-widget.is-ongoing .countdown-ring { background: radial-gradient(circle at center, #ffffff 0 56%, transparent 57%); }
.travel-countdown-widget.is-ongoing .countdown-ring::before { background: rgba(255,255,255,.95); }
.travel-countdown-widget.is-ongoing .countdown-ring-progress { --progress-color:var(--white-text); }
.travel-countdown-widget.is-ongoing .countdown-ring-track { background:conic-gradient(rgba(255,255,255,.35) 0deg 360deg); }
.countdown-ring { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; width:78px; height:78px; border-radius:50%; }
.countdown-ring-track { position:absolute; inset:0; border-radius:50%; background:conic-gradient(rgba(255,255,255,.25) 0deg 360deg); -webkit-mask:radial-gradient(circle, transparent 56%, #000 57%); mask:radial-gradient(circle, transparent 56%, #000 57%); }
.countdown-ring-progress { position:absolute; inset:0; border-radius:50%; background:conic-gradient(var(--progress-color,#ffffff) 0deg calc(var(--progress,0) * 3.6deg), transparent calc(var(--progress,0) * 3.6deg) 360deg); -webkit-mask:radial-gradient(circle, transparent 56%, #000 57%); mask:radial-gradient(circle, transparent 56%, #000 57%); transition:background .3s ease; }
.countdown-ring .countdown-num { position:relative; z-index:2; line-height:1; font-size:24px; font-weight:800; color:var(--text-color); text-shadow:0 1px 0 rgba(255,255,255,.85), 0 0 6px rgba(255,255,255,.6); }
.countdown-ring .countdown-unit { position:relative; z-index:2; font-size:11px; color:var(--text-color); opacity:.75; } /* v2.9.62 typeset：10px→11px */

.travel-countdown-widget.is-upcoming { background: var(--tab-active-bg); border-color: var(--warm-border-strong); color:var(--white-text); padding:14px 16px; border-radius:18px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.travel-countdown-widget.is-upcoming .countdown-label,
.travel-countdown-widget.is-upcoming .countdown-caption,
.travel-countdown-widget.is-upcoming .countdown-date { color:var(--white-text); opacity:.95; }
.travel-countdown-widget.is-upcoming .countdown-num { color:var(--warm-deeper) !important; text-shadow:0 1px 2px rgba(255,255,255,.6); } /* v2.9.34：primary-hover 与渐变深端同色致 1:1 隐身，换深档 */
.travel-countdown-widget.is-upcoming .countdown-unit { color:var(--gray-700) !important; opacity:1; }
.travel-countdown-widget.is-ongoing .countdown-num { color:var(--warm-deeper) !important; text-shadow:0 1px 2px rgba(255,255,255,.6); }
.travel-countdown-widget.is-ongoing .countdown-unit { color:var(--gray-700) !important; opacity:1; }
.travel-countdown-widget.is-upcoming .countdown-ring { background: radial-gradient(circle at center, #ffffff 0 56%, transparent 57%); }
.travel-countdown-widget.is-upcoming .countdown-ring::before { background: rgba(255,255,255,.95); }
.travel-countdown-widget.is-upcoming .countdown-ring-progress { --progress-color:var(--white-text); }
.travel-countdown-widget.is-upcoming .countdown-ring-track { background:conic-gradient(rgba(255,255,255,.3) 0deg 360deg); }
.travel-card-kicker.is-ongoing { color:var(--primary-dark); }
.travel-card-kicker.is-upcoming { color:var(--warm-deeper); }
.travel-card-kicker.is-finished { display:inline-flex !important; align-items:center; gap:6px; padding:6px 12px !important; border-radius:14px !important; background:var(--gray-600) !important; color:var(--white-text) !important; font-size:12px !important; letter-spacing:.5px !important; box-shadow:0 2px 6px rgba(0,0,0,.08); } /* v2.9.34：gray-400 上白字仅 2.1:1 → gray-600 */
.travel-trip-hero.is-finished { background:var(--gray-100) !important; border-color:var(--gray-300) !important; opacity:.95; }
.travel-trip-hero.is-finished h3 { color:var(--wardrobe-ink-2) !important; }
.travel-trip-hero.is-finished .travel-trip-date { opacity:1 !important; } /* v2.9.34：原 .7 在冷主题 2.4-3.0:1 */
.travel-countdown-widget.is-finished { display:none !important; }
.travel-start-button { min-height:44px; padding:0 22px; border:0; border-radius:22px; background:var(--tab-active-bg); color:var(--white-text); font-weight:600; letter-spacing:1px; box-shadow:0 4px 12px var(--warm-shadow-soft); transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease; }
.travel-start-button:hover:not([disabled]) { transform:translateY(-1px); box-shadow:0 6px 16px var(--warm-shadow-medium); }
.travel-start-button:active:not([disabled]) { transform:translateY(0); box-shadow:0 2px 8px var(--warm-shadow-soft); }

/* 穿搭工作台：保留原有移动端暖色布局 */
.outfit-workbench-page { padding-bottom:110px; }.outfit-workbench { color:var(--text-color); }
/* v2.9.33（rpnpnT）：工作台搜索框（原死控件补全）—— 默认收起，点放大镜展开 */
.workbench-search-input { flex:0 1 0; min-width:0; min-height:44px; padding:0 12px; border:1px solid var(--warm-border-medium); border-radius:999px; background:var(--bg-card); color:var(--text-color); font-size:13px; opacity:0; pointer-events:none; transition:flex-basis .2s ease, opacity .2s ease; }
.workbench-search-input.open { flex:1 1 140px; opacity:1; pointer-events:auto; }
.workbench-search-input:focus-visible { outline:2px solid var(--primary); outline-offset:1px; }.workbench-category-tabs { display:flex; gap:8px; overflow-x:auto; padding:8px 0 12px; }.workbench-category { min-width:76px; min-height:44px; border:1px solid var(--warm-border-medium); border-radius:999px; background:var(--bg-card); color:var(--warm-text-secondary); }.workbench-category.active { border-color:var(--primary); color:var(--primary-dark); background:var(--bg-warm-faint); box-shadow:0 0 0 2px var(--border-warm-soft) inset; }.workbench-rack { display:none; }.workbench-rack.active { display:block; }.workbench-items { display:flex; gap:10px; overflow-x:auto; padding:4px 2px 14px; }.workbench-item { flex:0 0 92px; min-height:122px; padding:7px; border:2px solid transparent; border-radius:16px; background:var(--bg-card); color:var(--warm-text-secondary); box-shadow:var(--shadow-sm); }.workbench-item.selected { border-color:var(--primary); box-shadow:0 0 0 2px var(--warm-light); }.workbench-item img,.workbench-item-placeholder { display:block; width:100%; height:86px; object-fit:contain; border-radius:10px; background:var(--bg-warm-faint); }.workbench-item span { display:block; overflow:hidden; margin-top:5px; white-space:nowrap; text-overflow:ellipsis; font-size:12px; }.workbench-color-match { display:flex; align-items:center; gap:10px; min-height:44px; margin:4px 0 16px; padding:8px 12px; border-radius:12px; background:var(--bg-warm-faint); color:var(--primary-dark); font-size:12px; }.color-match-swatches { display:flex; gap:3px; }.color-match-swatches i { width:14px; height:14px; border-radius:50%; background:var(--primary); border:1px solid var(--bg-card-solid); }.color-match-swatches i:nth-child(2) { background:#e7b08d; }.color-match-swatches i:nth-child(3) { background:#7a8b6f; }.color-match-swatches i:nth-child(4) { background:#e5d0b7; }.workbench-generate-button { display:grid; place-items:center; width:70px; height:70px; margin-top:-32px; border:5px solid var(--bg); border-radius:50%; background:var(--primary); color:var(--white-text); font-size:48px; font-weight:200; line-height:1; box-shadow:0 8px 18px var(--warm-shadow-medium); }.workbench-outfit-cards { display:flex; gap:12px; overflow-x:auto; padding:4px 2px 16px; scroll-snap-type:x proximity; }.workbench-outfit-cards .outfit-card { flex:0 0 78%; scroll-snap-align:start; }.workbench-search-input-hidden { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }.workbench-generate-button:active { transform:scale(.9); }
@media (min-width:769px) { .outfit-workbench-page { max-width:920px; margin:0 auto; }.workbench-outfit-cards .outfit-card { flex-basis:320px; } }

/* ==========================================================
   v2.0.2 全页面字号 + 布局紧凑化覆盖（参考小红书/小米有品卡片节奏）
   目标：标题字号统一缩到 16-18px；按钮高度 ≤44px；卡片间距 8-12px
   ========================================================== */

/* ---- 通用：页面 H1/H2/H3 紧凑化 ---- */
h1, h2, h3, h4 { font-weight: 700; }
.app-page h1 { font-size: 22px; margin: 0 0 10px; color: var(--text-color); }
.app-page h2 { font-size: 18px; margin: 0 0 10px; color: var(--text-color); }
.app-page h3 { font-size: 15px; margin: 0 0 8px; color: var(--warm-text); }
.app-page h4 { font-size: 13px; margin: 0 0 6px; color: var(--warm-text-secondary); }

/* ---- 衣橱页 (page-wardrobe) 紧凑化 ---- */
#page-wardrobe { padding: 6px 12px 24px; }
#page-wardrobe .filter-section { padding: 10px 12px !important; margin-bottom: 12px !important; border-radius: 18px !important; } /* v2.9.89：12/14→10/12 紧凑化 */
#page-wardrobe .filter-section h3 { font-size: 14px !important; margin-bottom: 8px !important; }
#page-wardrobe .filter-header { gap: 6px !important; }
#page-wardrobe .filter-row { gap: 6px !important; margin-bottom: 6px !important; }
#page-wardrobe .filter-row label,
#page-wardrobe .filter-section-label { font-size: 11px !important; color: var(--gray-500); }
#page-wardrobe .filter-row select,
#page-wardrobe .filter-row input { font-size: 13px !important; padding: 6px 8px !important; min-height: 36px !important; }
/* v2.9.28：min-height 32→44（44px 触控底线，衣橱页 critique rT3Zhb）；radius 随高度 16→22 保持药丸感 */
#page-wardrobe .filter-search input { min-height: 44px !important; font-size: 12px !important; padding: 4px 26px 4px 28px !important; border-radius: 22px !important; background: var(--bg-card-solid) !important; }
#page-wardrobe #btnResetFilter { font-size: 12px !important; padding: 0 12px !important; border-radius: 22px !important; } /* v2.9.89：删 min-height:44!important——双 ID 特异性 (2,0,0) 会压死移动端 32px 紧凑方案，桌面由全局 .btn 44 兜底 */
/* 衣物页搜索框清除按钮：固定 22×22 正圆（不受 flex stretch 影响） */
#page-wardrobe .filter-search .picker-search-clear,
#page-wardrobe .filter-search #wardrobeSearchClear {
  position: absolute !important;
  right: 6px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  max-width: 22px !important;
  max-height: 22px !important;
  flex: none !important;
  align-self: center !important;
  border-radius: 50% !important;
  padding: 0 !important;
  line-height: 1 !important;
  font-size: 12px !important;
  background: var(--gray-100) !important;
  color: var(--gray-600) !important;
  border: 0 !important;
}
#page-wardrobe .switch-label { font-size: 12px !important; } /* v2.9.65 A6：11px→12px 交互文字底线 */
/* v2.9.28：清除按钮视觉 22×22 但命中区扩到 44×44（伪元素透明扩hit，44px 触控底线） */
#page-wardrobe .filter-search .picker-search-clear::after,
#page-wardrobe .filter-search #wardrobeSearchClear::after { content: ''; position: absolute; inset: -11px; }
/* v2.9.28：min-height 32→44（44px 触控底线）；radius 16→22 与高度匹配。
   v2.9.33：#btnApplyFilter 已移除（筛选为实时生效，按钮纯冗余，critique rpnpnT），规则同步清理
   v2.9.89：min-height:44!important 删除——双 ID (2,0,0) 压死移动端 32px 紧凑方案，桌面由全局 .btn 兜底 */
#page-wardrobe #btnResetFilter { font-size: 12px !important; padding: 0 12px !important; border-radius: 22px !important; }
#page-wardrobe .recycle-toggle-row { gap: 8px !important; font-size: 12px !important; }
/* v2.9.24：此处原有 16 条 #page-home .dashboard-* / .stat-total / .health-* / .chart-* 紧凑化规则，
   但 #page-home 内没有这些元素（全部位于 #page-wardrobe，见 index.html:183-193），JS 也不生成
   dashboard-*，属无宿主的死规则，已删除。 */
#page-wardrobe .clothing-section { padding: 8px 14px !important; border-radius: 14px !important; }
#page-wardrobe .clothing-section h3 { font-size: 14px !important; }
#page-wardrobe .clothing-grid { gap: 10px !important; }
#page-wardrobe .clothing-card { border-radius: 18px !important; }
#page-wardrobe .clothing-card .card-title { font-size: 13px !important; }
#page-wardrobe .clothing-card .card-tags .tag { /* v2.9.57：10px → 12px（critique 衣橱页 P2）；本规则被下行双 id 选择器压制，同步改值防复发 */ font-size: 12px !important; padding: 2px 6px !important; }
#page-wardrobe .empty-state { padding: 28px 10px !important; font-size: 12px !important; }

/* ---- 穿搭页 (page-outfits) 紧凑化 ---- */
#page-outfits h1 { font-size: 20px !important; margin-bottom: 8px !important; }
#page-outfits h2 { font-size: 16px !important; }
#page-outfits h3 { font-size: 14px !important; }
#page-outfits h4 { font-size: 12px !important; }
#page-outfits .outfit-card { padding: 10px !important; }
#page-outfits .outfit-card .outfit-name { font-size: 13px !important; }
#page-outfits .outfit-card .outfit-count { font-size: 11px !important; }
#page-outfits .workbench-category { font-size: 13px !important; padding: 0 12px !important; min-height: 38px !important; }
#page-outfits .workbench-color-match { font-size: 11px !important; padding: 6px 10px !important; min-height: 36px !important; }
/* v2.9.70 C6：.workbench-bottom-bar / .workbench-bottom-action 死规则已删（元素无宿主，v2.9.65 勘实） */
#page-outfits .workbench-generate-button { width: 56px; height: 56px; font-size: 36px; margin-top: -24px; } /* v2.9.70 B2：!important 退役（内联已收编） */

/* ---- 生活/旅行页 (page-travel) 紧凑化 ---- */
#page-travel h1 { font-size: 20px !important; margin-bottom: 8px !important; }
#page-travel h2 { font-size: 17px !important; }
#page-travel h3 { font-size: 14px !important; }
#page-travel h4 { font-size: 12px !important; }
#page-travel .travel-workbench-topbar h2 { font-size: 17px !important; }
#page-travel .travel-eyebrow,
#page-travel .travel-card-kicker { font-size: 11px !important; letter-spacing: 1px !important; } /* v2.9.62 typeset：10px→11px（impeccable 功能文字底线；v2.9.34 曾 9px→10px） */
#page-travel .travel-back-button,
#page-travel .travel-more-button { width: 38px !important; height: 38px !important; font-size: 20px !important; }
#page-travel .travel-more-button { font-size: 14px !important; }
#page-travel .travel-trip-hero { padding: 10px 14px !important; border-radius: 18px !important; }
#page-travel .travel-trip-hero h3 { font-size: 16px !important; margin: 3px 0 4px !important; }
#page-travel .travel-trip-hero p { font-size: 11px !important; line-height: 1.35 !important; }
#page-travel .travel-trip-hero-right { gap: 6px !important; }
#page-travel .travel-countdown-widget { padding: 6px 8px !important; min-height: 58px !important; }
#page-travel .countdown-ring { width: 48px !important; height: 48px !important; }
#page-travel .countdown-ring::after { inset: 4px !important; }
#page-travel .countdown-num { font-size: 17px !important; }
#page-travel .countdown-unit, #page-travel .countdown-caption { font-size: 11px !important; } /* v2.9.62 typeset：10px→11px（v2.9.34 曾 9px→10px） */

/* ===== v2.9.48：恢复 v2.9.46 误删的「打包工作台」基础样式 =====
   v2.9.46（2697e6f）本意只删「检查遗漏」的 .travel-pack-button（功能已移除）。
   但本文件存在「一行塞多条规则」的压缩行，整行删除连带删掉了工作台的全部基础声明，
   表现为：进度卡无底面、进度条不可见、推荐卡竖排散落、清单无样式、
   桌面端失去 max-width 约束（hero 被拉到 1150px）。
   以下内容由 git 从 2697e6f^ 精确取回，仅剔除 .travel-pack-button 相关声明。
   ⚠️ 本文件含多规则压缩行，后续「删死 CSS」必须核对目标所在行的整行内容，不可按选择器盲删。 */
.travel-start-button[disabled] { background:var(--gray-100); color:var(--text-completed); box-shadow:none; cursor:default; opacity:.85; }
.travel-progress-card,.travel-checklist-board { margin-top:16px; padding:20px; border-radius:24px; background:var(--bg-card-solid); box-shadow:0 6px 18px var(--warm-shadow-sm); }
.travel-progress-heading,.travel-section-title { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.travel-progress-heading strong { color:var(--primary-dark); font-size:20px; }
.travel-progress-heading i { font-style:normal; color:var(--wardrobe-ink-2); }
.travel-progress-heading em { margin-left:3px; font-style:normal; color:var(--primary-dark); font-weight:700; font-size:14px; }
/* v2.9.34：白字无底四主题 1.02-1.18:1（P0）→ 主题深色档 */
.travel-progress-track { height:10px; margin:14px 0 10px; overflow:hidden; border-radius:99px; background:var(--gray-100); }
.travel-progress-track span { display:block; width:0; height:100%; border-radius:inherit; background:var(--primary-gradient); transition:width .25s ease; }
.travel-progress-card p,.travel-section-title span { margin:0; color:var(--wardrobe-ink-2); font-size:12px; }
.travel-section-title { margin-bottom:14px; }
.travel-section-title h3 { margin:0; color:var(--warm-text); font-size:18px; }
.travel-recommend-strip { margin-top:22px; }
.travel-recommend-cards { display:flex; gap:10px; overflow-x:auto; padding:3px 2px 12px; }
.travel-recommend-card { position:relative; flex:0 0 124px; min-height:128px; padding:14px 12px; border-radius:19px; background:var(--bg-warm-subtle); box-shadow:0 4px 12px var(--warm-shadow-sm); }
.travel-recommend-card.is-added { background:var(--bg-warm-faint); border:1.5px solid var(--warm-border-strong); }
/* v2.9.34：opacity .65 让小字跌到 2.2-3.0:1，改用边框+底色表达已加入 */
.travel-recommend-icon { display:block; font-size:25px; margin-bottom:8px; }
.travel-recommend-card strong,.travel-recommend-card small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.travel-recommend-card strong { color:var(--warm-text); font-size:13px; }
.travel-recommend-card small { margin-top:4px; color:var(--wardrobe-ink-2); font-size:11px; }
.travel-recommend-card button { position:absolute; right:9px; bottom:9px; width:30px; height:30px; border:0; border-radius:50%; background:var(--accent-deep); color:var(--white-text); font-size:20px; }
/* v2.9.64 adapt：30px 加号钮命中区外扩至 44px */
.travel-recommend-card button::after { content:''; position:absolute; inset:-7px; border-radius:50%; }
.travel-recommend-card button:disabled { background:var(--gray-300); }
.travel-checklist-group { margin-bottom:18px; }
.travel-checklist-group:last-child { margin-bottom:0; }
.travel-checklist-group h4 { margin:0 0 8px; color:var(--primary-dark); font-size:13px; }
.travel-check-item { display:flex; align-items:center; gap:11px; min-height:52px; padding:4px 0; border-bottom:1px solid var(--warm-border); color:var(--warm-text); font-size:14px; }
.travel-check-item input { width:20px; height:20px; accent-color:var(--accent-deep); }
.travel-check-item span { flex:1; }
.travel-check-item i { width:8px; height:8px; border-radius:50%; background:var(--border-warm-soft); }
.travel-check-item.is-checked span { color:var(--gray-600); text-decoration:line-through; }
/* v2.9.34：text-completed 冷主题 2.55:1，已完成语义由删除线表达 */
.travel-check-item.is-checked i { background:var(--accent-deep); }
.travel-empty-workbench { padding:60px 22px; text-align:center; }
.travel-empty-icon { font-size:48px; }
.travel-empty-workbench h3 { color:var(--warm-text); }
.travel-empty-workbench p,.travel-workbench-empty-tip { color:var(--warm-text-secondary); font-size:13px; }
.travel-primary-button { min-height:46px; padding:0 24px; border:0; border-radius:24px; background:var(--tab-active-bg); color:var(--white-text); }
.travel-legacy-panel { margin-top:20px; }
@media (min-width:769px) {
  .travel-workbench-page { max-width:760px; margin:0 auto; border-radius:30px; }
  .travel-recommend-card { flex-basis:140px; }
}

#page-travel .travel-progress-card,
#page-travel .travel-checklist-board { padding: 14px 16px !important; border-radius: 18px !important; }
#page-travel .travel-progress-heading strong { font-size: 16px !important; }
#page-travel .travel-progress-track { height: 8px !important; margin: 10px 0 8px !important; }
#page-travel .travel-section-title h3 { font-size: 14px !important; }
#page-travel .travel-section-title span { font-size: 11px !important; }
#page-travel .travel-recommend-card { flex: 0 0 100px !important; min-height: 110px !important; padding: 10px 8px !important; }
#page-travel .travel-recommend-icon { font-size: 20px !important; margin-bottom: 4px !important; }
#page-travel .travel-recommend-card strong { font-size: 12px !important; }
#page-travel .travel-recommend-card small { font-size: 10px !important; }
#page-travel .travel-recommend-card button { width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important; padding: 0 !important; border-radius: 50% !important; display: grid !important; place-items: center !important; line-height: 1 !important; } /* v2.9.34：34px→44px，本页最高频交互 */
#page-travel .travel-check-item { min-height: 42px !important; font-size: 13px !important; gap: 8px !important; padding: 2px 0 !important; }
#page-travel .travel-empty-workbench { padding: 36px 18px !important; }
#page-travel .travel-empty-icon { font-size: 36px !important; }
#page-travel .travel-primary-button { min-height: 44px !important; padding: 0 18px !important; font-size: 13px !important; }
/* v2.9.34（旅行页 critique）：管理区按钮 38px、归档卡恢复/删除 36px → 44px 触控底线 */
#page-travel .travel-section-actions .btn { min-height: 44px !important; }
/* v2.9.34（旅行页 critique P1）：旧「旅行管理」面板降级紧凑——单列一行式卡片、隐藏与工作台重复的进度条 */
#tripGrid { grid-template-columns: 1fr !important; gap: 8px !important; }
#tripGrid .trip-card { padding: 10px 12px !important; }
#tripGrid .trip-card-progress { display: none !important; }
/* v2.9.34：行程切换器（多行程不再不可达） */
.trip-switcher { display: flex; align-items: center; gap: 2px; border: 1px solid var(--warm-border-medium); border-radius: 999px; background: var(--bg-card-solid); padding: 2px; }
.trip-switcher button { width: 44px; height: 44px; border: 0; border-radius: 999px; background: transparent; color: var(--primary-dark); font-size: 20px; line-height: 1; cursor: pointer; }
.trip-switcher button:active { background: var(--warm-hover-bg); }
.trip-switcher span { min-width: 34px; text-align: center; font-size: 12px; font-weight: 700; color: var(--wardrobe-ink-2); }
.travel-workbench-topbar-actions { display: flex; align-items: center; gap: 8px; }
/* v2.9.39：顶栏空间紧张时按钮被压窄，「＋ 新建」竖排两行（A总 反馈⑤）——禁止换行并禁止收缩；
   同时让标题区可收缩换行（min-width:0），避免按钮固定宽度后把 h2 挤成一个字一行 */
.travel-workbench-topbar > div:first-child { min-width: 0; }
.travel-workbench-topbar h2 { overflow-wrap: break-word; }
.travel-workbench-topbar-actions .travel-topbar-new { min-height: 44px; padding: 0 14px; font-size: 12px; white-space: nowrap; flex-shrink: 0; }
/* v2.9.83：撤销 v2.9.34 的 z-index:2——该规则让删除钮浮于卡片上层恒可见（A总 反馈：
   悬空圆钮 + 右侧整列空白视觉零散）。回归左滑露出语义：删除钮置于卡下层，左滑才露出（与待办列表同款）。 */

/* ---- 我的页 (page-mine) 紧凑化 ---- */
#page-mine h1 { font-size: 22px !important; }
#page-mine h2 { font-size: 17px !important; }
#page-mine h3 { font-size: 15px !important; }
#page-mine h4 { font-size: 13px !important; }
#page-mine .mine-section { padding: 12px 14px !important; margin-bottom: 12px !important; border-radius: 18px !important; }
#page-mine .mine-section > h3 { font-size: 14px !important; margin-bottom: 10px !important; }
#page-mine .mine-section > h4 { font-size: 12px !important; }
#page-mine .mine-buttons { gap: 8px !important; }
/* v2.9.57（critique mine 页 P2）：桌面窄列居中 720px——内容是单列 mine-card 卡片栈，
   按「按内容定宽」契约与首页功能中心同宽，不吃满视口（≤768px 不受影响） */
@media (min-width:769px) { #page-mine .mine-section { max-width: 720px; margin-left: auto; margin-right: auto; } }
/* v2.9.36：清理死选择器（.sync-status-row/.sync-buttons-row/.theme-toggle-row/.version-info
   指向不存在的 DOM；.btn-mine 行与 561-567 段重复且被后者覆盖）——btn-mine 尺寸统一走下段 */

/* ---- 全局按钮基线（v2.9.57：38px → 44px 触摸底线契约 §4.18，同特异性压过 style.css 全局 44 的问题在此收口；胶囊半径同步 22px） ---- */
.btn { font-size: 13px; min-height: 44px; padding: 0 14px; border-radius: 22px; }
.btn-primary { font-size: 13px; }
/* 把"主按钮"强制改用暖棕色（覆盖蓝紫渐变），保持与首页/卡片配色一致
   （v2.9.36：#btnAutoArchive 已从选择器组移除——index.html 无该 id，属死引用） */
.btn-primary,
button.btn-primary {
  background: var(--primary-gradient) !important;
  color: var(--white-text) !important;
  border: 0 !important;
  box-shadow: 0 3px 8px var(--warm-shadow-soft) !important;
}
.btn-primary:hover { filter: brightness(1.05); }

/* ==========================================================
   v2.0.3 各页面专项布局修复（基于实际渲染问题）
   ========================================================== */

/* 衣橱页：「筛选」按钮已移除（v2.9.33，critique rpnpnT：实时筛选下纯冗余），规则随之清理
   v2.9.89：min-height:44!important 删除（第三处双 ID 钉高，压死移动端 32px 紧凑方案）；
   该规则不在任何媒体块内=全局生效，字号 13 保留 */
#page-wardrobe #btnResetFilter {
  font-size: 13px !important;
  padding: 0 14px !important;
  border-radius: 22px !important;
}

/* 衣物页列表：每行 2 列（移动端优先） */
#page-wardrobe #wardrobeClothingGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}
#page-wardrobe #wardrobeClothingGrid .clothing-card .card-image { aspect-ratio: 1 / 1 !important; height: auto !important; min-height: 0 !important; }
#page-wardrobe #wardrobeClothingGrid .clothing-card .card-info { padding: 8px 10px !important; }
#page-wardrobe #wardrobeClothingGrid .clothing-card .card-title { font-size: 12px !important; }
#page-wardrobe #wardrobeClothingGrid .clothing-card .card-tags { margin-top: 3px !important; gap: 3px !important; }
#page-wardrobe #wardrobeClothingGrid .clothing-card .tag { /* v2.9.57：10px → 12px（critique 衣橱页 P2，双 id 本条为生效规则） */ font-size: 12px !important; padding: 2px 5px !important; }
@media (max-width: 480px) { /* v2.9.78 C3：380px 临时断点就近收编 */
  #page-wardrobe #wardrobeClothingGrid { grid-template-columns: 1fr !important; }
}

/* 穿搭页：缩小顶部英文标签+中文大标题、修复底部按钮重叠 */
.outfit-workbench-page .workbench-header { margin-bottom: 6px !important; }
.outfit-workbench-page .workbench-eyebrow {
  display: block !important;
  font-size: 11px !important; /* v2.9.62 typeset：9px→11px（impeccable 功能文字底线） */
  letter-spacing: 1px !important;
  margin-bottom: 2px !important;
  color: var(--primary-dark) !important;
}
.outfit-workbench-page .workbench-header h2 {
  font-size: 18px !important;
  margin: 0 !important;
  color: var(--warm-text) !important;
}
.outfit-workbench-page .workbench-search {
  position: relative !important;
  width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  border-radius: 50% !important;
  background: var(--bg-warm-faint) !important;
  border: 1px solid var(--border-warm-soft) !important;
  color: var(--primary-hover) !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  box-shadow: 0 2px 6px var(--warm-shadow-sm) !important;
}
/* v2.9.64 adapt：36px 圆钮命中区外扩至 44px（左右 -12px 兜住 flex 压缩态） */
.outfit-workbench-page .workbench-search::after { content: ''; position: absolute; inset: -4px -12px; border-radius: 50%; }
.outfit-workbench-page .workbench-search svg { width: 18px !important; height: 18px !important; fill: none !important; stroke: currentColor !important; stroke-width: 2 !important; }
/* 修正穿搭页底部"省审配装"标题（typo）+ 缩小字号 */
.saved-outfits-heading {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin: 14px 0 8px !important;
}
.saved-outfits-heading h3 {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--warm-text) !important;
  margin: 0 !important;
}
.saved-outfits-heading .workbench-create {
  position: relative !important;
  min-height: 32px !important;
  font-size: 12px !important;
  padding: 0 14px !important;
  border-radius: 16px !important;
  background: var(--bg-warm-faint) !important;
  color: var(--primary-hover) !important;
  border: 1px solid var(--border-warm-soft) !important;
}
/* v2.9.64 adapt：32px 视觉保持，::after 上下外扩命中至 44px */
.saved-outfits-heading .workbench-create::after { content: ''; position: absolute; inset: -6px 0; border-radius: 16px; }
/* 穿搭页生成 FAB（v2.9.70 C6：bottom-bar/bottom-action 死规则已删，元素无宿主；B2：!important 退役） */
.outfit-workbench-page .workbench-generate-button {
  width: 50px;
  height: 50px;
  font-size: 28px;
  margin-top: -20px;
  border-width: 4px;
}
/* 穿搭分类 tab 紧凑：高度与搜索按钮一致（36px） */
.outfit-workbench-page .workbench-category-tabs {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.outfit-workbench-page .workbench-category {
  position: relative !important;
  font-size: 13px !important;
  padding: 0 14px !important;
  min-height: 36px !important;
  min-width: 72px !important;
  border-radius: 999px !important;
}
/* v2.9.64 adapt：36px 视觉保持，::after 上下外扩命中至 44px（todo-cat-pill 同款手法） */
.outfit-workbench-page .workbench-category::after { content: ''; position: absolute; inset: -4px 0; border-radius: 999px; }
.outfit-workbench-page .workbench-search { margin-left: auto !important; }
/* 色彩匹配条压缩 */
.outfit-workbench-page .workbench-color-match {
  font-size: 11px !important;
  padding: 6px 10px !important;
  min-height: 32px !important;
  margin: 6px 0 10px !important;
}

/* 旅行页：压缩顶部英文标签+中文大标题 + 修底部按钮重叠 */
.travel-workbench-topbar { margin-bottom: 16px !important; }
.travel-workbench-topbar > div { line-height: 1.2 !important; }
.travel-eyebrow {
  font-size: 11px !important; /* v2.9.62 typeset：9px→11px（impeccable 功能文字底线） */
  letter-spacing: 1px !important;
  display: block !important;
  margin-bottom: 2px !important;
}
.travel-workbench-topbar h2 { font-size: 18px !important; margin: 0 !important; }
.travel-back-button, .travel-more-button {
  width: 36px !important;
  height: 36px !important;
  font-size: 20px !important;
}
.travel-more-button { font-size: 14px !important; }
/* 旅行页空态收紧 */
.travel-empty-workbench { padding: 30px 18px !important; }
.travel-empty-icon { font-size: 36px !important; }
.travel-empty-workbench h3 { font-size: 16px !important; margin: 8px 0 !important; }
.travel-empty-workbench p { font-size: 12px !important; margin: 0 0 16px !important; }
.travel-empty-workbench .travel-primary-button {
  min-height: 38px !important;
  font-size: 13px !important;
  padding: 0 20px !important;
  border-radius: 19px !important;
}
/* 我的页：缩小自动归档按钮、降低纵向按钮堆叠高度 */
#page-mine h1 {
  font-size: 20px !important;
  margin: 0 0 12px !important;
}
#page-mine .mine-section {
  padding: 12px 14px !important;
  margin-bottom: 10px !important;
  border-radius: 16px !important;
}
#page-mine .mine-section h4 {
  font-size: 13px !important;
  margin: 0 0 10px !important;
}
#page-mine .mine-buttons {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
}
/* v2.9.36：38px → 44px 触控底线（critique mine 页 P1；本段为此前 347 行同选择器的后置段，改这里才生效）
   注意 #page-mine #btnAutoArchive 已删（死引用）；#page-mine .btn-primary 与 .btn-mine 是同一颗按钮
   （btnMineAutoArchive 两个类都有），尺寸规则合并到 .btn-mine 一处 */
#page-mine .btn-mine,
#page-mine .mine-buttons .btn {
  min-height: 44px !important;
  font-size: 13px !important;
  padding: 0 12px !important;
  border-radius: 22px !important;
}
/* v2.9.36：style.css 的 .mine-card/.recycle-group h4 已升 ink-2 档，但被上面 .app-page h4
   （特异性更高、后加载）压回 warm-text-secondary（default 3.88:1）——此处按原意图重新提级。
   v2.9.38 勘误：回收站视图（#recycleSection 含两个 .recycle-group）实际宿主是「我的」页
   （index.html:678），非衣橱页——上方 #page-mine 选择器已全覆盖，四主题实测 h4 均为 ink-2 档、
   全站 h4 扫描 0 失败。v2.9.36 注释里「衣橱页同病未修」是宿主记错，无需额外修复。 */
#page-mine .mine-card h4,
#page-mine .recycle-group h4,
#page-mine .recycle-record-group h4 {
  color: var(--wardrobe-ink-2) !important;
}
/* v2.9.36：回收站批量条与收起按钮 44px（.btn 全局基线 38px 会压住它们） */
#page-mine #recycleBatchBar .btn,
#page-mine #btnRecycleCollapse {
  min-height: 44px !important;
}
/* v2.9.36：sync-status-row / sync-buttons-row / theme-toggle-row / version-info 四组死选择器已删除
   （指向不存在的 DOM，critique mine 页 P2） */

/* 衣橱选择器中的整套穿搭 */
.picker-outfit-preview {
  display: grid !important;
  place-items: center !important;
  gap: 4px !important;
  background: var(--bg-warm-faint) !important;
  color: var(--primary-hover) !important;
}
.picker-outfit-preview span { font-size: 34px; line-height: 1; }
.picker-outfit-preview small { font-size: 11px; color: var(--warm-text-secondary); }

/* 快速搭配台：移动端把头到脚压缩在一屏内，保留 44px 箭头触摸区 */
@media (max-width: 768px) {
  #page-wardrobe .quick-mix-card { padding: 12px !important; }
  #page-wardrobe .quick-mix-heading { margin-bottom: 2px !important; }
  #page-wardrobe .quick-mix-hint { margin: 2px 0 6px !important; font-size: 12px !important; } /* v2.9.62 typeset：11px→12px（句子提示保持正文底线，勿压破 style.css 的 12px） */
  #page-wardrobe .quick-mix-layers { gap: 6px !important; }
  #page-wardrobe .quick-mix-aux-row { gap: 6px !important; }
  #page-wardrobe .quick-mix-layer { grid-template-columns: 44px minmax(0, 1fr) 44px !important; gap: 2px !important; }
  #page-wardrobe .quick-mix-layer-compact { grid-template-columns: minmax(0, 1fr) !important; }
  #page-wardrobe .quick-mix-layer-label { font-size: 12px !important; line-height: 1.1 !important; }
  #page-wardrobe .quick-mix-preview { max-height: 118px !important; aspect-ratio: 1.25 / 1 !important; border-radius: 10px !important; }
  #page-wardrobe .quick-mix-layer-compact .quick-mix-preview,
  #page-wardrobe .quick-mix-layer-compact .quick-mix-preview-wide { max-height: 72px !important; width: 100% !important; aspect-ratio: 1.6 / 1 !important; }
  #page-wardrobe .quick-mix-actions { margin-top: 6px !important; gap: 6px !important; }
  #page-wardrobe .quick-mix-actions .btn { min-height: 44px !important; font-size: 12px !important; } /* v2.9.64 adapt：40→44（44px 触摸底线，快速搭配台清空/保存钮） */
}

/* 打包清单折叠 */
.travel-collapsible .travel-collapsible-head { cursor: pointer; user-select: none; }
.travel-collapsible .travel-collapsible-meta { display: flex; align-items: center; gap: 8px; }
.travel-collapsible .travel-collapsible-toggle {
  width: 44px; height: 44px; min-width: 44px; min-height: 44px;
  padding: 0; border-radius: 50%;
  border: 1px solid var(--warm-border-strong);
  background: var(--bg-card-solid); color: var(--primary);
  display: grid; place-items: center;
  cursor: pointer; transition: transform 0.2s ease, background 0.2s ease;
}
.travel-collapsible .travel-collapsible-toggle:hover { background: var(--warm-hover-bg); }
.travel-collapsible .travel-collapsible-icon {
  /* 用 border 画实心三角（图形唯一来源，HTML 中不再放字符） */
  width: 0; height: 0;
  display: inline-block;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 9px solid var(--primary-hover);
  transition: transform 0.25s ease;
}
.travel-collapsible[data-collapsed="false"] .travel-collapsible-icon { transform: rotate(180deg); }
.travel-collapsible[data-collapsed="true"] .travel-collapsible-icon { transform: rotate(0deg); }
.travel-collapsible .travel-collapsible-body[hidden] { display: none; }
.archived-trip-section { margin-top: 18px; }
.archived-trip-heading { display: flex; align-items: center; justify-content: space-between; padding: 4px 4px 8px; }
.archived-trip-heading h4 { font-size: 14px; color: var(--wardrobe-ink-2); margin: 0; }
.archived-trip-heading-actions { display: flex; align-items: center; gap: 8px; }
.archived-trip-count { font-size: 12px; color: var(--gray-600); } /* v2.9.34：text-completed 冷主题 2.4-2.9:1 */
.archived-trip-toggle { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--border-light); border-radius: 50%; background: var(--surface-card); color: var(--warm-text-secondary); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.archived-trip-toggle-icon { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(225deg) translate(-2px, -2px); transition: transform .18s ease; }
.archived-trip-section[data-collapsed="true"] .archived-trip-toggle-icon { transform: rotate(45deg) translate(-2px, -2px); }
.archived-trip-list[hidden] { display: none; }
@media (max-width: 600px) {
  .ref-result-actions { display: grid !important; grid-template-columns: 1fr 1fr; }
  .ref-result-actions #refApply { grid-column: 1 / -1; grid-row: 1; }
  .ref-result-actions #refDiscard { grid-column: 1 / -1; grid-row: 2; }
  .ref-result-actions #refCancel { grid-column: 1 / -1; grid-row: 3; }
}
.archived-trip-count em { font-style: normal; color: var(--warm-deeper); font-weight: 600; margin: 0 2px; }
.archived-trip-list { display: grid; gap: 8px; }
.archived-trip-card { display: flex !important; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px !important; }
.archived-trip-info { min-width: 0; flex: 1; }
.archived-trip-name { font-size: 14px; font-weight: 600; color: var(--wardrobe-ink-2); }
.archived-trip-meta { font-size: 11px; color: var(--gray-600); margin-top: 2px; }
.archived-trip-actions { display: flex; gap: 8px; flex-shrink: 0; } /* v2.9.34：恢复/删除间距 6→8，误触缓冲 */
.archived-trip-actions .btn { min-height: 44px !important; padding: 4px 12px !important; font-size: 12px !important; } /* v2.9.34：36px→44px 触控底线 */
.btn-danger-soft { background: var(--danger-deep-bg) !important; color: var(--danger-deep) !important; border: 1px solid var(--warm-border-strong) !important; }

/* ---- 复制行程选择列表 ---- */
.copy-trip-list { display: flex; flex-direction: column; gap: 8px; max-height: 50vh; overflow-y: auto; }
.copy-trip-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px; border-radius: 10px;
  background: var(--bg-warm-faint); border: 1px solid rgba(189, 91, 43, 0.12);
  cursor: pointer; transition: background 0.2s, border-color 0.2s;
}
.copy-trip-item:hover { background: var(--warm-hover-bg); border-color: var(--warm-border-strong); }
.copy-trip-info { flex: 1; min-width: 0; }
.copy-trip-name { font-size: 14px; font-weight: 600; color: var(--warm-text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.copy-trip-meta { font-size: 12px; color: var(--text-completed); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.copy-trip-arrow { font-size: 20px; color: var(--primary-light); margin-left: 10px; flex-shrink: 0; }

/* ---- 移动端响应式补丁 ---- */
@media (max-width: 768px) {
  .app-page h1 { font-size: 20px; }
  .app-page h2 { font-size: 16px; }
  .app-page h3 { font-size: 14px; }
  #page-wardrobe .dashboard-grid { grid-template-columns: 1fr !important; }
  #page-mine .mine-buttons { grid-template-columns: 1fr 1fr !important; gap: 6px !important; }
  #page-mine .btn-mine { font-size: 12px !important; padding: 0 10px !important; }
  #page-travel .travel-workbench-topbar h2 { font-size: 16px !important; }
  #page-outfits .workbench-generate-button { width: 52px; height: 52px; font-size: 30px; } /* v2.9.70 B2：!important 退役 */

  /* 穿搭方案移动端固定两列，避免横向滚动 */
  #page-wardrobe .workbench-outfit-cards {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }
  #page-wardrobe .workbench-outfit-cards .outfit-card {
    width: auto !important;
    min-width: 0 !important;
    flex: none !important;
    scroll-snap-align: none !important;
  }

  /* 衣橱页筛选区移动端 v2.9.89：按钮改自适应小胶囊右对齐（A总 反馈半宽大按钮占地/空白大，
     废除 v2.9.42「三钮等宽等高」）；视觉 32px + ::after 外扩命中区至 44px 底线（§4.18 手法） */
  #page-wardrobe .filter-actions {
    justify-content: flex-end !important;
  }
  #page-wardrobe .filter-actions .btn,
  #page-wardrobe .filter-actions .btn-more-filters {
    min-height: 0 !important;
    height: 32px !important;
    flex: 0 0 auto !important;
    padding: 0 14px !important;
    justify-content: center !important;
    position: relative;
  }
  #page-wardrobe .filter-actions .btn::after,
  #page-wardrobe .filter-actions .btn-more-filters::after {
    content: '';
    position: absolute !important;
    inset: -6px -2px;
  }

  /* 旅行工作台主行程卡：移动端紧凑布局 */
  #page-travel .travel-trip-hero {
    padding: 12px !important;
    gap: 10px !important;
    align-items: stretch !important;
  }
  #page-travel .travel-trip-hero > div:first-child {
    min-width: 0 !important;
  }
  #page-travel .travel-trip-hero h3 {
    margin: 3px 0 4px !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere !important;
  }
  #page-travel .travel-trip-hero p {
    line-height: 1.55 !important;
    overflow-wrap: anywhere !important;
  }
  #page-travel .travel-trip-date {
    margin-top: 8px !important;
  }
  #page-travel .travel-trip-hero.is-finished {
    padding: 12px !important;
    gap: 8px !important;
  }
  #page-travel .travel-trip-hero.is-finished .travel-countdown-widget {
    display: none !important;
  }
  #page-travel .travel-edit-button {
    justify-self: start !important;
    min-width: 76px !important;
    min-height: 44px !important;
  }

  #page-travel .travel-start-button {
    justify-self: stretch !important;
    min-height: 44px !important;
    padding: 0 22px !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    border-radius: 22px !important;
    background: var(--primary-gradient) !important;
    color: var(--white-text) !important;
    box-shadow: 0 4px 12px var(--warm-shadow-soft) !important;
  }
  #page-travel .travel-start-button[disabled] {
    background: var(--gray-100) !important;
    color: var(--text-completed) !important;
    border-color: var(--warm-border-medium) !important;
    box-shadow: none !important;
    cursor: default !important;
    opacity: 0.85 !important;
  }

  /* 旅行管理：标题不换行，三个管理按钮在同一行紧凑排列 */
  #page-travel .travel-legacy-panel .section-header {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 12px !important;
  }
  #page-travel .travel-legacy-panel .section-header h3 {
    white-space: nowrap !important;
    margin: 0 !important;
    font-size: 14px !important;
  }
  #page-travel .travel-legacy-panel .travel-section-actions {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    width: 100% !important;
    flex-wrap: nowrap !important;
  }
  #page-travel .travel-legacy-panel .travel-section-actions .btn {
    min-width: 0 !important;
    width: 100% !important;
    padding: 0 4px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* ============================================================
   v2.2.0：今日穿什么 / 穿搭日历 / 穿着记录
   ============================================================ */
.home-today-card {
  margin: 12px 0 0;
  padding: 14px 16px;
  border-radius: 16px;
  background: var(--bg-toolbar);
  /* v2.9.24：补齐 -webkit- 前缀（原本只有标准属性，Safari/旧 WebView 下无玻璃效果） */
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid var(--warm-border-medium);
  box-shadow: 0 2px 10px var(--warm-shadow-sm);
}
.home-today-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
/* v2.9.24：字号由 16px 提到 18px，与「功能中心」「衣橱概览/生活计划」两个兄弟区块标题统一
   （原为 19/18/16 三档；最不重要的卡片反而是最小字号，层级表达相反）。 */
.home-today-heading h2 { margin: 2px 0 0; font-size: 18px; color: var(--warm-text); } /* v2.9.62 typeset：h3→h2（修复 h1→h3 跳级，样式不变） */
.home-today-calbtn {
  border: 1px solid var(--warm-border-strong);
  /* v2.9.24：原硬编码暖奶色 rgba(255,247,230,.9) → 改走主题化玻璃底，
     各主题自带色相（冷主题下不再留暖斑）。不透明度 .88 与原 .9 视觉几乎一致。 */
  background: var(--bg-glass);
  color: var(--primary-dark);
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 999px;
  cursor: pointer;
  min-height: 44px;
  white-space: nowrap;
}
.home-today-headbtns {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-shrink: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.home-today-headbtns .home-today-calbtn {
  font-size: 12px;
  padding: 6px 10px;
  min-height: 44px;
  margin: 0;
}
@media (max-width: 480px) {
  .home-today-headbtns { gap: 4px; }
  .home-today-headbtns .home-today-calbtn { font-size: 11px; padding: 6px 8px; }
}
.home-today-body { min-height: 44px; }
.home-today-empty { font-size: 13px; color: var(--home-ink-2, var(--primary-dark)); padding: 8px 0; }
.home-today-row { display: flex; align-items: center; gap: 10px; padding: 4px 0; }
.home-today-thumbs { display: flex; gap: 4px; flex-shrink: 0; }
.home-today-thumbs img,
.home-today-thumbs .card-image-placeholder {
  width: 40px; height: 40px;
  border-radius: 10px;
  object-fit: cover;
  background: var(--bg-warm-faint);
  border: 1px solid var(--warm-border);
}
.home-today-text { min-width: 0; }
.home-today-text strong { display: block; font-size: 14px; color: var(--warm-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-today-text small { font-size: 11px; color: var(--home-ink-2, var(--primary-dark)); }
.home-today-actions { display: flex; gap: 8px; margin-top: 10px; }
.home-today-actions .btn { flex: 1; border-radius: 999px; min-height: 44px; }

/* 穿搭日历 */
.wearcal-nav { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.wearcal-nav strong { flex: 1; text-align: center; font-size: 15px; color: var(--warm-text-secondary); }
.wearcal-arrow {
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid var(--warm-border-medium);
  background: var(--bg-warm-subtle);
  color: var(--primary-hover);
  font-size: 20px;
  cursor: pointer;
  display: grid; place-items: center;
}
.wearcal-today { min-height: 44px; border-radius: 999px; font-size: 12px; padding: 0 14px; }
.wearcal-weekdays {
  display: grid; grid-template-columns: repeat(7, 1fr);
  text-align: center; font-size: 11px; color: var(--text-completed); margin-bottom: 4px;
}
.wearcal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.wearcal-cell {
  position: relative;
  aspect-ratio: 1 / 1;
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: var(--bg-warm-faint);
  cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  padding: 0;
  font: inherit;
}
.wearcal-cell.is-blank { background: transparent; cursor: default; }
.wearcal-daynum { font-size: 12px; color: var(--warm-text-secondary); line-height: 1; }
.wearcal-dots { display: flex; gap: 2px; min-height: 6px; }
.wearcal-dots i { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.wearcal-cell.is-today { border-color: var(--warm-border-strong); }
.wearcal-cell.is-selected { background: var(--warm-shadow-soft); border-color: var(--primary-hover); }
.wearcal-cell.has-log .wearcal-daynum { font-weight: 700; }

.wearcal-day-detail { margin-top: 10px; }
.wearcal-detail-head { font-size: 13px; color: var(--warm-text-secondary); margin: 4px 0 8px; font-weight: 600; }
.wearcal-log {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; margin-bottom: 6px;
  border-radius: 12px;
  background: var(--bg-warm-subtle);
  border: 1px solid var(--warm-border);
}
.wearcal-log-thumbs { display: flex; gap: 3px; flex-shrink: 0; }
.wearcal-log-thumbs img,
.wearcal-log-thumbs .card-image-placeholder {
  width: 32px; height: 32px; border-radius: 8px; object-fit: cover; background: var(--bg-card-solid);
}
.wearcal-log-info { flex: 1; min-width: 0; }
.wearcal-log-info strong { display: block; font-size: 13px; color: var(--warm-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wearcal-log-info small { font-size: 11px; color: var(--text-completed); }
.wearcal-log-del {
  width: 44px; height: 44px;
  border: none; background: transparent;
  color: var(--danger-deep); font-size: 15px; cursor: pointer;
  border-radius: 50%;
  flex-shrink: 0;
}
.wearcal-log-del:hover { background: var(--danger-deep-bg); }

/* 记录穿搭弹窗 */
.wearlog-section { margin: 10px 0; }
.wearlog-section-title { font-size: 12px; color: var(--text-completed); margin-bottom: 6px; font-weight: 600; }
.wearlog-outfit-list { display: flex; flex-wrap: wrap; gap: 6px; }
.wearlog-outfit {
  border: 1px solid var(--warm-border-strong);
  background: var(--bg-warm-subtle);
  color: var(--warm-text-secondary);
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 12px;
  cursor: pointer;
  min-height: 44px;
}
.wearlog-outfit.picked { background: var(--primary-hover); border-color: var(--primary-hover); color: var(--white-text); }
.wearlog-clothing-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
  gap: 6px; max-height: 220px; overflow-y: auto;
}
.wearlog-item {
  border: 2px solid transparent;
  background: var(--bg-warm-subtle);
  border-radius: 10px;
  padding: 4px;
  cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.wearlog-item img,
.wearlog-item .card-image-placeholder { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; background: var(--bg-card-solid); }
.wearlog-item span { font-size: 10px; color: var(--warm-text-secondary); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wearlog-item.picked { border-color: var(--primary-hover); background: var(--warm-hover-bg); }
.wearlog-hint { font-size: 12px; color: var(--text-completed); padding: 6px 0; }

/* 穿着次数元信息 */
.outfit-wear-meta { font-size: 12px; color: var(--text-completed); margin: 8px 0 0; text-align: center; }
.clothing-wear-meta { font-size: 12px; color: var(--text-completed); margin: 0 0 6px; }

/* ===== 穿搭详情弹窗：底部按钮溢出修复（v2.9.40，A总 真机反馈） ===== */
/* 390px 屏 4 按钮（今天穿这套/编辑穿搭/删除穿搭/关闭）单行放不下：
   .modal-actions 不换行 + justify-content:flex-end ⇒ 首钮被推出左缘截断。
   允许换行 + 按钮文案禁折行（CJK 会被 flex 压成竖排），窄屏自然折成 2+2 两行。 */
#outfitDetailModal .modal-actions { flex-wrap: wrap; }
#outfitDetailModal .modal-actions .btn { white-space: nowrap; }

/* ===== v2.9.44：旅行页四条真机反馈 ===== */

/* ① 打包工作台标题溢出：360px 视口下 eyebrow+标题+切换器+新建 ≈344px 放不下，
   v2.9.39 的 min-width:0+break-word 让标题主动折行。改为允许顶栏整体换行：
   标题区禁折断（eyebrow 与 h2 均单行），操作区换行后右对齐（同线时 margin-left:auto 即右对齐，等效 space-between） */
.travel-workbench-topbar { flex-wrap: wrap; row-gap: 8px; }
.travel-workbench-title-wrap { white-space: nowrap; }
.travel-workbench-topbar-actions { margin-left: auto; }

/* ② 即将出发主卡备注提醒（trip.notes，表单「备注」字段；无备注整行隐藏）
   v2.9.90：升级为琥珀警示条（A总：备注是本次行程重要注意事项，淡灰小 chip 不显眼）——
   warning-bg 底 + 左 3px 实色条 + 加粗 warning-text 文字，语义色 token 四主题同步 */
.travel-trip-notes {
  margin: 2px 0 0;
  padding: 7px 10px 7px 12px;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 600;
  color: var(--warning-text);
  background: var(--warning-bg);
  border: 1px solid var(--warning-bg);
  border-left: 3px solid var(--warning-text);
  border-radius: 8px;
}
.travel-trip-notes .icon { color: var(--warning-text); }

/* v2.9.83：撤销 64px 常驻右列预留——删除钮已回归左滑露出（见上方 z-index 撤销注释），
   卡片内容吃满宽度，目的地/天数不再被压短出空白；类型标签与删除钮不再同层，无重叠问题 */

/* ④b 行程类型标签配色：style.css 对应规则类名乱码（鍟嗗姟 等）从未生效，此处按 UTF-8 类名补齐 */
.tag-travel-休闲 { background: var(--success-bg); color: var(--success-text-dark); }
.tag-travel-商务 { background: var(--bg-warm-subtle); color: var(--primary-dark); }
.tag-travel-户外 { background: var(--tag-autumn-bg); color: var(--tag-autumn-text); }
.tag-travel-家庭 { background: var(--bg-warm-faint); color: var(--wardrobe-ink-2); }
.tag-travel-其他 { background: var(--gray-100); color: var(--wardrobe-ink-2); }

/* ===== v2.9.45：旅行工作台排版收紧 + 检查遗漏自愈 + 穿搭弹窗三钮一行 ===== */

/* ③a 顶栏收回单行：v2.9.44 的 wrap 在 360px 会折两行（居中观感显空旷）。
   切换器压缩后（见下）标题+切换器+新建在 360px 也能放下，改回 nowrap */
.travel-workbench-topbar { flex-wrap: nowrap !important; margin-bottom: 10px !important; }
.travel-workbench-topbar-actions { margin-left: auto !important; gap: 6px !important; }

/* ③b 页面底部 112px 大留白是为已拆除的 fixed 悬浮「检查遗漏」预留的，随按钮转流内一并收回 */
.travel-workbench-page { padding-bottom: calc(20px + env(safe-area-inset-bottom)) !important; }

/* ③c hero 内部节奏收紧 */
.travel-trip-hero { gap: 8px !important; }

/* ④a 切换器紧凑化：44px 药丸太大（A总 反馈④）。视觉 30px，::after 透明扩命中到 ≥44px */
.trip-switcher { padding: 2px !important; }
.trip-switcher button {
  width: 30px !important; height: 30px !important; min-height: 0 !important; font-size: 15px !important;
  position: relative;
}
.trip-switcher button::after { content: ''; position: absolute; inset: -7px; }
.trip-switcher span { min-width: 28px !important; font-size: 12px !important; }

/* ① 穿搭详情弹窗：移除「关闭」后三钮强制单行（覆盖 v2.9.40 的 wrap 规则） */
#outfitDetailModal .modal-actions { flex-wrap: nowrap; }
#outfitDetailModal .modal-actions .btn {
  white-space: nowrap;
  padding-left: 10px;
  padding-right: 10px;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
}

/* ===== v2.9.65 批次一 A3：主按钮纪律（DESIGN.md「每屏唯一 Primary」契约） ===== */
/* Ghost 样式与 .btn-ghost（style.css:807）同一套 token，双 id 选择器压过
   overrides L423 .btn-primary !important 与移动端 L798 .travel-start-button !important */
/* ① 许愿池：移动端（≤768px）FAB 在场时，顶部「＋许个愿」降级 ghost；
   桌面无 FAB（v2.9.50），顶部保持 Primary 不动 */
@media (max-width: 768px) {
  #page-wishes #btnWishAdd.btn-primary {
    background: transparent !important;
    background-image: none !important;
    color: var(--gray-600) !important;
    border: 1px solid var(--gray-200) !important;
    box-shadow: none !important;
  }
  #page-wishes #btnWishAdd.btn-primary:hover {
    background: var(--primary-gradient-soft) !important;
    background-image: none !important;
    border-color: var(--warm-border-medium) !important;
    color: var(--primary-deeppurple) !important;
  }
}
/* ② 旅行页：hero「🚀出发」保持唯一 Primary；顶栏「＋新建」与管理区「➕新建行程」降级 ghost
   （空态「新建行程」与「旅途结束」CTA 各自场景唯一，保持不动） */
#page-travel #btnWorkbenchNewTripTop,
#page-travel #btnCreateTrip {
  background: transparent !important;
  background-image: none !important;
  color: var(--gray-600) !important;
  border: 1px solid var(--gray-200) !important;
  box-shadow: none !important;
}
#page-travel #btnWorkbenchNewTripTop:hover:not([disabled]),
#page-travel #btnCreateTrip:hover {
  background: var(--primary-gradient-soft) !important;
  background-image: none !important;
  border-color: var(--warm-border-medium) !important;
  color: var(--primary-deeppurple) !important;
}
/* ===== v2.9.66 批次二 N2：缝线勾选（打包工作台清单） =====
   勘察坑：Chromium 对 appearance:auto 的原生 checkbox 忽略 border-radius（inline 也不生效），
   圆框必须 appearance:none 自绘。缝线 = 勾选态的虚线边框本体（实线圆框 → 虚线「缝一针」），
   ✓ 勾画在 label ::after（border 旋转 45°），色走 --success-text-dark 语义 token。 */
.travel-check-item { position: relative; }
.travel-check-item input {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  min-height: 0;
  margin: 0;
  border: 1.5px solid var(--warm-border-strong);
  border-radius: 50%;
  background: var(--bg-card-solid);
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.15s, background-color 0.15s;
}
.travel-check-item input:checked {
  border: 2px dashed var(--success-text-dark);
  background: var(--success-bg);
}
.travel-check-item::after {
  content: '';
  position: absolute;
  left: 6px;
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
  width: 9px;
  height: 5px;
  border-left: 2.5px solid var(--success-text-dark);
  border-bottom: 2.5px solid var(--success-text-dark);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s;
}
.travel-check-item:has(input:checked)::after { opacity: 1; }

/* ===== v2.9.67 批次三 B1a：装饰 emoji 暖调化（低成本档） =====
   sepia 微调 + 降饱和，把平台 emoji 的高饱和冷色纳入暖调（四主题统一，静态 filter 无性能成本）。
   只加在 emoji 载体容器上，不影响文字；占位图底色已是 token 暖米（勘误：评审所述「蓝紫渐变」不存在） */
.card-image-placeholder::before,
.home-feature-icon,
.home-idle-emoji,
.travel-recommend-icon {
  filter: sepia(0.22) saturate(0.82);
}

/* ===== v2.9.70 B2：index.html 内联样式收编（原 body 尾 <style> 块，hex 全部 token 化随主题走） ===== */
/* ① 旅行工作台顶栏（原内联 !important 保留——需压过本文件 L1068 段的同元素规则，属性不相交）
   v2.9.73：原 justify-content:center 与切换器 margin-left:auto 在多行程时相撞（切换器药丸压住 eyebrow），回退左对齐 space-between */
.travel-workbench-topbar { justify-content: space-between !important; gap: 0 !important; padding: 18px 16px 14px !important; }
.travel-workbench-title-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; overflow: hidden; }
/* v2.9.73：多行程+窄屏时标题区被切换器+新建挤压，装饰性 eyebrow/h2 省略号保底，杜绝压字 */
.travel-workbench-title-wrap .travel-eyebrow,
.travel-workbench-title-wrap h2 { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* ② 历史行程弹窗（.history-*，原 12 处 hex/冷灰 → 主题 token） */
.history-toolbar { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.history-filter { display: flex; gap: 6px; flex-wrap: wrap; }
.history-filter-btn {
  background: var(--bg-warm-subtle); color: var(--warm-text);
  border: 1px solid var(--warm-border); border-radius: 999px;
  padding: 6px 14px; font-size: 12px; font-weight: 600;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.history-filter-btn:hover { border-color: var(--warm-border-strong); }
.history-filter-btn.active {
  background: var(--primary-gradient);
  color: var(--white-text); border-color: transparent;
  box-shadow: 0 2px 8px var(--warm-shadow-soft);
}
.history-search {
  width: 100%; padding: 10px 14px; font-size: 13px;
  background: var(--bg-warm-faint); color: var(--text-color);
  border: 1px solid var(--warm-border); border-radius: 12px;
  outline: none; box-sizing: border-box;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.history-search:focus { border-color: var(--primary); background: var(--bg-warm-subtle); }
.history-list { display: flex; flex-direction: column; gap: 10px; max-height: 60vh; overflow-y: auto; padding-right: 4px; }
.history-item {
  background: var(--bg-warm-subtle);
  border: 1px solid var(--warm-border);
  border-radius: 14px;
  padding: 12px 14px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.history-item:hover { background: var(--warm-hover-bg); border-color: var(--warm-border-strong); transform: translateY(-1px); }
.history-item.status-finished { opacity: 0.85; }
.history-item-header { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.history-item-name { font-size: 14px; font-weight: 700; color: var(--text-color); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.history-item-status { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: var(--bg-warm-faint); color: var(--warm-text); flex-shrink: 0; }
.history-item.status-ongoing .history-item-status { background: var(--success-bg); color: var(--success-text-dark); }
.history-item.status-finished .history-item-status { background: var(--gray-100); color: var(--gray-600); }
.history-item-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11px; color: var(--warm-text-secondary); margin-bottom: 6px; }
.history-item-intl { color: var(--primary-hover); font-weight: 600; }
.history-item-progress { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--warm-text-secondary); }
.history-item-progress .progress-bar-bg { flex: 1; }

/* ===== v2.9.70 B2：workbenchGenerateButton FAB 收编说明 =====
   原 index.html 内联整套（#bd5b2b 硬编码）已删，样式归位本文件 L114 .workbench-generate-fab
   （17 个 !important 反杀全部退役）；桌面 ≥969px 锚定见下方 B4 段 */
/* v2.9.70 B4：桌面（≥969px）FAB 锚定内容列右下（outfit 列 920 居中），不再贴视口右缘 */
@media (min-width: 1024px) { /* v2.9.78 C3：969px 临时断点就近收编（FAB 出现时机 969→1024，页头按钮兜底） */
  .workbench-generate-fab { right: calc(50vw - 438px); }
}

/* v2.9.83b：窄屏多行程时顶栏切换器挤压 eyebrow，「PACKING WORKBENCH」截断成「PACKING WO…」
   （A总 真机截图反馈；v2.9.73 的省略号保底只防压字不防截断）。
   实测：390px 屏顶栏内容区仅 298px，eyebrow(124)+操作区(193)=317 物理放不下单行，纯缩字在 320px 屏必挂。
   落地：窄屏顶栏换两行——标题行（英文+中文）独占整行完整显示，切换器+新建第二行右对齐；
   eyebrow 顺带缩至 10px/0.5px。320px 老屏与宽屏（>600px）行为不变（宽屏单行不受影响）。
   坑①：L302 是 #page-travel .travel-eyebrow（1,1,0）+!important，必须同 ID 更高特异性反制
   坑②：bar 的 getBoundingClientRect 含 padding（330 = 内容 298 + 32），算可用空间必须扣除 */
@media (max-width: 600px) {
  /* v2.9.88：!important 反制 L1055 的 flex-wrap:nowrap !important（同为 important 时特异性定胜负：
     (1,1,0) 胜 (0,1,0)。此前无 important 被压死，两行从未生效，title-wrap flex-basis:100%
     在 nowrap 下不收缩 → 整个顶栏横向溢出手机屏（A总 真机截图反馈） */
  #page-travel .travel-workbench-topbar { flex-wrap: wrap !important; }
  #page-travel .travel-workbench-topbar .travel-workbench-title-wrap { flex: 0 0 100%; }
  #page-travel .travel-workbench-topbar .travel-workbench-topbar-actions { flex-shrink: 0; margin-left: auto; }
  #page-travel .travel-workbench-topbar .travel-eyebrow { font-size: 10px !important; letter-spacing: 0.5px !important; }
}
