/* LinZ Hub · 设计系统 v3（Liquid Glass）
   状态色沿用 README：优先上架暖橙 #C2410C、已上架深蓝 #1D4ED8、待上架深青 #0F766E、已售深藏青 #1E3A5F、自用灰；关键数字 30px+。
   用户 2026-10-25 要求采用 Apple 最新毛玻璃设计语言：玻璃需要背后有柔和色彩才成立，所以背景放了极淡的环境色，
   其余元素保持纯色、无装饰。手机上全屏；电脑上居中显示手机外壳，所有浮层限定在手机内。 */

:root{
  --bg:#EEF1F6; --ink:#0B1220; --ink2:#465263; --ink3:#8E99AB; --line:rgba(15,23,42,.07); --fill:rgba(118,128,150,.12); --press:rgba(15,23,42,.05);
  --glass:rgba(255,255,255,.62); --glass-strong:rgba(255,255,255,.8); --glass-edge:rgba(255,255,255,.75); --glass-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 10px 30px rgba(30,41,59,.08);
  --blur:saturate(180%) blur(22px);
  --primary:#1D4ED8; --primary-tint:rgba(29,78,216,.1); --on-primary:#fff;
  --priority:#C2410C; --priority-tint:rgba(194,65,12,.1);
  --waiting:#0F766E; --waiting-tint:rgba(15,118,110,.1);
  --listed:#1D4ED8; --listed-tint:rgba(29,78,216,.1);
  --sold:#1E3A5F; --sold-tint:rgba(30,58,95,.1);
  --self:#78716C; --self-tint:rgba(120,113,108,.12);
  --ordered:#6D28D9; --ordered-tint:rgba(109,40,217,.1);
  --other:#64748B; --other-tint:rgba(100,116,139,.12);
  --pos:#0F766E; --neg:#B91C1C; --danger:#C62828; --danger-tint:rgba(198,40,40,.1);
  --hero:#1E3A5F;
  --amb1:rgba(29,78,216,.16); --amb2:rgba(15,118,110,.13); --amb3:rgba(194,65,12,.10);
  --desk:#D6DAE2;
  --r:20px;
  --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
  --ease:cubic-bezier(.32,.72,0,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#06080D; --ink:#F2F5FA; --ink2:#AEB8C7; --ink3:#6B7687; --line:rgba(255,255,255,.07); --fill:rgba(255,255,255,.08); --press:rgba(255,255,255,.06);
    --glass:rgba(28,33,44,.58); --glass-strong:rgba(34,40,53,.82); --glass-edge:rgba(255,255,255,.09); --glass-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 10px 30px rgba(0,0,0,.4);
    --primary:#5B8DF8; --primary-tint:rgba(91,141,248,.16);
    --priority:#FB8A4C; --priority-tint:rgba(251,138,76,.15);
    --waiting:#2DC7B2; --waiting-tint:rgba(45,199,178,.14);
    --listed:#6B9BFA; --listed-tint:rgba(107,155,250,.15);
    --sold:#A5BEE0; --sold-tint:rgba(165,190,224,.13);
    --self:#B3ADA8; --self-tint:rgba(179,173,168,.12);
    --ordered:#A78BFA; --ordered-tint:rgba(167,139,250,.15);
    --other:#94A3B8; --other-tint:rgba(148,163,184,.12);
    --pos:#34D1B6; --neg:#F87171; --danger:#F87171; --danger-tint:rgba(248,113,113,.14);
    --hero:#1A2C4E;
    --amb1:rgba(91,141,248,.20); --amb2:rgba(45,199,178,.12); --amb3:rgba(251,138,76,.08);
    --desk:#020306;
    color-scheme:dark;
  }
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;margin:0;overflow:hidden;background:var(--bg)}
body{color:var(--ink);font:15px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;letter-spacing:-.005em}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;touch-action:manipulation}
input,select,textarea{font:inherit;color:var(--ink)}
h1,h2,h3,h4,p{margin:0}
.i{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- 玻璃材质 ---------- */
.glass{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}

/* ---------- 手机外壳与环境色 ---------- */
.device{position:fixed;inset:0;overflow:hidden;background:var(--bg);transform:translateZ(0)}
.ambient{position:absolute;inset:-20%;pointer-events:none;background:radial-gradient(40% 30% at 15% 8%,var(--amb1),transparent 70%),radial-gradient(35% 28% at 95% 30%,var(--amb2),transparent 70%),radial-gradient(40% 30% at 30% 95%,var(--amb3),transparent 70%)}
.device-caption{display:none}
@media (min-width:720px) and (min-height:640px){
  html,body{background:var(--desk)}
  .device{position:absolute;left:50%;top:50%;width:390px;height:min(844px,calc(100vh - 72px));transform:translate(-50%,calc(-50% - 12px));border-radius:50px;box-shadow:0 0 0 11px #0A0D13,0 0 0 12px #2B313C,0 40px 90px rgba(0,0,0,.3);--safe-t:24px;--safe-b:14px}
  .device-caption{display:block;position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:12px;color:#6B7280}
}
.scroller,.page,.sheet-panel,#authScreen,#onboard{scrollbar-width:none}
.scroller::-webkit-scrollbar,.page::-webkit-scrollbar,.sheet-panel::-webkit-scrollbar,#authScreen::-webkit-scrollbar,#onboard::-webkit-scrollbar{display:none}

/* ---------- 登录 / 新用户 ---------- */
#authScreen,#onboard{position:absolute;inset:0;overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:calc(var(--safe-t) + 24px) 24px calc(var(--safe-b) + 24px)}
#onboard{display:none}
body.onboarding #onboard{display:flex}
body.onboarding #authScreen,body.authed #authScreen{display:none}
.auth-card{width:100%;max-width:360px}
.auth-logo{width:64px;height:64px;border-radius:18px;background:var(--primary);color:#fff;font-weight:800;font-size:23px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;box-shadow:0 10px 24px rgba(29,78,216,.3)}
.auth-card h1{font-size:32px;font-weight:800;letter-spacing:-.02em}
.auth-sub{color:var(--ink2);margin:6px 0 26px;font-size:16px}
.auth-invite{color:var(--primary);font-weight:600;font-size:14px;margin:-12px 0 16px}
.auth-invite:empty{display:none}
.auth-card .field input{text-align:left}
.auth-switch{display:block;width:100%;margin-top:16px;text-align:center;font-size:14px;color:var(--ink2)}
.auth-switch b{color:var(--primary)}
.or{display:flex;align-items:center;gap:10px;margin:22px 0 14px;color:var(--ink3);font-size:13px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.ob-foot{text-align:center;font-size:13px;color:var(--ink3);margin-top:22px}
.ob-foot button{color:var(--primary);font-weight:600}
.authmsg{font-size:13px;line-height:1.6;margin:10px 4px 0;color:var(--ink2)}
.authmsg:empty{display:none}
.authmsg.err{color:var(--danger)}
#appRoot{display:none;position:absolute;inset:0}
body.authed #appRoot{display:block}

/* ---------- 滚动区 ---------- */
.scroller{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.screen{display:none;padding:calc(var(--safe-t) + 10px) 16px calc(var(--safe-b) + 112px)}
.screen.active{display:block;animation:fadein .22s ease}
@keyframes fadein{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:8px 4px 16px}
.topbar h1{font-size:34px;line-height:1.1;font-weight:800;letter-spacing:-.025em}
.topbar-date{font-size:13px;color:var(--ink3);font-weight:600;margin-bottom:4px}
.avatar{position:relative;width:40px;height:40px;border-radius:50%;color:var(--primary);font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;flex:none}
.avatar.sm{width:32px;height:32px;font-size:13px;background:var(--primary-tint)}
.avatar.big{width:56px;height:56px;font-size:22px;background:var(--primary-tint)}
.syncdot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:var(--ink3);border:2px solid var(--bg)}
.syncdot.ok{background:var(--waiting)} .syncdot.busy{background:var(--priority)}

/* ---------- 总览 ---------- */
.hero{position:relative;display:block;width:100%;text-align:left;background:var(--hero);color:#fff;border-radius:26px;padding:22px 22px 18px;overflow:hidden;box-shadow:0 18px 40px rgba(30,58,95,.28);transition:transform .2s var(--ease)}
.hero::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px 0 rgba(255,255,255,.18);pointer-events:none}
.hero:active{transform:scale(.985)}
.hero-static:active{transform:none}
.hero-label{font-size:14px;opacity:.72;font-weight:600}
.hero-amt{font-size:44px;line-height:1.08;font-weight:800;letter-spacing:-.03em;margin-top:6px}
.hero-sub{font-size:14px;opacity:.78;margin-top:2px}
.hero-split{display:flex;gap:22px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);overflow-x:auto;scrollbar-width:none}
.hero-split div{flex:none}
.hero-split b{display:block;font-size:17px;font-weight:700}
.hero-split span{display:block;font-size:12px;opacity:.65;margin-top:1px}
.hero-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14)}
.hero-grid span{display:block;font-size:12px;opacity:.65}
.hero-grid b{display:block;font-size:16px;font-weight:700;margin-top:2px}
.quick{display:grid;grid-template-columns:repeat(4,1fr);border-radius:var(--r);margin-top:14px;padding:6px}
.q{display:flex;flex-direction:column;align-items:center;padding:12px 2px;border-radius:14px;transition:background .12s}
.q:active{background:var(--press)}
.q b{font-size:24px;font-weight:800;line-height:1.15;color:var(--c);letter-spacing:-.02em}
.q span{font-size:12px;color:var(--ink2);margin-top:3px;font-weight:500}
.q-priority{--c:var(--priority)} .q-waiting{--c:var(--waiting)} .q-listed{--c:var(--listed)} .q-other{--c:var(--ink)}

/* ---------- 区块 ---------- */
.sect{margin-top:26px}
.sect-h{display:flex;align-items:center;justify-content:space-between;padding:0 4px 10px}
.sect-h h2{font-size:20px;font-weight:700;letter-spacing:-.02em}
.sect-sub{font-size:13px;color:var(--ink3)}
.link{display:inline-flex;align-items:center;gap:1px;color:var(--ink3);font-size:15px;font-weight:600}
.link .i{width:17px;height:17px}
.card{border-radius:var(--r);padding:16px}
.cardtext{margin:0 0 12px;font-size:14px;color:var(--ink2);line-height:1.6}
.hint{font-size:12.5px;color:var(--ink3);line-height:1.6;margin:10px 4px 0}
.hint:empty{display:none}

/* ---------- 列表 ---------- */
.list{border-radius:var(--r);overflow:hidden}
.row,.cell{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;text-align:left;min-height:68px;transition:background .12s;color:inherit;text-decoration:none}
.cell{min-height:52px}
.row:active,.cell:active{background:var(--press)}
.row+.row::before,.cell+.cell::before{content:"";position:absolute;top:0;left:74px;right:0;height:1px;background:var(--line)}
.cell+.cell::before{left:16px}
.thumb-s{position:relative;width:48px;height:48px;border-radius:13px;flex:none;background:var(--fill);color:var(--ink3);display:flex;align-items:center;justify-content:center;overflow:hidden}
.thumb-s img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s}
.thumb-s.has-img img{opacity:1}
.thumb-s .i{width:22px;height:22px;opacity:.7}
.row-main{flex:1;min-width:0}
.row-title{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:600;min-width:0}
.row-title .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-sub{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink3);margin-top:3px;white-space:nowrap;overflow:hidden}
.row-sub .s{overflow:hidden;text-overflow:ellipsis}
.row-end{text-align:right;flex:none}
.row-amt{display:block;font-size:16px;font-weight:700;letter-spacing:-.01em}
.row-amt.muted{color:var(--ink3);font-weight:500;font-size:14px}
.st{flex:none;display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:6px;font-size:11.5px;font-weight:700;background:var(--t);color:var(--c)}
.s-priority{--c:var(--priority);--t:var(--priority-tint)} .s-waiting{--c:var(--waiting);--t:var(--waiting-tint)} .s-listed{--c:var(--listed);--t:var(--listed-tint)} .s-sold{--c:var(--sold);--t:var(--sold-tint)} .s-self{--c:var(--self);--t:var(--self-tint)} .s-other{--c:var(--other);--t:var(--other-tint)}
/* 平台标 */
.pf{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:5px;font-size:10px;font-weight:800;letter-spacing:-.02em;background:var(--pbg);color:var(--pfg);line-height:1}
.pf.lg{min-width:24px;height:24px;border-radius:7px;font-size:12px;padding:0 6px}
.pos{color:var(--pos)} .neg{color:var(--neg)}
.cell-i{color:var(--ink2)}
.cell-t{flex:1;font-size:15.5px;min-width:0}
.cell-t small{display:block;font-size:12.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell-card{border-radius:var(--r);margin-top:12px}
.chev{width:18px;height:18px;color:var(--ink3)}
.cell .tick{display:none;color:var(--primary)}
.cell.on .tick{display:block}
.cell.on .chev{display:none}
.monthhead{display:flex;justify-content:space-between;align-items:baseline;padding:20px 6px 8px;font-size:13px;color:var(--ink3);font-weight:600}
.monthhead b{font-size:16px;color:var(--ink);font-weight:700}
.empty{padding:34px 16px;text-align:center;color:var(--ink3);font-size:14px}
.loadmore{display:block;width:100%;margin-top:12px;padding:14px;border-radius:16px;color:var(--primary);font-weight:600;font-size:15px}
.countline{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:0 2px 10px}
.countline:empty{display:none}
.countline .pill{display:inline-flex;align-items:center;gap:3px;background:var(--primary-tint);color:var(--primary);border-radius:999px;padding:3px 9px 3px 11px;font-size:13px;font-weight:600}
.countline .pill .i{width:13px;height:13px}
.sk{height:68px;animation:pulse 1.2s ease-in-out infinite}
.sk+.sk{border-top:1px solid var(--line)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ---------- 搜索 / 分段 / 标签 ---------- */
.stickybar{position:sticky;top:0;z-index:20;margin:calc(6px - var(--safe-t)) -16px 0;padding:calc(var(--safe-t) + 6px) 16px 12px}
.stickybar::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--bg) 55%,transparent);opacity:.92;z-index:-1;pointer-events:none}
.searchrow{display:flex;gap:10px;margin-bottom:10px}
.search{flex:1;display:flex;align-items:center;gap:8px;border-radius:999px;padding:0 14px;height:44px;color:var(--ink3)}
.search .i{width:19px;height:19px}
.search input{flex:1;border:0;outline:0;background:transparent;font-size:16px;height:100%;min-width:0}
.search input::-webkit-search-cancel-button{-webkit-appearance:none}
.iconbtn{position:relative;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink);flex:none}
.badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--primary);color:#fff;font-style:normal;font-size:10.5px;font-weight:700;line-height:18px;text-align:center;display:none}
.badge.show{display:block}
.segmented{display:flex;border-radius:999px;padding:4px;gap:2px}
.segmented:not(.glass){background:var(--fill)}
.segmented button{flex:1;height:34px;border-radius:999px;font-size:14px;font-weight:600;color:var(--ink2);transition:background .2s,color .2s,box-shadow .2s;white-space:nowrap}
.segmented button.on{background:var(--glass-strong);color:var(--ink);box-shadow:0 2px 8px rgba(15,23,42,.1)}
.segmented button span{color:var(--ink3);font-weight:500;font-size:12.5px}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:0 16px 14px;margin:0 -16px}
.chips::-webkit-scrollbar{display:none}
.chips.wrap{flex-wrap:wrap;overflow:visible;padding:0;margin:0}
.chip{flex:none;height:34px;padding:0 15px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-edge);color:var(--ink2);font-size:14px;font-weight:600}
.chip.on{background:var(--primary);border-color:var(--primary);color:#fff}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;background:var(--fill);font-size:14px;font-weight:600}
.tag button{color:var(--ink3);font-size:17px;line-height:1}
.peopleedit{display:flex;gap:8px;margin-top:12px}
.peopleedit input{flex:1;min-width:0;height:40px;border-radius:12px;border:0;outline:0;background:var(--fill);padding:0 12px;font-size:16px}
.peopleedit .btn{height:40px}

/* ---------- 浮动底栏 ---------- */
.tabbar{position:absolute;left:16px;right:84px;bottom:calc(var(--safe-b) + 12px);z-index:40;display:grid;grid-template-columns:repeat(4,1fr);height:62px;padding:5px;border-radius:999px;background:var(--glass-strong)}
.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:999px;color:var(--ink2);font-size:10.5px;font-weight:600;transition:background .2s,color .2s}
.tabbar button .i{width:24px;height:24px}
.tabbar button.active{color:var(--primary);background:var(--primary-tint)}
.tabbar button.active .i{stroke-width:2.1}
.fab{position:absolute;right:16px;bottom:calc(var(--safe-b) + 12px);z-index:41;width:62px;height:62px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 10px 26px rgba(29,78,216,.38);transition:transform .15s}
.fab:active{transform:scale(.92)}
.fab .i{width:28px;height:28px;stroke-width:2.4}

