/* ============================================================
   小满 · 待产清单  —  应用态样式（叠加在 base.css 之上）
   ============================================================ */

html,body{height:100%}
body{overscroll-behavior-y:none}
#app{min-height:100vh}

/* 让分级延迟的子元素也参与入场动画 */
.anim .d1,.anim .d2,.anim .d3,.anim .d4,.anim .d5,.anim .d6,.anim .d7{
  animation:fadeUp .55s cubic-bezier(.22,1,.36,1) both;
}

/* ---------- 应用外壳 ---------- */
.app-shell{
  max-width:520px;margin:0 auto;min-height:100vh;position:relative;
  background:var(--cream);box-shadow:0 0 60px rgba(190,150,140,.10);
}
.app-shell::before{
  content:'';position:fixed;left:50%;transform:translateX(-50%);top:-160px;
  width:520px;height:420px;pointer-events:none;z-index:0;
  background:radial-gradient(52% 52% at 50% 40%,#FBDDD8 0%,transparent 72%);
  opacity:.55;
}
.page{position:relative;z-index:1;padding:0 20px 120px}
.page.flush{padding-left:0;padding-right:0}
.page.flush > .sec,.page.flush > .card,.page.flush > .hd{margin-left:20px;margin-right:20px}

/* ---------- 顶部栏 ---------- */
.appbar{
  position:sticky;top:0;z-index:30;padding:14px 20px 12px;
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(180deg,var(--cream) 68%,rgba(255,252,248,0));
  backdrop-filter:saturate(140%) blur(8px);
}
.appbar .ttl{font:600 17px/1.2 var(--sans);color:var(--ink);letter-spacing:.4px;flex:1}
.appbar .ttl small{display:block;font:400 11px/1.5 var(--sans);color:var(--ink-3);letter-spacing:.6px;margin-top:2px}
.ib{
  width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fff;
  display:grid;place-items:center;color:var(--ink-2);cursor:pointer;flex:none;
  transition:.18s;font-size:15px;
}
.ib:active{transform:scale(.92)}
.ib.solid{background:var(--rose);border-color:var(--rose);color:#fff;box-shadow:0 6px 16px rgba(228,160,153,.34)}

/* ---------- 底部 tabbar ---------- */
.tabs{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;z-index:40;
  display:grid;grid-template-columns:repeat(4,1fr);
  padding:9px 8px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);backdrop-filter:saturate(160%) blur(16px);
  border-top:1px solid var(--line);
}
.tb{
  display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;
  font:500 10px/1 var(--sans);color:var(--ink-3);letter-spacing:.5px;
  padding:4px 0;border-radius:12px;transition:.18s;background:none;border:0;
}
.tb i{font-style:normal;font-size:19px;line-height:1;filter:grayscale(1) opacity(.5);transition:.18s}
.tb.on{color:var(--rose-dp)}
.tb.on i{filter:none;transform:translateY(-1px)}
.tb:active{transform:scale(.94)}

/* ---------- 通用块 ---------- */
.hd{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:26px 0 12px}
.hd h3{font:600 15px/1.3 var(--sans);color:var(--ink);letter-spacing:.4px;margin:0}
.hd .more{font:500 12px/1 var(--sans);color:var(--ink-3);cursor:pointer;letter-spacing:.4px}
.hd .more:active{color:var(--rose-dp)}
.muted{color:var(--ink-3)}
.empty{text-align:center;padding:54px 24px;color:var(--ink-3)}
.empty .e{font-size:40px;display:block;margin-bottom:12px;opacity:.6}
.empty p{font:400 13px/1.8 var(--sans);margin:0 0 16px}

/* ---------- 首页 hero ---------- */
.hero{position:relative;padding:8px 0 4px;text-align:center}
.ring-wrap{position:relative;width:206px;height:206px;margin:6px auto 0}
.ring-wrap svg{transform:rotate(-90deg);display:block}
.ring-ctr{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:2px}
.ring-ctr .big{font:400 56px/1 var(--serif);color:var(--ink);letter-spacing:-1px}
.ring-ctr .lb{font:500 11px/1 var(--sans);color:var(--ink-3);letter-spacing:3px}
.ring-ctr .wk{font:500 12px/1 var(--sans);color:var(--rose-dp);letter-spacing:1px;margin-top:6px}
.stat3{display:grid;grid-template-columns:repeat(3,1fr);margin:20px 0 0;text-align:center}
.stat3 > div{padding:2px 0;position:relative}
.stat3 > div + div::before{content:'';position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--line)}
.stat3 b{display:block;font:400 25px/1.1 var(--serif);color:var(--ink)}
.stat3 span{display:block;font:400 11px/1 var(--sans);color:var(--ink-3);margin-top:6px;letter-spacing:.8px}