/* ---------- 全屏页 ---------- */
.page{position:absolute;inset:0;z-index:60;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;transform:translateX(100%);visibility:hidden;transition:transform .4s var(--ease),visibility 0s linear .4s}
.page::before{content:"";position:fixed;inset:-20%;pointer-events:none;background:radial-gradient(40% 30% at 85% 5%,var(--amb1),transparent 70%),radial-gradient(40% 30% at 10% 60%,var(--amb2),transparent 70%);z-index:-1}
.page.up{transform:translateY(100%)}
.page.open{transform:none;visibility:visible;transition:transform .4s var(--ease),visibility 0s}
.page.below{transform:translateX(-22%)}
.pagenav{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:calc(var(--safe-t) + 6px) 12px 8px;min-height:56px}
.pagenav::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--bg) 50%,transparent);opacity:.9;z-index:-1;pointer-events:none}
.pagenav-t{font-size:16px;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56vw}
.navbtn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 14px;color:var(--ink);font-size:15.5px;font-weight:600;justify-self:start}
.navbtn.round{width:40px;padding:0;border-radius:50%}
.navbtn.pill{border-radius:999px}
.navbtn.primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(29,78,216,.3)}
.navbtn .i{width:22px;height:22px}
.navbtn-r{justify-self:end}
.navbtn.strong{font-weight:700;color:var(--primary)}
.navbtn:disabled{opacity:.45}
.page-body{padding:6px 16px calc(var(--safe-b) + 40px)}

/* ---------- 底部面板 ---------- */
.sheet{position:absolute;inset:0;z-index:70;background:rgba(0,0,0,0);visibility:hidden;transition:background .3s,visibility 0s linear .3s}
.sheet.open{background:rgba(5,10,20,.32);visibility:visible;transition:background .3s,visibility 0s}
.sheet-panel{position:absolute;left:8px;right:8px;bottom:8px;max-height:86%;overflow-y:auto;border-radius:34px;padding:6px 16px calc(var(--safe-b) + 18px);transform:translateY(110%);transition:transform .4s var(--ease);background:var(--glass-strong)!important}
.sheet.open .sheet-panel{transform:none}
.grabber{width:38px;height:5px;border-radius:3px;background:var(--ink3);opacity:.35;margin:4px auto 10px}
.sheet-h{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 -8px 2px}
.sheet-h b{font-size:16px}
.sheet-title{font-size:21px;font-weight:800;text-align:center;letter-spacing:-.02em}
.sheet-sub{font-size:13px;color:var(--ink3);text-align:center;margin:4px 0 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notes h4{font-size:15px;margin:16px 2px 6px}
.notes p{font-size:14px;line-height:1.7;color:var(--ink2);margin:0 2px}
.bigprice{display:flex;align-items:center;justify-content:center;gap:2px;background:var(--fill);border-radius:22px;padding:14px;cursor:text}
.bigprice span{font-size:32px;font-weight:800;color:var(--ink3)}
.bigprice input{width:3ch;min-width:2ch;max-width:80%;border:0;outline:0;background:transparent;font-size:46px;font-weight:800;text-align:left;letter-spacing:-.03em}
.pickgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.pickgrid button{height:54px;border-radius:18px;background:var(--fill);font-size:16px;font-weight:700;color:var(--ink2);border:2px solid transparent;transition:all .15s}
.pickgrid button.on{border-color:var(--primary);color:var(--primary);background:var(--primary-tint)}

/* ---------- 表单 ---------- */
.group-h{font-size:13px;color:var(--ink3);font-weight:600;margin:22px 6px 8px}
.form{border-radius:var(--r);overflow:hidden}
.form.flat{background:var(--fill);border-radius:14px}
.field{position:relative;display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px}
.field+.field::before{content:"";position:absolute;top:0;left:16px;right:0;height:1px;background:var(--line)}
.field-l{flex:none;font-size:15px;color:var(--ink)}
.field-i{width:19px;height:19px;color:var(--ink3)}
.field input,.field select{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:16px;height:50px;color:var(--ink)}
.field .field-l+input,.field .field-l+select{text-align:right}
.field select{-webkit-appearance:none;appearance:none;color:var(--ink2);direction:rtl}
.field input::placeholder,.field textarea::placeholder{color:var(--ink3)}
.field input:disabled{color:var(--ink2);-webkit-text-fill-color:var(--ink2)}
.field.block{display:block;padding:12px 16px}
.field.block .field-l{display:block;font-size:13px;color:var(--ink3);margin-bottom:2px}
.field.block input{text-align:left!important;height:34px;width:100%}
.field textarea{width:100%;border:0;outline:0;background:transparent;font-size:16px;line-height:1.55;resize:none;min-height:84px;padding:0}
.form-row2{display:grid;grid-template-columns:1fr 1fr}
.form-row2 .field{display:block;padding:10px 16px 8px}
.form-row2 .field+.field::before{top:12px;bottom:12px;left:0;right:auto;width:1px;height:auto}
.form-row2 .field-l{display:block;font-size:12.5px;color:var(--ink3)}
.form-row2 .field input{height:36px;width:100%;text-align:left!important;font-size:22px;font-weight:700;letter-spacing:-.02em}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:48px;padding:0 20px;border-radius:999px;font-size:16px;font-weight:600;transition:transform .12s,opacity .12s;cursor:pointer;user-select:none;text-decoration:none}
.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.5}
.btn .i{width:19px;height:19px}
.btn-lg{height:54px;font-size:17px}
.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 8px 20px rgba(29,78,216,.28)}
.btn-soft{background:var(--primary-tint);color:var(--primary)}
.btn-plain{background:var(--glass);border:1px solid var(--glass-edge);color:var(--ink);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.btn-danger{background:var(--danger-tint);color:var(--danger)}
.btn-block{display:flex;width:100%;margin-top:14px}
.btnrow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.btnrow .btn{width:100%;padding:0 8px;font-size:15px}

/* ---------- 拍照与照片 ---------- */
.shoot{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.shoot-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:132px;border-radius:24px;cursor:pointer;color:var(--primary);transition:transform .15s}
.shoot-btn:active{transform:scale(.97)}
.shoot-btn .i{width:34px;height:34px;stroke-width:1.6}
.shoot-btn b{font-size:15px;color:var(--ink)}
.photostrip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-top:12px}
.photostrip:empty{display:none}
.photostrip .thumb{width:84px;flex:none}
.photogrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.photoadd,.thumb{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden}
.photoadd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--fill);color:var(--primary);font-size:12px;font-weight:600;cursor:pointer}
.photoadd .i{width:26px;height:26px}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;background:var(--fill)}
.thumb-del{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;display:flex;align-items:center;justify-content:center}
.thumb-del .i{width:13px;height:13px;stroke-width:2.4}
.thumb.pending{animation:pulse 1s ease-in-out infinite;background:var(--fill)}
.album-h{display:flex;justify-content:space-between;align-items:center;margin:16px 2px 8px;font-size:14px;font-weight:700}
.album-h:first-child{margin-top:0}
.album-h span{font-size:12px;color:var(--ink3);font-weight:500}
.shotcta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.shotcta .btn{width:100%;height:52px;font-size:15px;padding:0 8px}
.fetchnote{font-size:12.5px;color:var(--ink3);margin:10px 2px 0;line-height:1.55}
.fetchnote:empty{display:none}