/* ---------- 进度条 ---------- */
.prog{height:7px;border-radius:99px;background:var(--sand);overflow:hidden}
.prog i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#EFB6AE,var(--rose));transition:width .5s cubic-bezier(.3,1,.4,1)}
.prog.sage i{background:linear-gradient(90deg,#BCD4C1,var(--sage))}
.prog.honey i{background:linear-gradient(90deg,#F0CE9A,var(--honey))}
.prog.lilac i{background:linear-gradient(90deg,#CFC6E6,var(--lilac))}
.prog.mist i{background:linear-gradient(90deg,#BFD4E0,var(--mist))}

/* ---------- 分类折叠 ---------- */
.catcard{background:#fff;border-radius:var(--r-md);box-shadow:var(--sh-sm);margin-bottom:12px;overflow:hidden}
.cathd{display:flex;align-items:center;gap:13px;padding:16px 16px;cursor:pointer;user-select:none}
.cathd .ce{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-size:20px;flex:none}
.cathd .cn{flex:1;min-width:0}
.cathd .cn b{display:block;font:600 14px/1.3 var(--sans);color:var(--ink);letter-spacing:.3px}
.cathd .cn small{display:block;font:400 11px/1.5 var(--sans);color:var(--ink-3);margin-top:3px}
.cathd .cv{font:400 15px/1 var(--serif);color:var(--ink-2);flex:none}
.cathd .cv em{font-style:normal;font-size:11px;color:var(--ink-3);font-family:var(--sans)}
.caret{width:9px;height:9px;border-right:1.6px solid var(--ink-3);border-bottom:1.6px solid var(--ink-3);transform:rotate(45deg);margin-left:2px;transition:.25s;flex:none;margin-top:-3px}
.catcard.open .caret{transform:rotate(-135deg);margin-top:3px}
.catbody{display:none;padding:0 16px 8px}
.catcard.open .catbody{display:block;animation:fadeUp .3s both}
.catmini{height:4px;border-radius:99px;background:var(--sand);overflow:hidden;margin:0 16px 14px}
.catmini i{display:block;height:100%;border-radius:99px;transition:width .5s}

/* ---------- 物品行 ---------- */
.it{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}
.it:last-child{border-bottom:0}
.tk{
  width:24px;height:24px;border-radius:9px;border:1.7px solid #E4D8CF;flex:none;
  display:grid;place-items:center;background:#fff;transition:.2s;cursor:pointer;position:relative;
}
.tk svg{opacity:0;transform:scale(.4);transition:.2s}
.it.done .tk{background:var(--sage);border-color:var(--sage)}
.it.done .tk svg{opacity:1;transform:scale(1)}
.it.skip .tk{background:var(--sand);border-color:var(--sand)}
.it.skip .tk::after{content:'';width:10px;height:1.7px;background:var(--ink-3);border-radius:2px}
.it .ib-e{width:34px;height:34px;border-radius:11px;background:var(--cream-2);display:grid;place-items:center;font-size:16px;flex:none}
.it .tx{flex:1;min-width:0}
.it .tx b{display:block;font:500 13.5px/1.35 var(--sans);color:var(--ink);letter-spacing:.2px}
.it .tx small{display:block;font:400 11px/1.4 var(--sans);color:var(--ink-3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.it.done .tx b{color:var(--ink-3);text-decoration:line-through;text-decoration-color:#DCCFC7}
.it.skip .tx b{color:var(--ink-3);opacity:.6}
.it.skip .ib-e,.it.skip .tx small{opacity:.5}
.it .qt{font:400 13px/1 var(--serif);color:var(--ink-2);flex:none;padding-left:4px}
.it .qt em{font-style:normal;font-size:10px;color:var(--ink-3);font-family:var(--sans);margin-left:1px}
.pin{font:500 9px/1 var(--sans);padding:3px 6px;border-radius:6px;letter-spacing:.5px;flex:none;
  background:var(--rose-xlt);color:var(--rose-dp)}
.pin.honey{background:var(--honey-lt);color:#B4823A}
.pin.plain{background:var(--sand);color:var(--ink-3)}

/* ---------- 芯片滚动 ---------- */
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 20px 4px;margin:0 -20px;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chips .chip{flex:none}

/* ---------- 搜索 ---------- */
.search{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:10px 13px;box-shadow:var(--sh-sm)}
.search input{flex:1;border:0;outline:0;background:none;font:400 13.5px/1 var(--sans);color:var(--ink)}
.search input::placeholder{color:var(--ink-3)}

/* ---------- 表单 ---------- */
.fld{margin-bottom:16px}
.fld > label{display:block;font:500 11px/1 var(--sans);color:var(--ink-2);letter-spacing:1.4px;margin-bottom:8px}
.inp,select.inp,textarea.inp{
  width:100%;box-sizing:border-box;border:1px solid var(--line);background:#fff;border-radius:14px;
  padding:13px 14px;font:400 14px/1.4 var(--sans);color:var(--ink);outline:0;transition:.18s;
  -webkit-appearance:none;appearance:none;
}
.inp:focus{border-color:var(--rose);box-shadow:0 0 0 3px var(--rose-xlt)}
select.inp{background-image:linear-gradient(45deg,transparent 50%,#B6A79F 50%),linear-gradient(135deg,#B6A79F 50%,transparent 50%);
  background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
textarea.inp{resize:none;min-height:78px;line-height:1.7}
.opts{display:grid;gap:9px}
.opts.c2{grid-template-columns:1fr 1fr}
.opts.c3{grid-template-columns:repeat(3,1fr)}
.opt{
  border:1.5px solid var(--line);background:#fff;border-radius:15px;padding:13px 12px;cursor:pointer;
  transition:.2s;text-align:left;position:relative;
}
.opt b{display:block;font:500 13px/1.3 var(--sans);color:var(--ink)}
.opt small{display:block;font:400 10.5px/1.5 var(--sans);color:var(--ink-3);margin-top:4px}
.opt .oe{font-size:19px;display:block;margin-bottom:7px}
.opt.on{border-color:var(--rose);background:var(--rose-xlt);box-shadow:0 6px 18px rgba(228,160,153,.18)}
.opt.on b{color:var(--rose-dp)}
.opt:active{transform:scale(.97)}
.stepper{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.stepper button{width:38px;height:38px;border:0;background:none;font-size:17px;color:var(--ink-2);cursor:pointer}
.stepper button:active{background:var(--cream-2)}
.stepper input{width:52px;border:0;outline:0;text-align:center;font:400 16px/1 var(--serif);color:var(--ink);background:none}

/* ---------- 底部弹层 ---------- */
.mask{position:fixed;inset:0;background:rgba(70,59,54,.34);backdrop-filter:blur(3px);z-index:60;opacity:0;transition:.24s}
.mask.on{opacity:1}
.sheet{
  position:fixed;left:50%;transform:translateX(-50%) translateY(100%);bottom:0;width:100%;max-width:520px;z-index:61;
  background:var(--cream);border-radius:28px 28px 0 0;box-shadow:0 -14px 40px rgba(160,120,110,.20);
  padding:10px 20px calc(24px + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto;
  transition:transform .3s cubic-bezier(.25,1,.4,1);
}
.sheet.on{transform:translateX(-50%) translateY(0)}
.grab{width:38px;height:4px;border-radius:99px;background:#E8DCD4;margin:0 auto 16px}
.sheet h3{font:600 16px/1.3 var(--sans);color:var(--ink);margin:0 0 4px;letter-spacing:.4px}
.sheet .sd{font:400 12px/1.7 var(--sans);color:var(--ink-3);margin:0 0 18px}
.sheet-acts{display:flex;gap:10px;margin-top:20px}
.sheet-acts .btn{flex:1}

/* ---------- toast ---------- */
.toast{
  position:fixed;left:50%;bottom:96px;transform:translate(-50%,14px);z-index:80;
  background:rgba(70,59,54,.93);color:#fff;border-radius:14px;padding:11px 16px;
  font:400 12.5px/1.4 var(--sans);letter-spacing:.3px;box-shadow:0 12px 28px rgba(70,59,54,.28);
  opacity:0;transition:.26s;display:flex;align-items:center;gap:14px;max-width:88vw;
}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast button{background:none;border:0;color:#F3C3BB;font:600 12.5px/1 var(--sans);cursor:pointer;flex:none}

/* ---------- 袋子 ---------- */
.bag{background:#fff;border-radius:var(--r-md);box-shadow:var(--sh-sm);padding:16px;margin-bottom:12px;cursor:pointer;display:flex;gap:14px;align-items:center}
.bag:active{transform:scale(.99)}
.bagfig{width:62px;height:66px;flex:none;position:relative}
.bagfig svg{display:block;width:100%;height:100%}
.bag .bi{flex:1;min-width:0}
.bag .bi .bt{display:flex;align-items:center;gap:7px}
.bag .bi b{font:600 14px/1.3 var(--sans);color:var(--ink);letter-spacing:.3px}
.bag .bi p{font:400 11px/1.6 var(--sans);color:var(--ink-3);margin:5px 0 9px}
.bag .bi .pv{display:flex;align-items:center;gap:9px}
.bag .bi .pv .prog{flex:1}
.bag .bi .pv span{font:400 12px/1 var(--serif);color:var(--ink-2);flex:none}

/* ---------- 详情 ---------- */
.dhero{position:relative;text-align:center;padding:12px 0 4px}
.dblob{width:132px;height:132px;margin:0 auto;border-radius:44% 56% 52% 48%/50% 45% 55% 50%;
  display:grid;place-items:center;font-size:56px;animation:floatY 6s ease-in-out infinite}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 0}
.kv > div{background:#fff;border-radius:var(--r-sm);padding:13px 10px;text-align:center;box-shadow:var(--sh-sm)}
.kv b{display:block;font:400 18px/1.1 var(--serif);color:var(--ink)}
.kv span{display:block;font:400 10px/1 var(--sans);color:var(--ink-3);margin-top:6px;letter-spacing:.6px}
.blk{background:#fff;border-radius:var(--r-md);padding:18px;box-shadow:var(--sh-sm);margin-bottom:12px}
.blk h4{display:flex;align-items:center;gap:8px;font:600 13px/1 var(--sans);color:var(--ink);margin:0 0 12px;letter-spacing:.5px}
.blk h4 i{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;font-style:normal;font-size:12px;flex:none}
.blk p{font:400 13px/1.85 var(--sans);color:var(--ink-2);margin:0}
.ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.ul li{display:flex;gap:10px;font:400 12.5px/1.75 var(--sans);color:var(--ink-2)}
.ul li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--sage);flex:none;margin-top:9px}
.ul.warn li::before{background:var(--honey)}
.voice{display:flex;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}
.voice:last-child{border-bottom:0;padding-bottom:0}
.voice .va{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;font-size:15px;flex:none}
.voice .vc b{font:500 12px/1 var(--sans);color:var(--ink)}
.voice .vc b em{font-style:normal;font-size:9px;color:var(--ink-3);margin-left:6px;padding:2px 5px;background:var(--sand);border-radius:5px}
.voice .vc p{font:400 12px/1.75 var(--sans);color:var(--ink-2);margin:6px 0 0}

/* ---------- 时间轴 ---------- */
.tl{position:relative;padding-left:26px}
.tl::before{content:'';position:absolute;left:6px;top:8px;bottom:8px;width:1.5px;background:var(--line)}
.tl li{list-style:none;position:relative;padding-bottom:20px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:'';position:absolute;left:-23px;top:5px;width:9px;height:9px;border-radius:50%;
  background:#fff;border:2px solid #E4D8CF}
.tl li.on::before{background:var(--rose);border-color:var(--rose);box-shadow:0 0 0 4px var(--rose-xlt)}
.tl li.pass::before{background:var(--sage);border-color:var(--sage)}
.tl b{display:block;font:500 13px/1.4 var(--sans);color:var(--ink)}
.tl b em{font-style:normal;font-family:var(--serif);font-size:12px;color:var(--rose-dp);margin-right:8px}
.tl p{font:400 11.5px/1.7 var(--sans);color:var(--ink-3);margin:5px 0 0}
.tl li.pass b{color:var(--ink-3)}

/* ---------- 模板馆 ---------- */
.tpl-feat{border-radius:var(--r-lg);padding:22px;color:#fff;position:relative;overflow:hidden;box-shadow:var(--sh-lg)}
.tpl-feat::after{content:'';position:absolute;right:-40px;top:-40px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.13)}
.tpl-feat .fe{font-size:30px;display:block;margin-bottom:12px;position:relative}
.tpl-feat h3{font:400 22px/1.3 var(--serif);margin:0 0 8px;position:relative;letter-spacing:.5px}
.tpl-feat p{font:400 12px/1.8 var(--sans);opacity:.9;margin:0 0 16px;position:relative}
.tpl-feat .fm{display:flex;gap:16px;font:400 11px/1 var(--sans);opacity:.85;position:relative;margin-bottom:16px}
.tpl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tpl{border-radius:var(--r-md);padding:16px;cursor:pointer;transition:.2s;position:relative;overflow:hidden;min-height:126px;display:flex;flex-direction:column}
.tpl:active{transform:scale(.97)}
.tpl .te{font-size:24px;margin-bottom:9px}
.tpl b{font:600 13px/1.3 var(--sans);color:var(--ink);letter-spacing:.3px}
.tpl p{font:400 10.5px/1.6 var(--sans);color:var(--ink-2);margin:6px 0 0;opacity:.85;flex:1}
.tpl small{font:400 10px/1 var(--sans);color:var(--ink-2);opacity:.7;margin-top:8px}
.tpl.on{outline:2px solid var(--rose-dp);outline-offset:-2px}
.tpl.on::after{content:'✓';position:absolute;right:12px;top:12px;width:20px;height:20px;border-radius:50%;
  background:var(--rose-dp);color:#fff;font-size:11px;display:grid;place-items:center}

/* ---------- 成员 ---------- */
.mem{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.mem:last-child{border-bottom:0}
.mem .ma{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;font-size:18px;flex:none}
.mem .mi{flex:1;min-width:0}
.mem .mi b{display:block;font:500 13px/1.3 var(--sans);color:var(--ink)}
.mem .mi small{display:block;font:400 11px/1.4 var(--sans);color:var(--ink-3);margin-top:3px}
.feed{display:flex;gap:11px;padding:11px 0}
.feed .fa{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;font-size:13px;flex:none}
.feed .fc{flex:1;font:400 12px/1.7 var(--sans);color:var(--ink-2)}
.feed .fc b{color:var(--ink);font-weight:500}
.feed .ft{font:400 10px/1 var(--sans);color:var(--ink-3);flex:none;padding-top:8px}

/* ---------- 证件 ---------- */
.doc-thumb{width:44px;height:30px;border-radius:6px;flex:none;position:relative;overflow:hidden;
  background:linear-gradient(140deg,#F1ECFA,#DED6F0);box-shadow:inset 0 0 0 1px rgba(180,169,214,.35)}
.doc-thumb::before{content:'';position:absolute;left:5px;top:6px;width:11px;height:11px;border-radius:50%;background:rgba(180,169,214,.45)}
.doc-thumb::after{content:'';position:absolute;left:20px;top:8px;right:5px;height:2px;border-radius:2px;background:rgba(180,169,214,.5);
  box-shadow:0 5px 0 rgba(180,169,214,.4),0 10px 0 rgba(180,169,214,.28)}
.dep{border-radius:var(--r-md);padding:20px;color:#fff;background:linear-gradient(140deg,#B4A9D6,#9287BC);box-shadow:0 12px 30px rgba(146,135,188,.32);position:relative;overflow:hidden}
.dep::after{content:'';position:absolute;right:-30px;bottom:-40px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.12)}
.dep .dl{font:400 10px/1 var(--sans);opacity:.8;letter-spacing:2px}
.dep .dv{font:400 34px/1.1 var(--serif);margin:10px 0 4px}
.dep .dv em{font-style:normal;font-size:15px;opacity:.75;margin-right:3px}
.dep p{font:400 11px/1.7 var(--sans);opacity:.85;margin:8px 0 0;position:relative}

/* ---------- 步骤流程 ---------- */
.flow{counter-reset:f;display:grid;gap:0}
.flow li{list-style:none;display:flex;gap:13px;position:relative;padding-bottom:18px}
.flow li:last-child{padding-bottom:0}
.flow li::after{content:'';position:absolute;left:13px;top:30px;bottom:2px;width:1.5px;background:var(--line)}
.flow li:last-child::after{display:none}
.flow .fn{width:27px;height:27px;border-radius:50%;background:var(--lilac-lt);color:#7E70A8;
  display:grid;place-items:center;font:500 12px/1 var(--sans);flex:none;position:relative;z-index:1}
.flow b{display:block;font:500 13px/1.4 var(--sans);color:var(--ink)}
.flow p{font:400 11.5px/1.7 var(--sans);color:var(--ink-3);margin:4px 0 0}

/* ---------- 海报 ---------- */
.poster-box{text-align:center}
.poster-box canvas{width:100%;max-width:300px;border-radius:18px;box-shadow:var(--sh-lg);display:block;margin:0 auto 18px}

/* ---------- 徽章 ---------- */
.badges{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.badge{text-align:center}
.badge .bd{width:100%;aspect-ratio:1;border-radius:20px;display:grid;place-items:center;font-size:23px;
  background:var(--cream-2);border:1px dashed #E4D8CF;filter:grayscale(1);opacity:.42}
.badge.got .bd{filter:none;opacity:1;border:0;box-shadow:var(--sh-sm)}
.badge span{display:block;font:400 9.5px/1.3 var(--sans);color:var(--ink-3);margin-top:7px}
.badge.got span{color:var(--ink-2)}

/* ---------- 杂项 ---------- */
.lstrip{display:flex;align-items:center;gap:10px;padding:13px 15px;background:#fff;border-radius:var(--r-sm);
  box-shadow:var(--sh-sm);cursor:pointer;margin-bottom:9px}
.lstrip .le{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;font-size:15px;flex:none}
.lstrip .lt{flex:1;font:500 13px/1.4 var(--sans);color:var(--ink)}
.lstrip .lt small{display:block;font:400 10.5px/1.4 var(--sans);color:var(--ink-3);margin-top:3px}
.lstrip .lr{font:400 12px/1 var(--sans);color:var(--ink-3)}
.arr{width:7px;height:7px;border-top:1.5px solid var(--ink-3);border-right:1.5px solid var(--ink-3);transform:rotate(45deg);flex:none}
.bg-rose{background:var(--rose-xlt)}.bg-sage{background:var(--sage-lt)}.bg-honey{background:var(--honey-lt)}
.bg-lilac{background:var(--lilac-lt)}.bg-mist{background:var(--mist-lt)}.bg-plain{background:var(--cream-2)}
.c-rose{color:var(--rose-dp)}.c-sage{color:var(--sage-dp)}.c-honey{color:#B4823A}
.c-lilac{color:#7E70A8}.c-mist{color:#5F87A3}
.fixed-cta{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom));
  width:100%;max-width:520px;padding:12px 20px;z-index:35;
  background:linear-gradient(180deg,rgba(255,252,248,0),var(--cream) 42%)}
.fixed-cta.nobar{bottom:0;padding-bottom:calc(20px + env(safe-area-inset-bottom))}
.fab{position:fixed;right:calc(50% - 260px + 20px);bottom:calc(86px + env(safe-area-inset-bottom));z-index:36;
  width:54px;height:54px;border-radius:19px;border:0;background:var(--rose);color:#fff;font-size:24px;
  box-shadow:0 12px 28px rgba(228,160,153,.42);cursor:pointer;display:grid;place-items:center;transition:.2s}
.fab:active{transform:scale(.9)}
@media(max-width:520px){.fab{right:20px}}
.print-only{display:none}
@media print{
  .appbar,.tabs,.fab,.fixed-cta,.app-shell::before{display:none!important}
  body,.app-shell{background:#fff;box-shadow:none;max-width:none}
  .page{padding:0}
  .print-only{display:block}
  .catcard,.card{box-shadow:none;border:1px solid #eee;break-inside:avoid}
  .catbody{display:block!important}
}