/* ---------- 详情 ---------- */
.cover{position:relative;height:250px;margin:0 -16px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cover img{max-width:100%;max-height:100%;object-fit:contain}
.cover .ph{color:var(--ink3);display:flex;flex-direction:column;align-items:center;gap:8px;font-size:13px}
.cover .ph .i{width:46px;height:46px;stroke-width:1.3}
.dtitle{display:flex;align-items:flex-start;gap:8px;margin-top:14px}
.dtitle h2{font-size:22px;line-height:1.3;font-weight:700;letter-spacing:-.02em;word-break:break-word}
.dtitle .pf{margin-top:4px}
.dmeta{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--ink3)}
.dprice{display:flex;align-items:baseline;gap:10px;margin-top:14px}
.dprice b{font-size:36px;font-weight:800;letter-spacing:-.03em}
.dprice span{font-size:14px;font-weight:600}
.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0 4px}
.act{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink2)}
.act .c{width:58px;height:58px;border-radius:20px;display:flex;align-items:center;justify-content:center;color:var(--primary);transition:transform .12s}
.act:active .c{transform:scale(.92)}
.act.main .c{background:var(--primary);color:#fff;border-color:transparent;box-shadow:0 10px 22px rgba(29,78,216,.32)}
.act .i{width:24px;height:24px}
.banner{display:flex;gap:10px;align-items:flex-start;border-radius:18px;padding:12px 14px;font-size:14px;line-height:1.5;margin-top:12px;background:var(--priority-tint);color:var(--priority);font-weight:600}
.banner .i{width:19px;height:19px;margin-top:1px}
.kv{border-radius:var(--r);overflow:hidden;margin:0}
.kv-row{position:relative;display:flex;justify-content:space-between;gap:14px;padding:13px 16px;font-size:15px}
.kv-row+.kv-row::before{content:"";position:absolute;top:0;left:16px;right:0;height:1px;background:var(--line)}
.kv-row dt{color:var(--ink2);flex:none}
.kv-row dd{margin:0;text-align:right;word-break:break-all;color:var(--ink)}
.kv-row dd.muted{color:var(--ink3)}
details.fold{margin-top:14px}
details.fold summary{list-style:none;display:flex;align-items:center;justify-content:space-between;font-size:15px;color:var(--ink2);font-weight:600;padding:14px 16px;border-radius:var(--r);cursor:pointer;background:var(--glass);border:1px solid var(--glass-edge)}
details.fold summary::-webkit-details-marker{display:none}
details.fold summary .i{width:16px;height:16px;transition:transform .2s;color:var(--ink3)}
details.fold[open] summary{margin-bottom:10px}
details.fold[open] summary .i{transform:rotate(90deg)}
.foot{font-size:12px;color:var(--ink3);text-align:center;margin:22px 0 0}

/* ---------- 上架 ---------- */
.pilltoggles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ptoggle{display:flex;align-items:center;justify-content:center;gap:6px;height:50px;border-radius:18px;background:var(--fill);color:var(--ink2);font-size:15px;font-weight:600;border:2px solid transparent}
.ptoggle .i{width:17px;height:17px;stroke-width:2.4;display:none}
.ptoggle.on{background:var(--listed-tint);color:var(--listed);border-color:var(--listed)}
.ptoggle.on .i{display:block}
.lstatus{font-size:12.5px;color:var(--ink3);margin:8px 4px 0}
.lstatus:empty{display:none}
.actionbar{position:sticky;bottom:0;z-index:4;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px -16px calc(-40px - var(--safe-b));padding:12px 16px calc(var(--safe-b) + 14px)}
.actionbar::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent,var(--bg) 40%);z-index:-1;pointer-events:none}
.actionbar .btn{width:100%;height:52px;font-size:15px;padding:0 8px}

/* ---------- 统计 ---------- */
.bars{display:flex;align-items:flex-end;gap:5px;height:160px;padding-top:16px}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.bar-v{font-size:10px;color:var(--ink3);margin-bottom:4px;font-weight:600}
.bar-f{display:block;width:100%;max-width:22px;border-radius:7px 7px 4px 4px;background:var(--primary-tint);min-height:3px}
.bar.cur .bar-f{background:var(--primary)}
.bar.cur .bar-v{color:var(--primary)}
.bar-l{font-size:10.5px;color:var(--ink3);margin-top:6px}
.dist{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:13.5px}
.dist-l{display:flex;align-items:center;gap:7px;white-space:nowrap}
.dist-l::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}
.dist-t{height:8px;border-radius:4px;background:var(--fill);overflow:hidden}
.dist-f{display:block;height:100%;border-radius:4px;background:var(--c)}
.dist-n{color:var(--ink2);font-weight:600;text-align:right;min-width:36px}
.mrow{position:relative;display:flex;align-items:center;gap:12px;padding:13px 16px;width:100%;text-align:left}
.mrow+.mrow::before{content:"";position:absolute;top:0;left:16px;right:0;height:1px;background:var(--line)}
.mrow:active{background:var(--press)}
.mrow-main{flex:1;min-width:0}
.mrow-t{display:block;font-size:15.5px;font-weight:600}
.mrow-s{display:block;font-size:12.5px;color:var(--ink3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrow-r{text-align:right}
.mrow-r b{display:block;font-size:15.5px}
.mrow-r span{display:block;font-size:12px;color:var(--pos)}
.mrow.on .mrow-t{color:var(--primary)}

/* ---------- 我的 ---------- */
.profile{display:flex;align-items:center;gap:14px}
.profile #accountInfo b{display:block;font-size:18px;font-weight:700}
.profile #accountInfo span{display:block;font-size:13px;color:var(--ink3);margin-top:2px}
.member .cell-t b{font-weight:600}
.role{font-size:12.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--fill);color:var(--ink2)}
.role.r-owner{background:var(--primary-tint);color:var(--primary)}
.rolepick{border:0;outline:0;background:var(--fill);border-radius:999px;height:30px;padding:0 10px;font-size:13px;font-weight:600;color:var(--ink2);-webkit-appearance:none;appearance:none}
.invite{margin-top:12px}
.invite-h{font-size:16px;font-weight:700;margin-bottom:12px}
.invite-link{margin-top:14px;padding:12px;border-radius:14px;background:var(--fill);font-size:12.5px;color:var(--ink2);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* ---------- 提示 ---------- */
.toast{position:absolute;left:50%;bottom:calc(var(--safe-b) + 92px);z-index:90;transform:translate(-50%,14px);opacity:0;pointer-events:none;background:rgba(15,23,42,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;padding:12px 18px;border-radius:999px;font-size:14px;font-weight:600;max-width:calc(100% - 32px);transition:opacity .25s,transform .3s var(--ease);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.err{background:var(--danger);white-space:normal;border-radius:18px}
.device.layer .toast{bottom:calc(var(--safe-b) + 28px)}
@media (prefers-color-scheme:dark){.toast{background:rgba(241,245,249,.92);color:#0B1220}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.cover.empty{height:150px}
/* 平台标（官方图形） */
.pf{width:20px;height:20px;min-width:20px;padding:0;border-radius:6px;box-shadow:0 0 0 .5px rgba(0,0,0,.08)}
.pf svg{width:13px;height:13px;fill:var(--pfg)}
.pf.txt{width:auto;padding:0 4px;font-size:9.5px}
.pf.lg{width:28px;height:28px;min-width:28px;border-radius:8px}
.pf.lg svg{width:18px;height:18px}
.pf.lg.txt{width:auto;padding:0 6px;font-size:12px}

.s-ordered{--c:var(--ordered);--t:var(--ordered-tint)}
.q-ordered{--c:var(--ordered)}
