:root {
--bg: #070b08;
--bg-elev: #0e1610;
--panel: rgba(14, 22, 16, 0.88);
--panel-solid: #121a14;
--panel2: #1a241c;
--text: #f4f1e8;
--muted: #9a9688;
--accent: #7ec89a;
--accent-strong: #4f9a6a;
--accent-dim: rgba(126, 200, 154, 0.14);
--accent-ink: #06140c;
--gold: #d4b483;
--warn: #d4b483;
--warn-dim: rgba(212, 180, 131, 0.14);
--danger: #e0857c;
--danger-soft: #f0a8a2;
--ok: #b6dfb2;
--ok-ink: #142016;
--line: rgba(244, 241, 232, 0.06);
--line-strong: rgba(244, 241, 232, 0.12);
--glow: 0 0 0 1px rgba(126, 200, 154, 0.1), 0 24px 56px rgba(0, 0, 0, 0.45);
--card: #fbfaf6;
--cardbg: #eceae2;
--ink: #1c1f1a;
--radius: 16px;
--radius-sm: 10px;
--shadow: 0 1px 0 rgba(255,255,255,0.06) inset, 0 28px 56px rgba(0,0,0,0.4);
--ease: cubic-bezier(0.22, 1, 0.36, 1);
--nav-h: 62px;
--topbar-h: 3.55rem;
--sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
--serif: "Songti SC", "STSong", "SimSun", "Noto Serif SC", serif;
--inset: rgba(0, 0, 0, 0.22);
--inset-soft: rgba(0, 0, 0, 0.12);
--topbar-bg: rgba(10, 16, 12, 0.88);
--nav-bg: rgba(10, 16, 12, 0.94);
--metric-bg: linear-gradient(180deg, rgba(255,255,255,0.04), transparent 40%), rgba(0,0,0,0.26);
--body-bg:
  radial-gradient(920px 520px at 6% -8%, rgba(126, 200, 154, 0.16) 0%, transparent 58%),
  radial-gradient(760px 440px at 98% 0%, rgba(212, 180, 131, 0.11) 0%, transparent 52%),
  linear-gradient(168deg, #0c1410 0%, var(--bg) 40%, #040606 100%);
--card-face:
  radial-gradient(480px 180px at 100% 0%, rgba(224,192,138,0.14), transparent 55%),
  radial-gradient(360px 140px at 0% 100%, rgba(149,201,144,0.1), transparent 50%),
  linear-gradient(165deg, rgba(255,255,255,0.045), transparent 42%),
  var(--panel2);
--ui-surface: var(--card-face);
--ui-radius: 14px;
--ui-radius-lg: 18px;
--accent-grad: linear-gradient(165deg, #9fe0b8 0%, var(--accent-strong) 52%, #3d8458 100%);
--fab-radius: 1.25rem;
--fab-shadow: 0 8px 22px rgba(40, 100, 60, 0.28);
--theme-color: #070b08;
}
html[data-theme="light"] {
--bg: #eef0ed;
--bg-elev: #ffffff;
--panel: #ffffff;
--panel-solid: #ffffff;
--panel2: #ffffff;
--text: #141a16;
--muted: #4a534c;
--accent: #1f8a52;
--accent-strong: #187a47;
--accent-dim: rgba(31, 138, 82, 0.14);
--accent-ink: #ffffff;
--gold: #8a6424;
--warn: #8a6424;
--warn-dim: rgba(138, 100, 36, 0.14);
--danger: #b8433b;
--danger-soft: #b8433b;
--ok: #187a47;
--ok-ink: #ffffff;
--line: rgba(20, 26, 22, 0.1);
--line-strong: rgba(20, 26, 22, 0.18);
--glow: 0 1px 2px rgba(20, 26, 22, 0.06), 0 10px 24px rgba(20, 26, 22, 0.08);
--card: #ffffff;
--cardbg: #e4e7e3;
--ink: #141a16;
--shadow: var(--glow);
--inset: #e4e7e3;
--inset-soft: #eceeea;
--topbar-bg: rgba(255, 255, 255, 0.96);
--nav-bg: rgba(255, 255, 255, 0.98);
--metric-bg: #eceeea;
--body-bg: linear-gradient(180deg, #f3f4f2 0%, var(--bg) 45%, #e6e9e5 100%);
--card-face: var(--panel2);
--ui-surface: #ffffff;
--accent-grad: linear-gradient(165deg, #3cb878 0%, var(--accent-strong) 55%, #187a47 100%);
--fab-shadow: 0 8px 20px rgba(24, 122, 71, 0.22);
--theme-color: #eef0ed;
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; min-height: 100%; }
body {
font-family: var(--sans);
color: var(--text);
letter-spacing: 0.01em;
min-height: 100vh;
padding-bottom: calc(var(--nav-h) + env(safe-area-inset-bottom, 0px));
background: var(--body-bg);
background-attachment: fixed;
}
@media (max-width: 960px) {
body { background: var(--bg); background-attachment: scroll; }
}
/* 手机滑动：去掉多层渐变/毛玻璃，减轻合成层压力 */
@media (max-width: 720px) {
:root {
  --body-bg: var(--bg);
  --card-face: var(--panel2);
  --glow: none;
  --shadow: none;
  --topbar-h: 3.35rem;
}
.top-bar,
.bottom-nav {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.account-card {
  box-shadow: none;
}
.ap-data-zone,
.account-card .ap-rights,
.ap-task-zone,
.ap-bag-row {
  background: var(--panel2);
}
.account-card .ap-tile,
.ap-ttile {
  contain: layout style paint;
  content-visibility: auto;
  contain-intrinsic-size: auto 68px;
  background: var(--inset-soft);
}
.ap-bag-item .bi-ico svg,
.account-card .ap-tile .ti svg,
.ap-ttile .ti svg {
  transform: translateZ(0);
}
}
body > * { position: relative; z-index: 1; }
.hidden { display: none !important; }

@keyframes brand-sheen {
from { transform: translateX(-120%) skewX(-12deg); opacity: 0; }
30% { opacity: 0.55; }
to { transform: translateX(220%) skewX(-12deg); opacity: 0; }
}

input[type=text], input[type=search], input[type=password] {
width: 100%;
background: var(--bg);
border: 1px solid var(--line-strong);
color: var(--text);
border-radius: var(--radius-sm);
padding: 0.55rem 0.7rem;
font: inherit;
}
html[data-theme="light"] input[type=text],
html[data-theme="light"] input[type=search],
html[data-theme="light"] input[type=password],
html[data-theme="light"] select {
background: #fff;
}
input:focus {
outline: none;
border-color: var(--accent);
box-shadow: 0 0 0 3px var(--accent-dim);
}
select {
background: var(--bg);
border: 1px solid var(--line-strong);
color: var(--text);
border-radius: var(--radius-sm);
padding: 0.35rem 0.55rem;
font: inherit;
}
select:focus {
outline: none;
border-color: var(--accent);
box-shadow: 0 0 0 3px var(--accent-dim);
}

.login-wrap {
min-height: 100vh;
display: flex; flex-direction: column; align-items: center; justify-content: center;
padding: 1.4rem 1.1rem calc(1.4rem + env(safe-area-inset-bottom, 0px));
gap: 1.1rem;
position: relative;
}
.theme-fab {
position: fixed; top: calc(.75rem + env(safe-area-inset-top, 0px)); right: .85rem;
z-index: 40;
width: 2.55rem; height: 2.55rem; border-radius: 999px;
border: 1px solid rgba(20, 26, 22, 0.12);
background: rgba(255, 255, 255, 0.92);
color: #187a47;
display: inline-flex; align-items: center; justify-content: center;
cursor: pointer; padding: 0;
box-shadow: 0 4px 14px rgba(20, 26, 22, 0.08);
backdrop-filter: blur(10px);
}
html[data-theme="dark"] .theme-fab {
background: rgba(18, 26, 20, 0.9);
border-color: var(--line-strong);
color: var(--accent);
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}
.theme-fab svg { width: 1.25rem; height: 1.25rem; display: block; }
.theme-fab .ico-moon { display: none; }
html[data-theme="light"] .theme-fab .ico-sun { display: none; }
html[data-theme="light"] .theme-fab .ico-moon { display: block; }
html[data-theme="dark"] .theme-fab .ico-sun { display: block; }
html[data-theme="dark"] .theme-fab .ico-moon { display: none; }
.login-hero {
width: min(420px, 100%);
text-align: center;
}
.login-mark {
width: 4.2rem; height: 4.2rem; margin: 0 auto .75rem;
border-radius: 18px;
display: flex; align-items: center; justify-content: center;
background: #fff;
border: 1px solid rgba(20, 26, 22, 0.08);
box-shadow: 0 8px 24px rgba(20, 26, 22, 0.06);
color: #187a47;
}
.login-mark svg { width: 2.2rem; height: 2.2rem; }
.login-hero .login-name {
margin: 0; font-size: 1.75rem; font-weight: 800; letter-spacing: .02em;
color: #145c38;
}
html[data-theme="dark"] .login-hero .login-name,
:root:not([data-theme="light"]) .login-hero .login-name { color: var(--text); }
.login-hero .login-tag {
margin: .28rem 0 0; color: var(--muted); font-size: .9rem;
}
.login-pill {
display: inline-flex; margin-top: .7rem; padding: .28rem .7rem;
border-radius: 999px; font-size: .74rem; font-weight: 600;
color: #187a47; background: #e8f5ee; border: 1px solid rgba(24, 122, 71, 0.2);
}
html[data-theme="dark"] .login-pill,
:root:not([data-theme="light"]) .login-pill {
color: var(--accent); background: var(--accent-dim); border-color: var(--line-strong);
}
.login-card {
width: min(420px, 100%);
padding: 1.35rem 1.2rem 1.2rem;
border-radius: 20px;
background: #fff;
border: 1px solid rgba(20, 26, 22, 0.08);
box-shadow: 0 10px 28px rgba(20, 26, 22, 0.07);
}
html[data-theme="dark"] .login-card,
:root:not([data-theme="light"]) .login-card {
background: var(--card-face);
border-color: var(--line-strong);
box-shadow: var(--glow);
}
.login-card .login-title {
margin: 0; font-size: 1.2rem; font-weight: 750; color: #145c38;
}
html[data-theme="dark"] .login-card .login-title,
:root:not([data-theme="light"]) .login-card .login-title { color: var(--text); }
.login-card .login-sub {
margin: .28rem 0 1rem; color: var(--muted); font-size: .82rem; line-height: 1.45;
}
.login-field {
border: 1px solid rgba(20, 26, 22, 0.12);
border-radius: 14px;
background: #fff;
overflow: hidden;
}
html[data-theme="dark"] .login-field,
:root:not([data-theme="light"]) .login-field {
border-color: var(--line-strong);
background: var(--bg);
}
.login-field-row {
display: flex; align-items: center; gap: .55rem;
padding: .7rem .85rem;
}
.login-field-row + .login-field-row {
border-top: 1px solid rgba(20, 26, 22, 0.08);
}
html[data-theme="dark"] .login-field-row + .login-field-row,
:root:not([data-theme="light"]) .login-field-row + .login-field-row {
border-top-color: var(--line);
}
.login-field-row .lf-ico {
width: 1.35rem; height: 1.35rem; flex-shrink: 0; color: #187a47;
}
html[data-theme="dark"] .login-field-row .lf-ico,
:root:not([data-theme="light"]) .login-field-row .lf-ico { color: var(--accent); }
.login-field-row .lf-ico svg { width: 100%; height: 100%; display: block; }
.login-field-row .lf-body { flex: 1; min-width: 0; }
.login-field-row .lf-lab {
display: block; font-size: .72rem; font-weight: 650; color: var(--muted); margin-bottom: .12rem;
}
.login-field-row .lf-lab .req { color: #c4564c; margin-right: .12rem; }
.login-field-row input {
width: 100%; border: 0; outline: none; background: transparent;
padding: 0; font: inherit; font-size: .95rem; color: var(--text);
box-shadow: none;
}
.login-field-row input:focus { box-shadow: none; border: 0; }
.login-card .btn-main {
margin-top: 1rem; border-radius: 12px; min-height: 2.85rem; font-size: 1rem;
}
html[data-theme="light"] .login-card .btn-main {
background: #187a47;
box-shadow: 0 8px 20px rgba(24, 122, 71, 0.28);
}
.login-wrap > .login-card .status { min-height: 1.15rem; margin-top: .65rem; text-align: center; }
.btn {
border: 1px solid var(--line-strong);
background: var(--panel2);
color: var(--text);
border-radius: 11px;
font-family: inherit;
font-weight: 600;
cursor: pointer;
display: inline-flex; align-items: center; justify-content: center;
}
.btn-main {
width: 100%; margin-top: .85rem; padding: .85rem; font-size: .98rem;
background: var(--accent-grad);
border-color: transparent; color: var(--accent-ink);
box-shadow: var(--fab-shadow);
}
html[data-theme="light"] .btn-main,
html[data-theme="light"] .btn-primary {
background: var(--accent-strong);
box-shadow: 0 6px 16px rgba(36, 138, 82, 0.22);
}
.btn-main:disabled { opacity: .45; }
.btn-sm { padding: .45rem .7rem; font-size: .78rem; border-radius: 8px; }
.btn-primary {
background: var(--accent-grad);
border-color: transparent; color: var(--accent-ink);
}
.btn-danger {
background: rgba(217, 122, 114, 0.1);
border-color: rgba(217, 122, 114, 0.35);
color: var(--danger-soft);
}
.status { min-height: 1.1rem; margin-top: .55rem; font-size: .78rem; color: var(--muted); }
.status.err { color: var(--danger); }
.status.ok { color: var(--accent); }
.link { color: var(--accent); text-decoration: none; font-size: .84rem; }
.empty { text-align: center; color: var(--muted); padding: 1.5rem 1rem; font-size: .88rem; }

.top-bar {
position: sticky; top: 0; z-index: 30;
background: var(--topbar-bg);
backdrop-filter: blur(18px);
border-bottom: 1px solid transparent;
padding: .72rem .9rem .68rem;
display: flex; align-items: center; gap: .75rem;
box-shadow: none;
}
html[data-theme="light"] .top-bar {
border-bottom-color: rgba(20, 26, 22, 0.06);
box-shadow: 0 8px 24px rgba(20, 26, 22, 0.04);
}
html[data-theme="dark"] .top-bar,
:root:not([data-theme="light"]) .top-bar {
border-bottom-color: rgba(255, 255, 255, 0.05);
}
.top-bar .brand {
display: flex; align-items: center; gap: .6rem; min-width: 0;
flex: 1 1 auto;
}
.top-bar .brand-mark {
width: 2.15rem; height: 2.15rem; border-radius: 11px; flex-shrink: 0;
display: flex; align-items: center; justify-content: center;
background: linear-gradient(145deg, rgba(31,170,102,.22), rgba(31,170,102,.08));
border: 1px solid rgba(31, 170, 102, 0.28);
color: var(--accent);
box-shadow: none;
}
.top-bar .brand-mark svg { width: 1.15rem; height: 1.15rem; }
html[data-theme="light"] .top-bar .brand-mark {
background: linear-gradient(145deg, #e7f7ee, #f4fbf7);
border-color: rgba(24, 122, 71, 0.18);
color: #187a47;
}
.top-bar .brand-text {
display: flex; flex-direction: column; align-items: flex-start;
gap: .08rem; min-width: 0; line-height: 1.15;
}
.top-bar .brand .brand-page {
font-family: inherit; font-weight: 780; font-size: 1.08rem;
color: var(--text); letter-spacing: .01em; white-space: nowrap;
}
html[data-theme="light"] .top-bar .brand .brand-page { color: #152019; }
.top-bar .brand .brand-name {
font-family: inherit;
font-weight: 520; font-size: .68rem; color: var(--muted);
letter-spacing: .04em; white-space: nowrap;
overflow: hidden; text-overflow: ellipsis; max-width: 42vw;
}
html[data-theme="light"] .top-bar .brand .brand-name { color: #7a847c; }
.top-bar .brand .brand-sep { display: none; }
.top-bar .top-right {
margin-left: 0;
display: flex; align-items: center; gap: .45rem; flex-shrink: 0;
}
.top-bar .acc-pick {
display: flex; align-items: center; min-width: 0; max-width: none;
}
.top-bar .acc-switch {
max-width: 9.5rem;
min-height: 2.15rem;
padding: .2rem .55rem .2rem .28rem;
border: 1px solid var(--line);
border-radius: 999px;
background: var(--inset-soft);
color: var(--text);
font: inherit;
font-size: .8rem;
font-weight: 650;
display: inline-flex;
align-items: center;
gap: .4rem;
cursor: pointer;
min-width: 0;
transition: border-color .15s ease, background .15s ease;
}
.top-bar .acc-switch:hover {
border-color: rgba(31, 170, 102, .4);
}
.top-bar .acc-switch:active { opacity: .9; }
.top-bar .acc-switch-av {
width: 1.55rem; height: 1.55rem; border-radius: 50%;
overflow: hidden; flex-shrink: 0;
background: var(--inset);
display: grid; place-items: center;
color: var(--muted);
border: 1px solid rgba(255,255,255,.06);
}
.top-bar .acc-switch-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.top-bar .acc-switch-av svg { width: .85rem; height: .85rem; }
.top-bar .acc-switch .acc-switch-name {
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 5.6rem;
}
.top-bar .acc-switch .acc-switch-chev {
flex-shrink: 0; width: .78rem; height: .78rem; color: var(--muted);
transition: transform .15s ease; opacity: .85;
}
.top-bar .acc-switch[aria-expanded="true"] .acc-switch-chev { transform: rotate(180deg); }
html[data-theme="light"] .top-bar .acc-switch {
background: #f3f6f4; border-color: rgba(20, 26, 22, 0.1);
}
.top-bar .actions { display: flex; align-items: center; gap: .15rem; flex: 0 0 auto; }
.top-bar .theme-ico {
width: 2.15rem; height: 2.15rem; border-radius: 999px; padding: 0;
border: 1px solid var(--line);
background: var(--inset-soft);
color: var(--accent-strong, var(--accent));
display: inline-flex; align-items: center; justify-content: center;
cursor: pointer; flex-shrink: 0;
}
.top-bar .theme-ico svg { width: 1rem; height: 1rem; display: block; }
.top-bar .theme-ico .ico-moon { display: none; }
html[data-theme="light"] .top-bar .theme-ico {
background: #f3f6f4; border-color: rgba(20, 26, 22, 0.1); color: #187a47;
}
html[data-theme="light"] .top-bar .theme-ico .ico-sun { display: none; }
html[data-theme="light"] .top-bar .theme-ico .ico-moon { display: block; }
html[data-theme="dark"] .top-bar .theme-ico .ico-sun { display: block; }
html[data-theme="dark"] .top-bar .theme-ico .ico-moon { display: none; }
@media (max-width: 380px) {
.top-bar { padding: .65rem .7rem; gap: .55rem; }
.top-bar .brand .brand-name { max-width: 34vw; }
.top-bar .acc-switch { max-width: 7.8rem; }
.top-bar .acc-switch .acc-switch-name { max-width: 3.8rem; }
}

.acc-switch-sheet .dt-sheet-panel {
max-height: min(72vh, 34rem);
padding-bottom: calc(.75rem + env(safe-area-inset-bottom, 0px));
}
.acc-switch-email {
margin: -.15rem .15rem .55rem;
padding: 0 .1rem;
font-size: .78rem;
color: var(--muted);
line-height: 1.35;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.acc-switch-email[hidden] { display: none; }
.acc-switch-impersonate {
margin: 0 .05rem .65rem;
padding: .65rem .7rem;
border: 1px solid var(--line);
border-radius: 12px;
background: var(--panel2, var(--inset-soft));
}
.acc-switch-impersonate[hidden] { display: none; }
.acc-switch-impersonate .imp-label {
display: block;
margin: 0 0 .4rem;
font-size: .72rem;
font-weight: 700;
color: var(--muted);
letter-spacing: .02em;
}
.acc-switch-impersonate .imp-row {
display: flex;
gap: .45rem;
align-items: stretch;
}
.acc-switch-impersonate .imp-row input {
flex: 1;
min-width: 0;
border: 1px solid var(--line);
border-radius: 10px;
padding: .55rem .65rem;
font: inherit;
font-size: .85rem;
background: var(--bg, #fff);
color: var(--text);
}
.acc-switch-impersonate .imp-row .btn { flex: 0 0 auto; white-space: nowrap; }
.acc-switch-impersonate .imp-hint {
margin: .4rem 0 0;
font-size: .7rem;
color: var(--muted);
line-height: 1.35;
}
.acc-switch-impersonate .imp-active {
display: flex;
align-items: center;
gap: .5rem;
flex-wrap: wrap;
}
.acc-switch-impersonate .imp-active strong {
flex: 1;
min-width: 0;
font-size: .86rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.impersonate-banner {
display: flex;
align-items: center;
gap: .55rem;
flex-wrap: wrap;
padding: .45rem .85rem;
background: #fff6e8;
border-bottom: 1px solid #f0d9a8;
color: #6b4a12;
font-size: .8rem;
line-height: 1.35;
}
.impersonate-banner[hidden] { display: none; }
html[data-theme="dark"] .impersonate-banner,
:root:not([data-theme="light"]) .impersonate-banner {
background: rgba(230, 170, 60, .16);
border-bottom-color: rgba(230, 170, 60, .35);
color: #f0d7a0;
}
.impersonate-banner .imp-ban-txt { flex: 1; min-width: 8rem; }
.impersonate-banner .imp-ban-txt b { font-weight: 750; }
.impersonate-banner .btn { flex: 0 0 auto; }
.acc-switch-list {
display: flex; flex-direction: column; gap: .45rem;
max-height: min(52vh, 26rem); overflow: auto;
padding: .15rem .05rem .35rem;
-webkit-overflow-scrolling: touch;
}
.acc-switch-hint {
margin: 0 0 .45rem;
font-size: .72rem;
color: var(--muted);
line-height: 1.35;
}
.acc-switch-sort {
display: flex; flex-direction: column; gap: .12rem; flex-shrink: 0;
}
.acc-switch-mv {
width: 1.45rem; height: 1.05rem;
border: 1px solid var(--line);
background: transparent;
color: var(--muted);
border-radius: 6px;
padding: 0;
font-size: .62rem; font-weight: 750; line-height: 1;
display: grid; place-items: center;
cursor: pointer;
}
.acc-switch-mv:disabled { opacity: .28; cursor: default; }
.acc-switch-mv svg { width: .72rem; height: .72rem; display: block; }
.acc-switch-row {
width: 100%;
display: flex; align-items: center; gap: .7rem;
text-align: left;
border: 1px solid var(--line);
background: var(--panel2, var(--inset-soft));
border-radius: 14px;
padding: .7rem .75rem;
font: inherit; color: var(--text); cursor: pointer;
}
.acc-switch-row:active { opacity: .9; }
.acc-switch-row.on {
border-color: rgba(31, 170, 102, .55);
background: rgba(31, 170, 102, .1);
box-shadow: inset 0 0 0 1px rgba(31, 170, 102, .2);
}
.acc-switch-av {
width: 2.45rem; height: 2.45rem; border-radius: 50%;
overflow: hidden; flex-shrink: 0;
background: var(--inset); display: grid; place-items: center;
color: var(--muted);
}
.acc-switch-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.acc-switch-av svg { width: 1.25rem; height: 1.25rem; }
.acc-switch-meta { flex: 1; min-width: 0; }
.acc-switch-name {
font-size: .95rem; font-weight: 750; line-height: 1.2;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.acc-switch-sub {
margin-top: .18rem; font-size: .72rem; color: var(--muted);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.acc-switch-run {
font-size: .68rem; font-weight: 700; color: var(--accent);
flex-shrink: 0;
}
.acc-switch-run.warn { color: #e6aa3c; }
.acc-switch-run.off { color: var(--muted); }
.acc-switch-check {
width: 1.35rem; height: 1.35rem; border-radius: 50%;
display: grid; place-items: center; flex-shrink: 0;
color: transparent; background: transparent;
border: 1.5px solid var(--line);
}
.acc-switch-row.on .acc-switch-check {
color: #fff; background: var(--accent); border-color: var(--accent);
}
.acc-switch-check svg { width: .85rem; height: .85rem; }
.acc-switch-empty {
text-align: center; color: var(--muted); font-size: .86rem;
padding: 1.4rem .5rem;
}
.acc-switch-foot {
display: flex; gap: .5rem; margin-top: .55rem;
}
.acc-switch-foot .btn { flex: 1; }

.app { max-width: 560px; margin: 0 auto; padding: .85rem; }
@media (max-width: 560px) {
.app { padding: .7rem .55rem calc(.55rem + env(safe-area-inset-bottom, 0px)); max-width: none; }
}
.sec { margin-bottom: 1rem; }
.sec-head {
display: flex; align-items: baseline; justify-content: space-between;
gap: .5rem; margin-bottom: .65rem;
}
.sec-head h2 { margin: 0; font-size: 1.02rem; font-weight: 700; color: var(--text); }
.sec-head .hint { margin: 0; font-size: .76rem; color: var(--muted); }
.sec-head.store-head {
display: flex; flex-direction: column; align-items: flex-start;
gap: .32rem; margin-bottom: .7rem;
}
.sec-head.store-head h2 {
flex: none; width: 100%; line-height: 1.3; font-size: 1.05rem;
}
.store-meta {
margin: 0; font-size: .74rem; color: var(--muted); line-height: 1.4;
max-width: 100%; word-break: break-word;
}
.store-meta:empty { display: none; }
.store-steps {
display: inline-flex; align-items: center; gap: .22rem;
margin: .1rem 0 0; padding: .28rem .55rem; border-radius: 999px;
background: var(--inset); border: 1px solid var(--line);
font-size: .7rem; color: var(--muted); white-space: nowrap;
line-height: 1.2;
}
.store-steps .n {
display: inline-flex; width: 1.05rem; height: 1.05rem; margin-right: .1rem;
align-items: center; justify-content: center; border-radius: 50%;
background: var(--accent-dim); color: var(--accent);
font-size: .58rem; font-weight: 700;
}
.store-steps .arr { color: var(--line-strong); margin: 0 .02rem; }
html[data-theme="light"] .store-steps {
background: #f3f5f2; border-color: rgba(20, 26, 22, 0.1); color: #5a635c;
}
html[data-theme="light"] .store-steps .n {
background: rgba(45, 154, 95, 0.14); color: #2d7a4c;
}
html[data-theme="light"] .store-meta { color: #5a635c; }

.greet-row {
display: flex; align-items: center; justify-content: space-between; gap: .6rem;
margin-bottom: .75rem;
}
.greet-row.hero { margin-bottom: .9rem; align-items: flex-start; }
.greet .greet-hi { color: var(--muted); font-size: .82rem; margin-bottom: .1rem; }
.greet strong { font-size: 1.02rem; color: var(--text); }
.greet-row.hero .greet strong {
display: block; font-size: 1.45rem; font-weight: 750; line-height: 1.25;
letter-spacing: .01em; color: var(--text);
}
.health {
display: inline-flex; align-items: center; gap: .35rem;
font-size: .78rem; color: var(--muted); white-space: nowrap;
margin-top: .35rem; padding: .28rem .55rem; border-radius: 999px;
background: var(--accent-dim); border: 1px solid transparent;
}
.health i { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); display: inline-block; }
.health.warn {
background: var(--warn-dim);
}
.health.warn i { background: var(--warn); }

.bj-clock {
margin: .15rem 0 .85rem;
padding: .85rem 1.1rem .95rem;
border-radius: var(--ui-radius-lg);
border: 1px solid var(--line-strong);
background: var(--ui-surface);
box-shadow: var(--glow);
text-align: center;
}
.bj-clock-meta {
display: flex;
align-items: center;
justify-content: center;
gap: .45rem;
margin-top: .25rem;
flex-wrap: wrap;
}
.bj-clock-lab {
font-size: .78rem; font-weight: 600; color: var(--muted);
letter-spacing: .08em;
}
.bj-clock-time {
font-family: var(--serif);
font-size: 2.35rem; font-weight: 750; line-height: 1.15;
letter-spacing: .04em;
color: var(--text);
font-variant-numeric: tabular-nums;
}
.bj-clock-date {
font-size: .78rem; color: var(--muted);
}
html[data-theme="light"] .bj-clock {
background: #fff;
border-color: rgba(20, 26, 22, 0.12);
}
html[data-theme="light"] .bj-clock-time { color: #145c38; }

.home-summary {
background: var(--panel2);
border: 1px solid var(--line);
border-radius: 14px;
padding: .9rem 1rem;
margin: 0 0 .75rem;
color: var(--text);
}
.hs-top {
display: flex; justify-content: space-between; align-items: flex-start;
gap: .75rem; margin-bottom: .75rem;
}
.hs-lab { color: var(--muted); font-size: .78rem; margin-bottom: .2rem; }
.hs-val { font-size: 1.35rem; font-weight: 700; color: var(--text); line-height: 1.1; }
.hs-unit { font-size: .85rem; font-weight: 500; margin-left: .15rem; color: var(--muted); }
.hs-link {
border: 0; background: transparent; color: var(--accent); font: inherit;
font-size: .82rem; cursor: pointer; padding: 0; white-space: nowrap;
}
.hs-grid {
display: grid; grid-template-columns: 1fr 1fr; gap: .55rem;
}
.hs-cell {
background: var(--inset);
border-radius: 10px; padding: .65rem .7rem; text-align: left;
border: 1px solid var(--line); font: inherit; color: var(--text);
}
.hs-tap { cursor: pointer; }
.hs-tap:active { opacity: .85; }

.home-quick {
margin: 0 0 .85rem;
padding: .55rem .85rem .55rem;
background: var(--ui-surface);
border: 1px solid var(--line-strong);
border-radius: var(--ui-radius-lg);
box-shadow: var(--glow);
}
.home-quick:not(.collapsed) { padding-bottom: .85rem; }
.hq-title-btn {
width: 100%; display: flex; align-items: center; justify-content: space-between;
gap: .5rem; margin: 0; padding: .35rem 0;
border: 0; background: transparent; font: inherit; color: var(--text);
cursor: pointer; text-align: left;
}
.hq-title {
font-size: .82rem; font-weight: 600; color: var(--muted);
margin: 0;
}
.hq-fold {
font-size: .72rem; font-weight: 650; color: var(--accent);
flex-shrink: 0;
}
.home-quick.collapsed .hq-body { display: none; }
.hq-body { margin-top: .35rem; }
.hq-row {
display: grid; grid-template-columns: repeat(3, 1fr); gap: .45rem;
}
.hq-item {
border: 1px solid var(--line);
background: var(--inset-soft);
border-radius: var(--ui-radius);
padding: .65rem .25rem .5rem;
display: flex; flex-direction: column; align-items: center; gap: .28rem;
font: inherit; font-size: .7rem; color: var(--text); cursor: pointer;
position: relative;
transition: transform .15s var(--ease), box-shadow .15s var(--ease);
}
.hq-item:active { transform: scale(.97); opacity: .92; }
.hq-step {
position: absolute; top: .28rem; left: .28rem;
width: 1.05rem; height: 1.05rem; border-radius: 50%;
display: grid; place-items: center;
font-size: .62rem; font-weight: 800; line-height: 1;
color: #fff;
background: var(--accent, #1faa66);
box-shadow: 0 1px 3px rgba(0,0,0,.25);
pointer-events: none;
}
.hq-ico {
width: 34px; height: 34px; border-radius: 10px;
background: var(--accent-dim);
color: var(--accent); display: grid; place-items: center;
}
.hq-ico svg { width: 17px; height: 17px; }
.hq-sub {
font-size: .62rem; font-weight: 700; color: var(--accent);
line-height: 1; margin-top: -.05rem;
padding: .08rem .38rem;
border-radius: 999px;
background: var(--accent-dim);
}

html[data-theme="light"] .home-summary,
html[data-theme="light"] .home-quick {
background: var(--ui-surface);
border-color: rgba(20, 26, 22, 0.12);
box-shadow: var(--glow);
}
html[data-theme="light"] .hq-item {
background: #eceeea;
border-color: rgba(20, 26, 22, 0.1);
}
html[data-theme="light"] .hs-cell {
background: #eceeea;
border-color: transparent;
}

.home-guide-row {
display: flex; gap: .45rem; margin-top: .55rem;
}
.home-guide-link {
display: flex; align-items: center; justify-content: center; gap: .35rem;
flex: 1; margin-top: 0; padding: .5rem;
border: 1px dashed var(--line-strong); border-radius: var(--ui-radius);
background: transparent; color: var(--accent);
font: inherit; font-size: .76rem; font-weight: 600; cursor: pointer;
}
.home-guide-link.advanced { color: #6b4cff; border-color: rgba(107,76,255,.45); }
.home-guide-link:active { opacity: .85; }
.home-guide-link svg { width: 15px; height: 15px; flex-shrink: 0; }

.home-hub {
margin: 0 0 .85rem;
background: var(--ui-surface);
border: 1px solid var(--line-strong);
border-radius: var(--ui-radius-lg);
box-shadow: var(--glow);
overflow: hidden;
}
.home-hub-grid {
display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .45rem;
padding: .85rem .85rem .7rem;
}
.home-hub-cell {
background: var(--inset);
border-radius: 10px;
padding: .65rem .55rem;
border: 1px solid var(--line);
min-width: 0;
}
button.home-hub-cell {
display: block; width: 100%; text-align: left;
font: inherit; color: inherit; cursor: pointer;
}
button.home-hub-cell:active { opacity: .88; }
.home-hub-lab { font-size: .72rem; color: var(--muted); margin-bottom: .2rem; }
button.home-hub-cell .home-hub-lab {
font-size: .82rem; font-weight: 750; line-height: 1.25;
color: var(--accent);
}
.home-hub-row {
display: flex; align-items: center; justify-content: space-between; gap: .35rem;
}
.home-hub-val {
font-size: 1.05rem; font-weight: 700; color: var(--text);
line-height: 1.1;
}
.home-hub-val.is-muted {
font-size: .82rem; font-weight: 650; color: var(--muted); letter-spacing: -.02em;
}
.home-hub-checkin {
width: 100%; padding: .7rem .85rem;
display: flex; align-items: center; gap: .75rem; text-align: left;
border: 0; border-top: 1px solid var(--line);
background: transparent;
font: inherit; color: var(--text); cursor: pointer;
text-decoration: none;
}
.home-hub-checkin:active { opacity: .9; }
.home-engage > .home-hub-checkin:first-child { border-top: 0; }
html[data-theme="light"] .home-hub {
background: var(--ui-surface);
border-color: rgba(20, 26, 22, 0.12);
box-shadow: var(--glow);
}
html[data-theme="light"] .home-hub-cell {
background: #eceeea;
border-color: transparent;
}
.home-checkin:active { opacity: .9; transform: scale(.99); }
.home-checkin-ico {
width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
display: grid; place-items: center;
background: rgba(8,166,109,.16); color: var(--accent);
}
.home-checkin-ico svg { width: 22px; height: 22px; }
.home-checkin-ico.done {
background: rgba(8,166,109,.28);
}
.home-checkin-main {
flex: 1; min-width: 0;
display: flex; flex-direction: column; align-items: flex-start; gap: .12rem;
}
.home-checkin-title {
display: block; width: 100%;
font-size: .92rem; font-weight: 750; line-height: 1.25;
}
.home-checkin-title.ok { color: var(--accent); }
.home-checkin-sub {
display: block; width: 100%;
font-size: .72rem; color: var(--muted); line-height: 1.35;
}
.home-checkin-sub.ok { color: var(--accent); font-weight: 650; }
.home-checkin-right {
flex-shrink: 0; text-align: right; font-size: .72rem; color: var(--muted); line-height: 1.3;
white-space: nowrap; display: flex; align-items: baseline; gap: .12rem;
}
.home-checkin-right b {
font-size: .88rem; font-weight: 800; color: var(--text);
font-variant-numeric: tabular-nums;
}
.home-checkin-go { color: var(--muted); font-size: 1rem; flex-shrink: 0; }

.home-risk-wrap { margin-top: .65rem; }
.home-risk-card {
width: 100%;
border-radius: 14px;
border: 1px solid var(--line);
background: var(--ui-surface, rgba(255,255,255,.04));
overflow: hidden;
}
.home-risk-toggle {
width: 100%; padding: .7rem .85rem;
display: flex; align-items: center; gap: .75rem; text-align: left;
border: 0; background: transparent;
font: inherit; color: var(--text); cursor: pointer;
}
.home-risk-toggle:active { opacity: .9; transform: scale(.99); }
.home-risk-ico {
width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
display: grid; place-items: center;
background: rgba(245, 158, 11, .16); color: #f59e0b;
}
.home-risk-ico.warn {
background: rgba(239, 68, 68, .16); color: #f87171;
}
.home-risk-ico svg { width: 22px; height: 22px; }
.home-risk-chips {
display: flex; flex-wrap: wrap; gap: .28rem;
margin-top: .28rem;
max-width: 100%;
}
.home-risk-chip {
font-size: .66rem; font-weight: 650; line-height: 1.2;
padding: .16rem .42rem; border-radius: 999px;
color: #fca5a5;
background: rgba(239, 68, 68, .12);
border: 1px solid rgba(239, 68, 68, .22);
max-width: 100%;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
html[data-theme="light"] .home-risk-chip {
color: #b91c1c;
background: rgba(239, 68, 68, .08);
border-color: rgba(185, 28, 28, .18);
}
.home-risk-sheet .dt-sheet-panel { max-height: min(78vh, 560px); }
.home-risk-sheet-hint {
margin: 0 0 .65rem; padding: .55rem .65rem;
border-radius: 10px; font-size: .76rem; line-height: 1.45;
color: var(--muted); background: var(--inset-soft, rgba(255,255,255,.04));
border: 1px solid var(--line);
}
.home-risk-sheet-empty {
text-align: center; padding: 1.6rem .8rem 1.4rem;
color: var(--muted); font-size: .84rem; line-height: 1.55;
}
.home-risk-sheet-empty strong {
display: block; margin-bottom: .25rem;
color: var(--text); font-size: .95rem;
}
.home-risk-rows { display: flex; flex-direction: column; gap: .55rem; padding-bottom: .85rem; }
.home-risk-row {
display: grid;
grid-template-columns: 1fr auto;
gap: .2rem .65rem;
align-items: start;
padding: .7rem .75rem;
border-radius: 12px;
border: 1px solid var(--line);
background: var(--ui-surface, rgba(255,255,255,.03));
}
.home-risk-row-name {
font-size: .9rem; font-weight: 750; line-height: 1.3;
color: var(--text);
}
.home-risk-row-badge {
flex-shrink: 0;
font-size: .72rem; font-weight: 750;
font-variant-numeric: tabular-nums;
padding: .14rem .48rem; border-radius: 999px;
color: #fca5a5;
background: rgba(239, 68, 68, .14);
border: 1px solid rgba(239, 68, 68, .22);
}
html[data-theme="light"] .home-risk-row-badge {
color: #b91c1c;
background: rgba(239, 68, 68, .1);
border-color: rgba(185, 28, 28, .2);
}
.home-risk-row-meta {
grid-column: 1 / -1;
font-size: .72rem; color: var(--muted); line-height: 1.35;
}
.home-risk-row-msg {
grid-column: 1 / -1;
margin-top: .12rem;
font-size: .78rem; line-height: 1.4;
color: var(--text); opacity: .88;
}
.home-risk-how-lab {
display: inline-block; margin-right: .35rem;
font-size: .68rem; font-weight: 700; color: var(--danger, #e25555);
vertical-align: baseline;
}
.home-risk-row-raw {
  grid-column: 1 / -1;
  font-size: .7rem; line-height: 1.35;
  color: var(--muted);
}
.home-risk-row-actions {
  grid-column: 1 / -1;
  margin-top: .35rem;
  display: flex;
  justify-content: flex-end;
}
.home-risk-row-actions .btn {
  min-height: 2rem;
  padding: .28rem .75rem;
  font-size: .78rem;
}
.home-risk-verify-entry {
  margin: 0 0 .75rem;
  padding: .7rem .75rem;
  border-radius: 12px;
  background: color-mix(in srgb, var(--accent, #ff6b35) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent, #ff6b35) 28%, transparent);
}
.home-risk-go-verify {
  width: 100%;
  min-height: 42px;
}
.rv-pick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.55rem;
}
.home-risk-verify-entry-hint {
  margin: .45rem 0 0;
  font-size: .74rem;
  line-height: 1.4;
  color: var(--muted);
}
.home-risk-verify-sheet .dt-sheet-panel { max-height: min(88vh, 640px); }
.rv-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: 0 0 .65rem;
}
.rv-chip {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: .28rem .62rem;
  border-radius: 999px;
  font-size: .74rem;
  line-height: 1.3;
  /* 暗色默认：深底浅字，避免浅灰叠浅灰看不清 */
  color: #eef1f5;
  background: #2c323c;
  border: 1px solid rgba(255, 255, 255, .16);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
html[data-theme="light"] .rv-chip {
  color: #1c2430;
  background: #e8eef6;
  border-color: rgba(28, 36, 48, .14);
}
.rv-chip-hit {
  color: #eafff1;
  background: #1f6b3f;
  border-color: rgba(120, 230, 160, .45);
  font-weight: 650;
}
html[data-theme="light"] .rv-chip-hit {
  color: #0d4a28;
  background: #d7f5e3;
  border-color: rgba(34, 140, 80, .35);
}
.rv-chip-hit.is-pending {
  color: #c8ced8;
  background: #2c323c;
  border-color: rgba(255, 255, 255, .14);
  font-weight: 500;
}
html[data-theme="light"] .rv-chip-hit.is-pending {
  color: #5a6575;
  background: #e8eef6;
  border-color: rgba(28, 36, 48, .12);
}
.rv-hint-mini {
  margin: 0 0 .55rem;
  font-size: .74rem;
  line-height: 1.4;
  color: #b8c0cc;
}
html[data-theme="light"] .rv-hint-mini { color: #5a6575; }
.rv-hint-mini.err { color: #ff8f8f; }
.rv-pick-title {
  margin: 0 0 .35rem;
  font-size: .98rem;
  font-weight: 700;
  color: var(--text);
}
.rv-pick-sub {
  margin: 0 0 .75rem;
  font-size: .78rem;
  line-height: 1.4;
  color: #b8c0cc;
}
html[data-theme="light"] .rv-pick-sub { color: #5a6575; }
.rv-pick-list {
  display: grid;
  gap: .55rem;
  margin: 0 0 .75rem;
}
.rv-pick-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .25rem;
  width: 100%;
  text-align: left;
  padding: .75rem .85rem;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: #2c323c;
  color: #eef1f5;
  cursor: pointer;
}
html[data-theme="light"] .rv-pick-item {
  background: #eef3f9;
  color: #1c2430;
  border-color: rgba(28,36,48,.12);
}
.rv-pick-item:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.rv-pick-item.is-hit {
  border-color: rgba(120, 230, 160, .45);
  background: #1f6b3f;
  color: #eafff1;
}
html[data-theme="light"] .rv-pick-item.is-hit {
  background: #d7f5e3;
  color: #0d4a28;
  border-color: rgba(34, 140, 80, .35);
}
.rv-pick-item-name {
  font-size: .95rem;
  font-weight: 700;
}
.rv-pick-item-meta {
  font-size: .72rem;
  opacity: .88;
  line-height: 1.35;
}
.rv-steps {
  display: flex;
  gap: .35rem;
  margin: 0 0 .7rem;
}
.rv-step {
  flex: 1;
  text-align: center;
  font-size: .72rem;
  padding: .35rem .2rem;
  border-radius: 999px;
  color: #d0d6e0;
  background: #2c323c;
  border: 1px solid rgba(255, 255, 255, .12);
}
html[data-theme="light"] .rv-step {
  color: #4a5565;
  background: #e8eef6;
  border-color: rgba(28, 36, 48, .12);
}
.rv-step.on {
  color: #fff;
  background: #1f6b3f;
  border-color: rgba(120, 230, 160, .4);
  font-weight: 650;
}
html[data-theme="light"] .rv-step.on {
  color: #0d4a28;
  background: #d7f5e3;
  border-color: rgba(34, 140, 80, .35);
}
.rv-pane { margin-bottom: .35rem; }
.rv-phone-card {
  position: relative;
  margin: .05rem 0 .2rem;
  padding: 1.15rem .95rem 1.05rem;
  border-radius: 18px;
  background: #1a1d24;
  border: 1px solid color-mix(in srgb, #8eb6ff 16%, transparent);
  text-align: center;
}
html[data-theme="light"] .rv-phone-card {
  background: linear-gradient(180deg, #eaf1f8 0%, #e2ebf4 100%);
  border-color: color-mix(in srgb, #6b8caf 22%, transparent);
}
.rv-phone-title {
  margin: 0 0 .4rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--text);
  word-break: break-all;
}
html:not([data-theme="light"]) .rv-phone-title { color: #f3f5f8; }
.rv-phone-sub {
  margin: 0 0 .95rem;
  font-size: .8rem;
  line-height: 1.45;
  color: var(--muted);
}
.rv-phone-mask, .rv-sms-tip {
  margin: 0 0 .35rem;
  font-size: .92rem;
  font-weight: 600;
}
.rv-phone-compose {
  margin: 0 0 .55rem;
  font-size: .84rem;
  letter-spacing: .08em;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.rv-otp {
  display: flex;
  justify-content: center;
  gap: .55rem;
  margin: 0 auto .85rem;
}
.rv-otp-cell {
  width: 3.15rem;
  height: 3.15rem;
  box-sizing: border-box;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--text) 16%, transparent);
  background: #fff;
  color: #111;
  -webkit-text-fill-color: #111;
  caret-color: #5b6cff;
  font-size: 1.45rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0;
  outline: none;
  touch-action: manipulation;
  transition: border-color .15s ease, box-shadow .15s ease;
}
html:not([data-theme="light"]) .rv-otp-cell {
  background: #f4f6fa;
  color: #111;
  -webkit-text-fill-color: #111;
  border-color: transparent;
  box-shadow: 0 1px 0 color-mix(in srgb, #000 12%, transparent);
}
.rv-otp-cell:focus {
  border-color: #6b7cff;
  box-shadow: 0 0 0 3px color-mix(in srgb, #6b7cff 28%, transparent);
}
.rv-mid4-sync {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}
.rv-phone-tip {
  margin: 0 0 .85rem;
  font-size: .72rem;
  color: var(--muted);
}
.rv-btn-start {
  border-radius: 999px !important;
  min-height: 48px;
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: .04em;
  background: linear-gradient(180deg, #6f82d9 0%, #5a6fc8 100%) !important;
  border: none !important;
  color: #fff !important;
}
.rv-btn-start:active { filter: brightness(.96); }
.rv-label {
  display: block;
  margin: 0 0 .3rem;
  font-size: .78rem;
  color: var(--muted);
}
.rv-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: .55rem .75rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--text) 18%, transparent);
  background: #fff;
  color: #111;
  caret-color: #111;
  font-size: 1.2rem;
  letter-spacing: .2em;
  margin-bottom: .65rem;
  -webkit-text-fill-color: #111;
  opacity: 1;
  pointer-events: auto;
  touch-action: manipulation;
}
html:not([data-theme="light"]) .rv-input {
  background: #1a1a1c;
  color: #f2f2f2;
  -webkit-text-fill-color: #f2f2f2;
  caret-color: #f2f2f2;
  border-color: color-mix(in srgb, #fff 18%, transparent);
}
.rv-input:disabled {
  opacity: .55;
}
.rv-btn { width: 100%; min-height: 44px; }
.rv-captcha {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--text) 12%, transparent);
  background: #0b0b0c;
}
.rv-captcha-stage {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #111;
  touch-action: none;
  user-select: none;
}
.rv-captcha-bg {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: top;
  pointer-events: none;
}
.rv-captcha-piece {
  position: absolute;
  left: 0;
  top: 0;
  width: auto;
  height: auto;
  max-width: none;
  pointer-events: none;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.35));
}
.rv-slider-track {
  position: relative;
  height: 42px;
  margin: .55rem .55rem .65rem;
  border-radius: 999px;
  background: color-mix(in srgb, #fff 10%, transparent);
  overflow: hidden;
  touch-action: none;
  user-select: none;
}
html[data-theme="light"] .rv-slider-track {
  background: color-mix(in srgb, #000 8%, transparent);
}
.rv-slider-fill {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 0;
  background: color-mix(in srgb, var(--accent, #ff6b35) 55%, transparent);
  border-radius: 999px;
}
.rv-slider-knob {
  position: absolute;
  left: 0; top: 2px;
  width: 54px; height: 38px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #333;
  font-weight: 700;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
  cursor: grab;
  z-index: 2;
}
.rv-slider-knob:active { cursor: grabbing; }
.rv-slider-tip {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  color: var(--muted);
  pointer-events: none;
  padding-left: 54px;
}
.rv-captcha-actions {
  display: flex;
  gap: .5rem;
  margin-top: .65rem;
}
.rv-captcha-actions .rv-btn { flex: 1; }
.rv-btn-ghost {
  min-width: 88px;
  min-height: 44px;
}
.rv-status { margin: .65rem 0 0; min-height: 1.2em; }

.guide-sheet .dt-sheet-panel { max-height: min(92vh, 780px); }
.guide-sheet .dt-sheet-body { padding: 0 .05rem .35rem; }
.guide-intro {
margin: 0 0 .75rem; padding: .65rem .7rem;
border-radius: var(--ui-radius); font-size: .8rem; line-height: 1.55;
color: var(--muted); background: var(--inset-soft);
border: 1px solid var(--line);
}
.guide-step {
margin-bottom: .85rem; padding: .75rem .7rem .7rem;
border: 1px solid var(--line-strong); border-radius: var(--ui-radius-lg);
background: var(--ui-surface); box-shadow: var(--glow);
}
.guide-step-hd {
display: flex; align-items: center; gap: .45rem; margin-bottom: .45rem;
}
.guide-step-num {
flex-shrink: 0; width: 1.35rem; height: 1.35rem; border-radius: 50%;
display: grid; place-items: center;
font-size: .72rem; font-weight: 800; color: #fff;
background: var(--accent, #1faa66);
}
.guide-step-tit { font-size: .92rem; font-weight: 700; margin: 0; }
.guide-fig { margin: .5rem 0 .55rem; }
.guide-shot {
border-radius: 12px; overflow: hidden;
border: 1px solid var(--line-strong);
background: var(--inset-soft);
box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.guide-shot + .guide-shot { margin-top: .45rem; }
.guide-shot img {
display: block; width: 100%; height: auto;
}
.guide-cap {
padding: .35rem .55rem .45rem;
font-size: .68rem; line-height: 1.45;
color: var(--muted); text-align: center;
}
.guide-step p, .guide-step li {
margin: 0 0 .35rem; font-size: .78rem; line-height: 1.55; color: var(--text);
}
.guide-step ul { margin: 0 0 .4rem; padding-left: 1.1rem; }
.guide-tips {
margin: .4rem 0 0; padding: .45rem .55rem;
border-radius: 10px; font-size: .72rem; line-height: 1.5;
color: var(--accent); background: var(--accent-dim);
border: 1px solid rgba(31,170,102,.25);
}
.guide-tips.warn { color: #c45a2a; background: rgba(196,90,42,.12); border-color: rgba(196,90,42,.25); }
.guide-step-go {
margin-top: .45rem; padding: .38rem .75rem;
border: 1px solid var(--accent); border-radius: 999px;
background: transparent; color: var(--accent);
font: inherit; font-size: .74rem; font-weight: 650; cursor: pointer;
}
.guide-step-go:active { opacity: .88; }
.guide-section-hd {
margin: 1rem 0 .55rem; padding: .5rem .65rem;
border-radius: var(--ui-radius); font-size: .84rem; font-weight: 800;
color: var(--text); background: var(--inset-soft);
border-left: 3px solid var(--accent);
}
.guide-step.advanced .guide-step-num { background: #6b4cff; }
.guide-fold {
margin: 0 0 .75rem; padding: .55rem .65rem;
border: 1px dashed var(--line-strong); border-radius: var(--ui-radius);
font-size: .76rem; color: var(--muted);
}
.guide-fold summary { cursor: pointer; font-weight: 650; color: var(--text); }
.guide-fold ul { margin: .45rem 0 0; padding-left: 1.1rem; }
.guide-fold li { margin-bottom: .3rem; line-height: 1.5; }
.guide-code {
display: inline-block; padding: .05rem .35rem; border-radius: 4px;
font-size: .7rem; background: var(--inset-soft); border: 1px solid var(--line);
}
.guide-faq {
margin-top: .25rem; padding: .65rem .7rem;
border-radius: var(--ui-radius-lg);
border: 1px dashed var(--line-strong);
background: var(--inset-soft);
}
.guide-faq strong { display: block; font-size: .82rem; margin-bottom: .35rem; }
.guide-faq p { margin: 0 0 .3rem; font-size: .74rem; line-height: 1.5; color: var(--muted); }

.status-list { display: flex; flex-direction: column; gap: .55rem; margin-bottom: .85rem; }
.status-row {
display: flex; align-items: center; gap: .7rem;
width: 100%; text-align: left; cursor: pointer;
border: 1px solid var(--line-strong); background: var(--panel2);
border-radius: 16px; padding: .85rem .95rem;
box-shadow: var(--glow); font-family: inherit; color: inherit;
text-decoration: none;
}
.status-row .sr-ico {
width: 2.35rem; height: 2.35rem; border-radius: 999px; flex-shrink: 0;
display: inline-flex; align-items: center; justify-content: center;
background: var(--accent-dim); color: var(--accent-strong);
}
.status-row .sr-ico svg { width: 1.15rem; height: 1.15rem; }
.status-row .sr-main { flex: 1; min-width: 0; }
.status-row .sr-title { font-size: .92rem; font-weight: 700; color: var(--text); }
.status-row .sr-sub { margin-top: .18rem; font-size: .74rem; color: var(--muted); line-height: 1.35; }
.status-row .sr-right {
flex-shrink: 0; display: inline-flex; align-items: center; gap: .25rem;
font-size: .88rem; font-weight: 700; color: var(--text);
white-space: nowrap;
}
.status-row .sr-right .sr-chev {
font-size: .85rem; font-weight: 500; color: var(--muted);
}
.status-row.warn .sr-ico { background: var(--warn-dim); color: var(--warn); }
.status-row.warn .sr-right { color: var(--warn); }

.loc-panel-hd {
display: flex; align-items: center; justify-content: space-between;
gap: .5rem; margin-bottom: .55rem;
}
.loc-panel-hd strong { font-size: .88rem; color: var(--text); }
.assets-hero .ap-hd button {
border: 1px solid var(--line-strong); background: var(--inset); color: var(--muted);
border-radius: 8px; padding: .3rem .55rem; font-size: .72rem; cursor: pointer;
}

.account-card {
margin-bottom: .75rem;
padding: 1rem 1.05rem;
background: var(--ui-surface);
border: 1px solid var(--line-strong);
border-radius: var(--ui-radius-lg);
color: var(--muted);
box-shadow: var(--glow);
}
.account-card.compact { padding: .85rem .95rem; }

.loc-row { display: flex; gap: .45rem; margin-top: 0; }
.store-loc {
margin-bottom: .65rem; padding-bottom: .65rem;
border-bottom: 1px dashed var(--line);
}
.store-loc-summary {
display: flex; align-items: center; gap: .45rem; width: 100%;
border: 0; background: transparent; padding: 0; cursor: pointer;
font: inherit; text-align: left; color: inherit;
}
.store-loc-summary:active { opacity: .85; }
.store-loc-summary .store-loc-lab {
font-size: .82rem; font-weight: 650; color: var(--text); flex-shrink: 0;
}
.store-loc-summary .store-loc-text {
flex: 1; min-width: 0; font-size: .76rem; color: var(--muted);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right;
}
.store-loc-summary .store-loc-text.warn { color: var(--danger-soft); font-weight: 600; }
.store-loc-summary .store-loc-go {
flex-shrink: 0; font-size: .72rem; color: var(--accent-strong); font-weight: 600;
}
.store-loc-edit { margin-top: .5rem; }
.store-loc-edit.hidden { display: none; }
.store-loc-edit-hd {
display: flex; align-items: center; justify-content: space-between;
gap: .5rem; margin-bottom: .4rem;
}
.store-loc-edit-hd strong { font-size: .78rem; color: var(--text); }
.store-loc-edit-hd .ghost {
border: 0; background: transparent; color: var(--muted);
font-size: .72rem; cursor: pointer; padding: .15rem .25rem;
}
.store-loc .loc-row { margin-top: 0; }
.suggest {
display: none; margin-top: .35rem; max-height: 160px; overflow: auto;
border: 1px solid var(--line-strong); border-radius: var(--radius-sm);
background: var(--panel-solid);
}
.suggest.show { display: block; }
.suggest-item { padding: .55rem .65rem; border-bottom: 1px solid var(--line); cursor: pointer; font-size: .82rem; }
.suggest-item:hover { background: var(--accent-dim); }
.suggest-item .t { font-weight: 600; color: var(--text); }
.suggest-item .a { color: var(--muted); font-size: .72rem; margin-top: .1rem; }

/* 卡包式权益 */
.ap-bag-row {
display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .32rem;
margin: .35rem 0 .65rem; padding: .5rem .3rem;
background: var(--card-face); border: 1px solid var(--line); border-radius: 14px;
}
@media (min-width: 420px) {
.ap-bag-row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .28rem; }
}
.ap-bag-item {
border: 0; background: transparent; font: inherit; color: var(--text);
display: flex; flex-direction: column; align-items: center; gap: .18rem;
cursor: default; padding: .32rem .12rem; border-radius: 10px; min-width: 0;
}
.ap-bag-item[data-bag="cards"],
.ap-bag-item[data-bag="redpacks"],
.ap-bag-item[data-bag="members"] { cursor: pointer; }
.ap-bag-item[data-bag="cards"]:active,
.ap-bag-item[data-bag="redpacks"]:active,
.ap-bag-item[data-bag="members"]:active { background: var(--inset-soft); }
.ap-bag-item .bi-ico {
width: 30px; height: 30px; display: grid; place-items: center;
}
.ap-bag-item .bi-ico svg { width: 26px; height: 26px; display: block; }
.ap-bag-item .bi-lab {
font-size: .66rem; color: var(--muted); line-height: 1.2; text-align: center;
max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ap-bag-item .bi-n {
font-size: .95rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.1;
max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ap-bag-item.silk .bi-n { color: var(--ok); }
.ap-bag-item.jwt .bi-n { color: var(--text); }
.ap-bag-item.jwt.warn .bi-n { color: var(--warn); }
.ap-bag-item.vip .bi-n { color: var(--gold); }
.ap-bag-item.vip.inactive .bi-n { color: var(--muted); font-size: .78rem; font-weight: 650; }
.ap-sign {
display: flex; align-items: center; justify-content: space-between; gap: .6rem;
padding: .7rem .85rem; margin-bottom: .65rem;
background: var(--card-face); border: 1px solid var(--line); border-radius: 14px;
}
.ap-sign-main { min-width: 0; }
.ap-sign-title { font-size: .95rem; font-weight: 700; color: var(--text); }
.ap-sign-title em {
font-style: normal; color: var(--gold); font-size: 1.15rem; margin: 0 .15rem;
}
.ap-sign-sub { font-size: .72rem; color: var(--muted); margin-top: .2rem; }
.ap-sign-badge {
flex-shrink: 0; font-size: .72rem; padding: .28rem .55rem; border-radius: 999px;
background: var(--accent-dim); color: var(--ok); font-weight: 600;
}
.ap-sign-badge.off { background: var(--inset); color: var(--muted); }
.ap-pack-tabs {
display: flex; gap: 1.1rem; border-bottom: 1px solid var(--line); margin: 0 0 .55rem; padding: 0 .15rem;
}
.ap-pack-tab {
border: 0; background: transparent; font: inherit; font-size: .92rem; font-weight: 600;
color: var(--muted); padding: .45rem 0; cursor: pointer; position: relative;
}
.ap-pack-tab.on { color: var(--text); }
.ap-pack-tab.on::after {
content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px;
background: var(--accent); border-radius: 2px 2px 0 0;
}
.ap-pack-list { display: flex; flex-direction: column; gap: .55rem; }
.ap-pack-card {
background: var(--card-face); border: 1px solid var(--line); border-radius: 12px;
padding: .75rem .85rem;
}
.ap-pack-card-hd {
display: flex; align-items: flex-start; justify-content: space-between; gap: .65rem;
}
.ap-pack-card-title { font-weight: 700; font-size: .92rem; color: var(--text); }
.ap-pack-card-meta { font-size: .74rem; color: var(--muted); margin-top: .22rem; }
.ap-pack-card-meta.warn { color: #e85d4c; font-weight: 600; }
.ap-pack-card-side {
text-align: right; flex-shrink: 0; min-width: 4.2rem;
}
.ap-pack-amt {
display: block; font-size: 1.35rem; font-weight: 800; line-height: 1.15;
color: #e85d4c; font-variant-numeric: tabular-nums; letter-spacing: -.02em;
}
.ap-pack-amt .yen { font-size: .85em; margin-right: .05rem; }
.ap-pack-soon {
display: block; font-size: .68rem; color: #e85d4c; margin-bottom: .15rem; font-weight: 600;
}
.ap-pack-count {
display: block; font-size: 1.15rem; font-weight: 800; color: var(--text);
font-variant-numeric: tabular-nums;
}
.ap-pack-card-desc {
margin-top: .55rem; padding-top: .45rem; border-top: 1px solid var(--line);
font-size: .72rem; color: var(--muted);
}
.ap-pack-empty {
text-align: center; color: var(--muted); font-size: .82rem; padding: 1.4rem .5rem;
}
.ap-pack-empty.ap-pack-err {
text-align: left; white-space: pre-line; line-height: 1.55;
}
.ap-back-inline {
border: 0; background: transparent; color: var(--muted); font: inherit;
font-size: .85rem; cursor: pointer; padding: .15rem 0; margin-bottom: .35rem;
}
.ap-vip-sub {
font-size: .72rem; color: var(--muted); font-weight: 500; margin-left: .35rem;
}

/* 资产面板（对齐控制台 account-card） */
.account-card .ap-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; }
@media (max-width: 420px) { .account-card .ap-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.account-card .ap-metric {
padding: .55rem .5rem; text-align: center; min-width: 0;
border-radius: 14px;
background: var(--metric-bg);
border: 1px solid var(--line-strong);
}
.account-card .ap-metric .n {
display: block; font-family: var(--serif); font-size: 1.15rem; font-weight: 700;
font-variant-numeric: tabular-nums; color: var(--text);
}
.account-card .ap-metric .l { display: block; margin-top: .15rem; font-size: .68rem; color: var(--muted); }
.account-card .ap-metric.gold .n { color: var(--gold); }
.account-card .ap-metric.green .n { color: var(--ok); }
.account-card .ap-metric.vip .n { color: var(--gold); }
.account-card .ap-metric.warn .n { color: var(--danger-soft); }
.account-card .ap-meta { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin-top: .65rem; }
.account-card .ap-meta-cell {
background: var(--inset); border: 1px solid var(--line);
border-radius: 10px; padding: .5rem .6rem; min-width: 0;
}
.account-card .ap-meta-cell .k { font-size: .68rem; color: var(--muted); }
.account-card .ap-meta-cell .v { margin-top: .15rem; font-size: .82rem; color: var(--text); word-break: break-all; }
.account-card .ap-meta-cell .v.muted { color: var(--muted); }
.account-card .ap-updated {
margin: 0 0 .45rem; font-size: .72rem; color: var(--muted); letter-spacing: .01em;
}
.account-card .ap-refreshing { color: var(--gold); }
.account-card .ap-badge {
display: inline-block; font-size: .68rem; padding: .12rem .4rem; border-radius: 999px;
background: var(--accent-dim); color: var(--ok); margin-right: .35rem;
}
.account-card .ap-badge.warn { background: rgba(240,168,162,.12); color: var(--danger-soft); }
.account-card .ap-rights {
margin-top: .65rem; border: 1px solid var(--line); border-radius: 12px;
background: var(--inset-soft); padding: .55rem .65rem .65rem;
}
.account-card .ap-rights-hd {
display: flex; align-items: center; justify-content: space-between; gap: .4rem;
font-size: .78rem; font-weight: 600; color: var(--text); margin-bottom: .1rem; width: 100%;
border: 0; background: transparent; font: inherit; cursor: pointer; padding: .15rem 0; text-align: left;
}
.account-card .ap-rights-hd .ap-fold {
flex-shrink: 0; font-size: .72rem; color: var(--muted); font-weight: 500;
}
.account-card .ap-rights.collapsed .ap-grid { display: none; }
.account-card .ap-rights.collapsed .ap-vip-progress { display: none; }
.account-card .ap-vip-progress {
  margin: .35rem 0 .15rem;
  padding: .45rem .55rem .5rem;
  border-radius: 10px;
  background: var(--card-face);
  border: 1px solid var(--line);
}
.account-card .ap-vip-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem;
}
.account-card .ap-vip-lab {
  font-size: .72rem;
  color: var(--muted);
  font-weight: 500;
  line-height: 1.2;
}
.account-card .ap-vip-pct {
  font-size: .92rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  color: var(--accent, #2ec27e);
  line-height: 1.2;
}
.account-card .ap-vip-bar {
  margin: .35rem 0 .3rem;
  height: 7px;
  border-radius: 999px;
  background: rgba(0,0,0,.08);
  overflow: hidden;
}
.account-card .ap-vip-bar > i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2ec27e, #ffd666);
}
.account-card .ap-vip-frac {
  font-size: .78rem;
  font-variant-numeric: tabular-nums;
  color: var(--text);
  font-weight: 600;
  line-height: 1.2;
}
.account-card .ap-svip-invite {
  margin-top: .4rem;
  padding-top: .35rem;
  border-top: 1px dashed var(--line);
}
.account-card .ap-vip-svip {
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  color: var(--text);
  font-weight: 600;
  line-height: 1.35;
  text-align: right;
}
.account-card .ap-grid {
display: grid; grid-template-columns: repeat(auto-fill, minmax(6.2rem, 1fr)); gap: .4rem; margin-top: .45rem;
}
.account-card .ap-tile {
padding: .5rem .4rem .45rem; border-radius: 10px; background: var(--card-face);
border: 1px solid var(--line); min-width: 0;
display: flex; flex-direction: column; align-items: center; text-align: center; gap: .12rem;
}
.account-card .ap-tile .ti {
width: 34px; height: 34px; display: grid; place-items: center;
border-radius: 10px;
background: rgba(255,255,255,.08);
box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.account-card .ap-tile .ti svg {
width: 28px; height: 28px; display: block;
filter: saturate(1.15) brightness(1.08);
}
.account-card .ap-tile .tn {
display: block; font-size: .92rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text); line-height: 1.15;
}
.account-card .ap-tile .tl {
display: block; font-size: .62rem; color: var(--muted); line-height: 1.25;
max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.account-card .ap-tile.warn .tn { color: var(--danger-soft); }
.account-card .ap-tile.green .tn { color: var(--ok); }
.account-card .ap-tile.gold .tn { color: var(--gold); }

.ap-task-zone {
margin-top: .65rem; border: 1px solid var(--line); border-radius: 12px;
background: var(--inset-soft); padding: .55rem .65rem .65rem;
position: relative;
}
.ap-task-zone-hd {
font-size: .78rem; font-weight: 600; color: var(--text); margin-bottom: 0;
display: flex; align-items: center; justify-content: space-between; gap: .5rem;
width: 100%; border: 0; background: transparent; font: inherit; cursor: pointer;
padding: .15rem 0; text-align: left;
}
.ap-task-zone-hd .hint { font-size: .68rem; font-weight: 500; color: var(--muted); }
.ap-task-zone-hd .ap-fold {
flex-shrink: 0; font-size: .72rem; color: var(--muted); font-weight: 500;
}
.ap-task-zone.collapsed .ap-task-body { display: none; }
.ap-task-zone.collapsed #assetsTaskStatus { display: none; }
.ap-task-sec {
margin: .55rem 0 .28rem;
font-size: .72rem; font-weight: 700; letter-spacing: .06em;
color: var(--muted);
}
.ap-task-sec:first-of-type { margin-top: .15rem; }
.ap-task-sec.member { color: var(--warn, #c49a4a); }
.ap-task-sec.custom { color: var(--accent); }
.ap-task-grid {
display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem;
}
@media (max-width: 420px) {
.ap-task-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.ap-ttile {
border: 1px solid var(--line); background: var(--card-face); border-radius: 10px;
padding: .5rem .25rem .45rem; font: inherit; color: var(--text); cursor: pointer;
display: flex; flex-direction: column; align-items: center; gap: .12rem; text-align: center;
min-width: 0;
}
.ap-ttile:disabled { opacity: .45; cursor: not-allowed; }
.ap-ttile .ti {
width: 34px; height: 34px; display: grid; place-items: center;
border-radius: 10px;
background: rgba(255,255,255,.08);
box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.ap-ttile .ti svg {
width: 28px; height: 28px; display: block;
filter: saturate(1.12) brightness(1.06);
}
.ap-ttile .tn {
font-size: .72rem; font-weight: 650; line-height: 1.2;
max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ap-ttile .ts {
font-size: .62rem; color: var(--muted); font-weight: 600;
}
.ap-ttile.on {
border-color: rgba(8,166,109,.35); background: var(--accent-dim, rgba(8,166,109,.1));
}
.ap-ttile.on .ti { filter: none; opacity: 1; }
.ap-ttile.on .ti svg { filter: saturate(1.2) brightness(1.1); opacity: 1; }
.ap-ttile.on .ts { color: var(--ok); }
.ap-ttile.off .ti { filter: none; opacity: 1; }
.ap-ttile.off .ti svg { filter: saturate(1.05) brightness(1.02); opacity: .96; }
.ap-ttile.off .ts { color: var(--muted); }
html[data-theme="light"] .account-card .ap-tile .ti,
html[data-theme="light"] .ap-ttile .ti {
background: rgba(255,255,255,.72);
box-shadow: inset 0 0 0 1px rgba(20,26,22,.06);
}
.account-card .ap-fold {
margin-top: .55rem; border: 1px solid var(--line); border-radius: 12px;
background: var(--inset-soft); overflow: hidden;
}
.account-card .ap-fold > summary {
list-style: none; cursor: pointer; padding: .55rem .65rem;
font-size: .78rem; font-weight: 600; color: var(--text);
display: flex; justify-content: space-between; align-items: center;
}
.account-card .ap-fold > summary::-webkit-details-marker { display: none; }
.account-card .ap-fold > summary::after { content: "展开"; font-size: .68rem; color: var(--muted); font-weight: 500; }
.account-card .ap-fold[open] > summary::after { content: "收起"; }
.account-card .ap-fold-body { padding: 0 .65rem .65rem; border-top: 1px solid var(--line); }
.account-card .ap-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .45rem; }
.account-card .ap-chip {
font-size: .68rem; padding: .15rem .45rem; border-radius: 999px;
background: var(--inset); color: var(--muted);
}
.account-card .ap-chip.warn { background: rgba(240,168,162,.12); color: var(--danger-soft); }
.account-card .ap-loading { text-align: center; color: var(--muted); padding: 1.2rem .5rem; font-size: .84rem; }
.account-card .ap-hd {
display: flex; align-items: center; justify-content: space-between;
margin-bottom: .55rem; gap: .5rem;
}
.account-card .ap-hd strong { font-size: .92rem; color: var(--text); }
.account-card .ap-hd button {
border: 1px solid var(--line-strong); background: var(--inset); color: var(--muted);
border-radius: 8px; padding: .3rem .55rem; font-size: .72rem; cursor: pointer;
}
.ap-profile {
display: flex; align-items: center; gap: .65rem;
margin: -.15rem 0 .7rem; padding-bottom: .7rem;
border-bottom: 1px solid var(--line);
}
.ap-profile .ap-switch-hit {
flex: 1; min-width: 0;
display: flex; align-items: center; gap: .65rem;
border: 0; background: transparent; padding: 0; margin: 0;
font: inherit; color: inherit; text-align: left; cursor: pointer;
}
.ap-profile .ap-switch-hit:active { opacity: .88; }
.ap-profile .ap-switch-tip {
font-size: .68rem; font-weight: 650; color: var(--accent);
margin-left: .15rem; flex-shrink: 0;
}
.ap-profile .ap-av {
position: relative; width: 3.1rem; height: 3.1rem; flex-shrink: 0;
}
.ap-profile .ap-av-ring {
width: 100%; height: 100%; border-radius: 50%; overflow: hidden;
border: 2px solid #e6b35a; background: var(--inset);
display: grid; place-items: center;
}
.ap-profile .ap-av-ring img {
width: 100%; height: 100%; object-fit: cover; display: block;
}
.ap-profile .ap-av-ring svg {
width: 1.45rem; height: 1.45rem; color: var(--muted);
}
.ap-profile .ap-crown {
position: absolute; right: -.12rem; top: -.28rem;
width: 1.05rem; height: 1.05rem; filter: drop-shadow(0 1px 1px rgba(0,0,0,.2));
}
.ap-profile .ap-who { flex: 1; min-width: 0; }
.ap-profile .ap-name {
font-size: 1rem; font-weight: 750; color: var(--text);
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ap-profile .ap-credit {
display: inline-flex; align-items: center; gap: .28rem;
margin-top: .28rem; padding: .12rem .45rem .12rem .28rem;
border-radius: 999px; background: var(--card-face); border: 1px solid var(--line);
font-size: .68rem; color: var(--muted); font-weight: 600; line-height: 1.2;
}
.ap-profile .ap-credit.on { color: #1faa66; border-color: rgba(31,170,102,.35); }
.ap-profile .ap-credit.warn { color: var(--danger-soft); border-color: rgba(220,80,80,.35); }
.ap-profile .ap-credit .dot {
width: .85rem; height: .85rem; border-radius: 50%; flex-shrink: 0;
background: #8a9390; color: #fff; display: grid; place-items: center;
font-size: .55rem; font-weight: 800;
}
.ap-profile .ap-credit.on .dot { background: #2ec27e; }
.ap-profile .ap-credit.warn .dot { background: #e05858; }
.ap-profile .ap-id {
margin-top: .18rem; font-size: .74rem; color: var(--muted);
font-variant-numeric: tabular-nums;
}
.ap-profile .ap-run {
flex-shrink: 0; font-size: .78rem; font-weight: 650; color: var(--ok);
white-space: nowrap;
}
.ap-profile .ap-run.warn { color: var(--danger-soft); }
.ap-profile .ap-run.off { color: var(--muted); }
.ap-profile .ap-tools {
flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: .35rem;
}
.ap-profile .ap-tools button {
border: 1px solid var(--line-strong); background: var(--inset); color: var(--muted);
border-radius: 8px; padding: .22rem .45rem; font-size: .68rem; cursor: pointer;
}
.ap-data-zone {
margin-top: .15rem; border: 1px solid var(--line); border-radius: 12px;
background: var(--inset-soft); padding: .55rem .65rem .65rem;
}
.ap-data-zone-hd {
font-size: .78rem; font-weight: 600; color: var(--text); margin: 0 0 .35rem;
}
.ap-data-zone .ap-bag-row {
margin: 0; padding: .35rem .15rem .15rem;
background: transparent; border: 0; border-radius: 0;
}

/* 简约白：提高资产可读性 */
html[data-theme="light"] .account-card {
border-color: rgba(20, 26, 22, 0.14);
box-shadow: 0 1px 2px rgba(20, 26, 22, 0.05), 0 8px 20px rgba(20, 26, 22, 0.06);
}
html[data-theme="light"] .account-card .ap-metric {
border-color: rgba(20, 26, 22, 0.14);
background: #eceeea;
}
html[data-theme="light"] .account-card .ap-metric .n {
font-size: 1.22rem;
}
html[data-theme="light"] .account-card .ap-meta-cell {
background: #eceeea;
border-color: rgba(20, 26, 22, 0.12);
}
html[data-theme="light"] .account-card .ap-meta-cell .v {
font-weight: 600;
color: #141a16;
}
html[data-theme="light"] .account-card .ap-hd strong,
html[data-theme="light"] .flash-dialog .fp-hd {
font-weight: 700;
}
html[data-theme="light"] .top-bar .ghost {
color: #3d4540;
font-weight: 600;
}
html[data-theme="light"] .nav-btn {
color: #5c6560;
font-weight: 500;
}
html[data-theme="light"] .nav-btn.active {
color: #187a47;
font-weight: 700;
}
html[data-theme="light"] .greet-row.hero .greet strong {
color: #145c38;
}
html[data-theme="light"] .health {
color: #187a47;
background: #e8f5ee;
border-color: rgba(24, 122, 71, 0.16);
}
html[data-theme="light"] .health.warn {
color: #8a6424;
background: #f7f0e4;
border-color: rgba(138, 100, 36, 0.18);
}
html[data-theme="light"] .status-row {
background: #fff;
border-color: rgba(20, 26, 22, 0.1);
}
html[data-theme="light"] .status-row .sr-ico {
background: #e8f5ee;
color: #187a47;
}
html[data-theme="light"] .assets-hero {
border-color: rgba(20, 26, 22, 0.1);
}
html[data-theme="light"] .assets-hero .ap-metrics {
gap: .5rem;
}
html[data-theme="light"] .assets-hero .ap-metric {
background: #f3f6f3;
border: 0;
border-radius: 12px;
}
html[data-theme="light"] .assets-hero .ap-meta {
margin-top: .75rem;
padding-top: .75rem;
border-top: 1px solid rgba(20, 26, 22, 0.08);
background: transparent;
}
html[data-theme="light"] .assets-hero .ap-meta-cell {
background: transparent;
border: 0;
padding: .15rem 0;
}

.flash-mask {
position: fixed; inset: 0; z-index: 90;
background: rgba(0,0,0,.48);
display: flex; align-items: flex-end; justify-content: center;
padding: .75rem .75rem 1rem;
}
.flash-mask.hidden { display: none; }
.flash-dialog {
width: min(440px, 100%); max-height: min(86vh, 720px);
overflow: auto; background: var(--panel-solid);
border-radius: 16px 16px 14px 14px;
padding: 1rem 1rem 1.05rem;
box-shadow: var(--glow);
border: 1px solid var(--line);
}
.flash-dialog .fp-hd {
font-size: .98rem; font-weight: 700; color: var(--text); margin: 0 0 .2rem;
}
.flash-dialog .fp-hd-row {
display: flex; align-items: center; justify-content: space-between; gap: .5rem;
margin: 0 0 .2rem;
}
.flash-dialog .fp-hd-row .fp-hd { margin: 0; flex: 1; min-width: 0; }
.flash-dialog .fp-x {
flex-shrink: 0;
border: 0; background: transparent; color: var(--muted); cursor: pointer;
font-size: 1.25rem; line-height: 1; padding: .15rem .35rem; border-radius: 8px;
}
.flash-dialog .fp-x:hover { color: var(--text); background: var(--inset); }
.flash-dialog .fp-hint {
margin: 0 0 .55rem; font-size: .72rem; color: var(--muted); line-height: 1.45;
}
.flash-dialog .fp-actions {
display: flex; gap: .45rem; justify-content: flex-end; margin-top: .7rem; flex-wrap: wrap;
position: sticky; bottom: 0; padding-top: .55rem;
background: linear-gradient(to top, var(--panel-solid) 70%, transparent);
}
.flash-pick {
margin: 0.45rem 0 0.15rem; padding: 0.55rem;
border-radius: 12px; border: 1px solid var(--line); background: var(--inset);
}
.flash-pick-bar {
display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center;
margin-bottom: 0.45rem;
}
.flash-pick-meta { font-size: 0.68rem; color: var(--muted); flex: 1; min-width: 8rem; }
.yb-lottery-fields {
display: grid; gap: .65rem; margin: .55rem 0 .75rem;
}
.yb-lottery-field {
display: grid; gap: .28rem; padding: .65rem .75rem;
border: 1px solid var(--line); border-radius: 12px; background: var(--card-face);
}
.yb-lottery-lab { font-size: .82rem; font-weight: 650; color: var(--text); }
.yb-lottery-field input,
.yb-lottery-field select {
width: 100%; border: 1px solid var(--line-strong); border-radius: 10px;
padding: .55rem .65rem; font: inherit; background: var(--bg); color: var(--text);
}
.yb-lottery-field .hint { font-size: .72rem; color: var(--muted); line-height: 1.35; }
.coupon-check-list {
border: 1px solid var(--line); border-radius: 12px; background: var(--card-face); overflow: hidden;
}
.coupon-check-item {
display: flex; align-items: center; justify-content: space-between; gap: .65rem;
padding: .72rem .75rem; border-top: 1px solid var(--line); font-size: .84rem; color: var(--text);
}
.coupon-check-item:first-child { border-top: 0; }
.coupon-check-item span { flex: 1; min-width: 0; line-height: 1.35; }
#meTaskCfgFields > .coupon-check-item {
border: 1px solid var(--line); border-radius: 12px; background: var(--card-face);
}
.flash-tile-grid {
display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem;
max-height: 42vh; overflow: auto; padding-right: .1rem;
}
.flash-tile {
border: 1px solid var(--line); background: var(--card-face); border-radius: 12px;
padding: .55rem .45rem .5rem; font: inherit; color: var(--text); cursor: pointer;
display: flex; flex-direction: column; align-items: center; gap: .18rem; text-align: center;
min-width: 0;
}
.flash-tile .ft-ico {
width: 36px; height: 36px; border-radius: 10px;
display: grid; place-items: center;
background: rgba(8,166,109,.1); color: var(--accent);
}
.flash-tile .ft-ico svg { width: 20px; height: 20px; }
.flash-tile.tier-svip .ft-ico { background: rgba(212,180,131,.18); color: var(--gold, #c49a4a); }
.flash-tile.tier-vip .ft-ico { background: rgba(8,166,109,.12); color: var(--accent); }
.flash-tile .ft-name {
font-size: .74rem; font-weight: 700; line-height: 1.25;
max-width: 100%; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.flash-tile .ft-sub {
font-size: .62rem; color: var(--muted); line-height: 1.35;
max-width: 100%; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.flash-tile .ft-id { font-size: .6rem; color: var(--warn); font-variant-numeric: tabular-nums; }
.flash-tile.on {
border-color: rgba(8,166,109,.45);
background: var(--accent-dim, rgba(8,166,109,.1));
box-shadow: inset 0 0 0 1px rgba(8,166,109,.15);
}
.flash-tile.on .ft-name { color: var(--accent); }
.flash-empty { padding: 0.7rem; text-align: center; color: var(--muted); font-size: 0.74rem; }
.flash-selected {
margin: 0.15rem 0 0.15rem; padding: 0.5rem 0.55rem;
border-radius: 10px; border: 1px solid rgba(212, 180, 131, 0.3);
background: var(--warn-dim);
}
.flash-selected .fs-title { font-size: 0.68rem; color: var(--muted); margin-bottom: 0.3rem; }
.flash-selected .fs-chips { display: flex; flex-wrap: wrap; gap: 0.28rem; }
.flash-selected .fs-chip {
display: inline-flex; flex-direction: column; gap: 0.08rem;
padding: 0.3rem 0.5rem; border-radius: 8px;
background: rgba(255,255,255,0.04); border: 1px solid var(--line);
font-size: 0.72rem; line-height: 1.3; max-width: 100%;
}
.flash-selected .fs-chip b { font-weight: 600; color: var(--text); }
.flash-selected .fs-chip span { color: var(--muted); font-size: 0.66rem; }
.flash-selected .fs-empty { font-size: 0.72rem; color: var(--muted); }
html[data-theme="light"] .flash-selected .fs-chip { background: rgba(255,255,255,.65); }

/* 店铺预约 */
.store-panel { padding: .85rem .95rem; }
.store-search-row { display: flex; gap: .45rem; margin-bottom: .55rem; }
.store-search-row input { flex: 1; }
.filters {
display: flex; flex-direction: column; gap: .4rem;
margin-bottom: .55rem; padding: .5rem .55rem; border-radius: 12px;
background: var(--inset); border: 1px solid var(--line); font-size: .74rem; color: var(--muted);
}
.filters .group { display: flex; flex-wrap: wrap; gap: .28rem; align-items: center; }
.f-chip {
border: 1px solid var(--line-strong); background: var(--inset-soft); color: var(--muted);
border-radius: 8px; padding: .18rem .42rem; font-size: .7rem; cursor: pointer; line-height: 1.3;
}
.f-chip.active { background: var(--warn-dim); border-color: rgba(212,180,131,0.4); color: var(--gold); }
.f-chip input { display: none; }
.f-seg {
display: flex; width: 100%; border: 1px solid var(--line-strong); border-radius: 9px;
overflow: hidden; background: var(--inset-soft);
}
.f-seg .f-chip {
flex: 1; text-align: center; border: 0; border-radius: 0; border-right: 1px solid var(--line);
padding: .28rem .2rem; background: transparent; min-width: 0;
}
.f-seg .f-chip:last-child { border-right: 0; }
.f-seg .f-chip.active { background: var(--warn-dim); color: var(--gold); font-weight: 600; }
/* 店铺分区卡片（对齐权益「会员专区」） */
.store-zone {
margin-top: .85rem; border: 1px solid var(--line); border-radius: 12px;
background: var(--inset-soft); padding: .55rem .65rem .65rem;
}
.store-loc + .store-zone { margin-top: .65rem; }
.store-zone-hd {
font-size: .78rem; font-weight: 600; color: var(--text); margin: 0 0 .2rem;
display: flex; align-items: baseline; justify-content: space-between; gap: .45rem; flex-wrap: wrap;
}
.store-zone-hd .hint {
font-size: .68rem; font-weight: 500; color: var(--muted);
}
.store-zone > .hint {
margin: 0 0 .45rem; font-size: .72rem; color: var(--muted); line-height: 1.45;
}
.store-zone > .status { margin: .45rem 0 0; }
.store-zone .catalog {
background: var(--card-face); border-color: var(--line);
}
.store-zone .filters {
background: var(--card-face);
}
.store-zone .store-action-bar {
background: var(--card-face); box-shadow: none;
position: static;
}
.store-zone .appoint-list { display: flex; flex-direction: column; gap: .4rem; margin-top: .35rem; }
.store-zone .appoint-card {
margin-top: 0; background: var(--card-face);
}
.store-zone .appoint-pager {
margin-top: .45rem; display: none; align-items: center; gap: .5rem; flex-wrap: wrap;
}
/* 店名定时沿用同一框 */
.kw-zone {
margin-top: .85rem; border: 1px solid var(--line); border-radius: 12px;
background: var(--inset-soft); padding: .55rem .65rem .65rem;
}
.kw-zone-hd {
font-size: .78rem; font-weight: 600; color: var(--text); margin: 0 0 .2rem;
}
.kw-zone > .hint {
margin: 0 0 .45rem; font-size: .72rem; color: var(--muted); line-height: 1.45;
}
.kw-scene-list {
margin: 0 0 .45rem;
padding-left: 1.2rem;
font-size: .72rem;
color: var(--muted);
line-height: 1.55;
}
.kw-scene-list li { margin-bottom: .22rem; }
.kw-scene-list li:last-child { margin-bottom: 0; }
.kw-zone > .status { margin: .45rem 0 0; }
/* 店名定时 · 平台开关：选中绿 / 未选灰（跟主题色） */
.kw-plat { display: inline-flex; flex-wrap: wrap; gap: .28rem; align-items: center; }
.kw-plat .f-chip {
border-radius: 10px; padding: .32rem .7rem; font-size: .74rem; font-weight: 650;
background: var(--card-face); border: 1px solid var(--line-strong); color: var(--muted);
transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.kw-plat .f-chip.active {
background: var(--accent-strong); border-color: transparent; color: #fff;
}
html[data-theme="light"] .kw-plat .f-chip.active { color: #fff; }
.kw-form { display: flex; flex-direction: column; gap: .55rem; margin-top: .15rem; }
.kw-form .kw-row { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.kw-form .kw-lab {
font-size: .78rem; color: var(--muted); min-width: 5.6rem; flex-shrink: 0; font-weight: 600;
}
.kw-form .kw-unit { font-size: .78rem; color: var(--muted); min-width: auto; font-weight: 500; }
.kw-form input[type=search],
.kw-form input[type=text],
.kw-form input[type=datetime-local],
.kw-form input[type=number] {
width: auto;
min-height: 2.35rem;
background: var(--bg);
border: 1px solid var(--line-strong);
color: var(--text);
border-radius: var(--radius-sm, 10px);
padding: 0.45rem 0.7rem;
font: inherit;
box-sizing: border-box;
}
html[data-theme="light"] .kw-form input[type=search],
html[data-theme="light"] .kw-form input[type=text],
html[data-theme="light"] .kw-form input[type=datetime-local],
html[data-theme="light"] .kw-form input[type=number] {
background: #fff;
color-scheme: light;
}
html[data-theme="dark"] .kw-form input[type=search],
html[data-theme="dark"] .kw-form input[type=text],
html[data-theme="dark"] .kw-form input[type=datetime-local],
html[data-theme="dark"] .kw-form input[type=number],
:root:not([data-theme="light"]) .kw-form input[type=datetime-local],
:root:not([data-theme="light"]) .kw-form input[type=number] {
color-scheme: dark;
}
.kw-form input[type=search] { flex: 1; min-width: 10rem; }
.kw-form input[type=datetime-local] { flex: 1; min-width: 11.5rem; max-width: 100%; }
.kw-form .kw-num { width: 4.6rem; flex: 0 0 auto; }
.kw-form .kw-trio {
display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem;
}
.kw-form .kw-cell {
display: flex; flex-direction: column; gap: .28rem; min-width: 0;
}
.kw-form .kw-cell .kw-lab {
min-width: 0; font-size: .72rem; font-weight: 600; color: var(--muted);
}
.kw-form .kw-cell .kw-in {
display: flex; align-items: center; gap: .28rem; min-width: 0;
}
.kw-form .kw-cell .kw-num {
flex: 1; width: auto; min-width: 0; max-width: 100%;
padding: 0.4rem 0.45rem;
}
.kw-form .kw-cell .kw-unit {
font-size: .7rem; flex-shrink: 0;
}
.kw-form .kw-actions {
display: flex; align-items: center; gap: .45rem;
padding-left: 0;
}
.kw-form .kw-actions .btn { min-width: 7rem; min-height: 2.35rem; width: 100%; }
.kw-time-btn {
flex: 1; min-width: 0; width: 100%;
min-height: 2.35rem; text-align: left;
border: 1px solid var(--line-strong); border-radius: var(--radius-sm, 10px);
background: var(--bg); color: var(--text);
font: inherit; font-size: .92rem; font-weight: 600;
padding: .45rem .7rem; cursor: pointer;
}
html[data-theme="light"] .kw-time-btn { background: #fff; }
.kw-time-btn:active { opacity: .88; }
.kw-time-btn .muted { color: var(--muted); font-weight: 500; }

.dt-sheet {
position: fixed; inset: 0; z-index: 120;
display: flex; align-items: flex-end; justify-content: center;
}
/* 定时时间选择叠在定时搜索弹层之上 */
#kwDtSheet {
  z-index: 160;
}
.dt-sheet.hidden { display: none !important; }
.dt-sheet-mask {
position: absolute; inset: 0; background: rgba(0,0,0,.55);
}
.dt-sheet-panel {
position: relative; z-index: 1;
width: min(420px, 100%);
max-height: min(86vh, 640px);
overflow: hidden;
background: var(--panel-solid, #121a14);
color: var(--text);
border-radius: 16px 16px 0 0;
padding: .85rem .9rem .35rem;
box-shadow: 0 -8px 28px rgba(0,0,0,.35);
display: flex; flex-direction: column;
}
.dt-sheet-body {
flex: 1; min-height: 0; overflow: auto;
-webkit-overflow-scrolling: touch;
overscroll-behavior: none;
overscroll-behavior-y: none;
touch-action: pan-y;
}
.dt-sheet:not(.hidden) {
overscroll-behavior: none;
}
body.xc-sheet-scroll-lock {
overflow: hidden;
position: fixed;
width: 100%;
left: 0;
right: 0;
touch-action: none;
}
html.xc-sheet-scroll-lock {
overflow: hidden;
overscroll-behavior: none;
}
body.xc-sheet-scroll-lock .catalog,
body.xc-sheet-scroll-lock .xc-catalog,
body.xc-sheet-scroll-lock .xc-store-page,
body.xc-sheet-scroll-lock #secStore,
body.xc-sheet-scroll-lock #appView {
overflow: hidden !important;
touch-action: none;
overscroll-behavior: none;
}
.dt-sheet-ok {
position: sticky; bottom: 0;
width: 100%; min-height: 2.7rem; margin-top: .55rem;
margin-bottom: calc(.55rem + env(safe-area-inset-bottom, 0px));
border: 0; border-radius: 12px;
background: var(--accent-strong, #2d9a5f); color: #fff;
font: inherit; font-size: 1rem; font-weight: 750; cursor: pointer;
box-shadow: 0 -10px 16px var(--panel-solid, #121a14);
}
html[data-theme="light"] .dt-sheet-panel {
background: #fff; color: #141a16;
}
.dt-sheet-hd {
display: flex; align-items: center; justify-content: space-between;
gap: .5rem; margin-bottom: .65rem;
}
.dt-sheet-hd strong { font-size: 1rem; }
.dt-sheet-hd .ghost {
border: 0; background: transparent; color: var(--muted);
font: inherit; cursor: pointer; padding: .25rem .35rem;
}
.dt-day-row {
display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .65rem;
}
.dt-day-row button {
border: 1px solid var(--line-strong); background: var(--inset-soft, transparent);
color: var(--text); border-radius: 999px; padding: .35rem .7rem;
font: inherit; font-size: .78rem; cursor: pointer;
}
.dt-day-row button.on {
background: var(--accent-strong, #2d9a5f); border-color: transparent; color: #fff; font-weight: 700;
}
.dt-wheels {
display: grid; grid-template-columns: 1fr 1fr; gap: .45rem;
height: 220px; margin-bottom: .55rem;
touch-action: pan-y;
overscroll-behavior: contain;
position: relative;
z-index: 2;
}
.dt-wheel {
position: relative; height: 100%; overflow: hidden;
border-radius: 14px; background: var(--inset-soft, rgba(0,0,0,.18));
touch-action: pan-y;
}
.dt-wheel-scroller {
height: 100%; overflow-y: auto; overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
touch-action: pan-y; scrollbar-width: none;
padding: 88px 0; /* (220-44)/2，选中行居中 */
position: relative;
z-index: 1;
}
.dt-wheel-scroller::-webkit-scrollbar { display: none; }
.dt-wheel-item {
height: 44px; display: flex; align-items: center; justify-content: center;
font-variant-numeric: tabular-nums;
font-size: 1.05rem; font-weight: 600;
color: var(--muted); opacity: .28;
user-select: none; -webkit-user-select: none;
will-change: opacity, transform;
}
.dt-wheel-item.near {
opacity: .55; font-size: 1.22rem; transform: scale(1.02);
}
.dt-wheel-item.on {
opacity: 1; font-size: 1.72rem; font-weight: 800;
color: var(--text); transform: scale(1.06);
}
.dt-wheel-hl {
pointer-events: none; position: absolute; z-index: 2;
left: .45rem; right: .45rem; top: 50%; height: 44px; margin-top: -22px;
border-radius: 10px;
border-top: 1px solid var(--line-strong, rgba(255,255,255,.12));
border-bottom: 1px solid var(--line-strong, rgba(255,255,255,.12));
display: flex; align-items: center; justify-content: flex-end;
padding-right: .85rem;
background: linear-gradient(90deg, transparent, rgba(127,127,127,.06));
}
.dt-wheel-hl .u {
font-size: .78rem; font-weight: 700; color: var(--muted);
}
.dt-wheel::before,
.dt-wheel::after {
content: ""; position: absolute; left: 0; right: 0; height: 72px;
z-index: 3; pointer-events: none;
}
.dt-wheel::before {
top: 0;
background: linear-gradient(to bottom, var(--panel-solid, #121a14) 8%, transparent);
}
.dt-wheel::after {
bottom: 0;
background: linear-gradient(to top, var(--panel-solid, #121a14) 8%, transparent);
}
html[data-theme="light"] .dt-wheel {
background: #f3f4f2;
}
html[data-theme="light"] .dt-wheel::before {
background: linear-gradient(to bottom, #fff 8%, transparent);
}
html[data-theme="light"] .dt-wheel::after {
background: linear-gradient(to top, #fff 8%, transparent);
}
html[data-theme="light"] .dt-wheel-hl {
background: linear-gradient(90deg, transparent, rgba(0,0,0,.03));
}
.dt-quick {
display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .75rem;
}
.dt-quick button {
border: 1px solid var(--line); background: transparent; color: var(--muted);
border-radius: 8px; padding: .28rem .55rem; font: inherit; font-size: .74rem; cursor: pointer;
}
.dt-quick button:active { color: var(--accent); border-color: var(--accent); }
.dt-sheet-ok {
width: 100%; min-height: 2.7rem; border: 0; border-radius: 12px;
background: var(--accent-strong, #2d9a5f); color: #fff;
font: inherit; font-size: 1rem; font-weight: 750; cursor: pointer;
}
.dt-sheet-ok:active { opacity: .9; }
.dt-preview {
margin: 0 0 .65rem; font-size: .82rem; color: var(--muted);
}
.dt-preview b { color: var(--text); font-weight: 700; }
@media (max-width: 320px) {
.kw-form .kw-trio { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
.kw-form .kw-lab { min-width: 4.4rem; font-size: .74rem; }
.kw-form .kw-cell .kw-lab { font-size: .68rem; }
.kw-form .kw-cell .kw-unit { font-size: .64rem; }
.kw-form .kw-cell .kw-num { padding: 0.36rem 0.28rem; font-size: .86rem; }
}
@media (max-width: 720px) {
.kw-zone { margin-top: .55rem; padding: .45rem .55rem .55rem; }
.kw-zone > .hint { margin: 0 0 .3rem; font-size: .68rem; line-height: 1.35; }
.kw-form { gap: .4rem; }
.kw-form .kw-row {
  flex-direction: column;
  align-items: stretch;
  gap: .2rem;
}
.kw-form .kw-lab { min-width: 0; }
.kw-form input[type=search],
.kw-form input[type=datetime-local] {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 2.2rem;
  font-size: 16px; /* 避免 iOS 聚焦放大 */
}
.kw-form .kw-actions {
  position: sticky;
  bottom: calc(var(--nav-h) + env(safe-area-inset-bottom, 0px) + .25rem);
  z-index: 6;
  margin: .05rem 0 .15rem;
  padding: .35rem 0;
  background: var(--inset-soft);
}
.kw-form .kw-actions .btn {
  min-height: 2.55rem;
  font-size: .92rem;
  font-weight: 700;
}
.kw-form .kw-trio { gap: .35rem; }
}
.catalog {
max-height: min(42vh, 360px);
overflow: auto;
background: var(--cardbg);
border-radius: 12px; border: 1px solid #ddd8cc; padding: .45rem;
-webkit-overflow-scrolling: touch;
overscroll-behavior: contain;
touch-action: pan-y;
will-change: scroll-position;
}
@media (min-width: 720px) {
.catalog {
  max-height: min(58vh, 560px);
}
}
/* 店铺页 · 小蚕风格 */
.xc-store-page {
--xc-orange: #ff7a00;
--xc-orange-dim: rgba(255, 122, 0, 0.12);
padding: 0 .65rem 5.5rem;
}
.xc-store-loc-wrap { position: relative; margin-bottom: .5rem; }
.xc-store-headrow {
display: flex; align-items: center; gap: .45rem;
}
.xc-loc-pill {
display: flex; align-items: center; gap: .2rem; flex: 1; min-width: 0;
max-width: 100%; border: 0; background: transparent;
padding: .35rem 0; font: inherit; text-align: left; cursor: pointer; color: var(--text);
}
.xc-loc-pill:active { opacity: .85; }
.xc-loc-drop {
position: absolute; left: 0; right: 0; top: 100%; z-index: 55;
margin-top: .2rem;
}
.xc-loc-drop.hidden { display: none !important; }
.xc-loc-drop-panel {
background: #fff; color: var(--text);
border: 1px solid rgba(20, 26, 22, 0.1);
border-radius: 12px; padding: .7rem .75rem .75rem;
box-shadow: 0 8px 28px rgba(20, 26, 22, 0.14);
}
html[data-theme="dark"] .xc-loc-drop-panel,
:root:not([data-theme="light"]) .xc-loc-drop-panel {
background: var(--panel2); border-color: var(--line);
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
}
.xc-loc-drop-hd {
display: flex; align-items: center; justify-content: space-between;
gap: .5rem; margin-bottom: .45rem;
}
.xc-loc-drop-hd strong { font-size: .88rem; font-weight: 700; }
.xc-loc-drop-actions {
display: flex; align-items: center; gap: .25rem; flex-shrink: 0;
}
.xc-loc-drop-hd .ghost,
.loc-panel-hd .ghost {
border: 0; background: transparent; color: var(--muted);
font: inherit; font-size: .74rem; cursor: pointer; padding: .2rem .3rem;
}
.xc-loc-clear { color: #c45c5c !important; }
html[data-theme="dark"] .xc-loc-clear,
:root:not([data-theme="light"]) .xc-loc-clear {
color: #f0a0a0 !important;
}
.xc-store-tabs .xc-switch.hidden { display: none !important; }
.xc-search-inline {
flex: 1; min-width: 0;
}
.store-promo-zone {
margin: .5rem 0 .55rem;
}
.xc-promo-scroll {
display: flex;
flex-direction: row;
align-items: flex-start;
justify-content: space-between;
gap: .35rem;
width: 100%;
overflow-x: visible;
scrollbar-width: none;
}
.store-promo-zone .xc-promo-scroll {
margin: 0; padding: .2rem 0 0;
}
.xc-promo-scroll::-webkit-scrollbar { display: none; }
/* 点单卡券：同行风 图标+文字+数量 胶囊 */
.xc-coupon-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: .4rem .45rem;
width: 100%;
margin: .15rem 0 0;
}
.xc-coupon-chip {
display: flex;
align-items: center;
gap: .38rem;
min-width: 0;
padding: .42rem .58rem .42rem .48rem;
border-radius: 999px;
background: var(--inset, #f1f3f2);
border: 1px solid var(--line, rgba(20, 26, 22, 0.06));
box-sizing: border-box;
}
.xc-coupon-ico {
flex: 0 0 auto;
width: 1.55rem;
height: 1.55rem;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: #fff;
box-shadow: 0 1px 3px rgba(20, 26, 22, 0.08);
}
.xc-coupon-ico svg { display: block; }
.xc-coupon-lab {
flex: 1 1 auto;
min-width: 0;
font-size: .72rem;
font-weight: 650;
color: var(--muted);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.xc-coupon-n {
flex: 0 0 auto;
font-size: .95rem;
font-weight: 800;
line-height: 1;
font-variant-numeric: tabular-nums;
color: #ff5a3c;
min-width: 1.1em;
text-align: right;
}
.xc-coupon-n.is-muted { color: var(--muted); font-weight: 700; }
html[data-theme="dark"] .xc-coupon-chip,
:root:not([data-theme="light"]) .xc-coupon-chip {
background: var(--panel2);
border-color: rgba(255, 255, 255, 0.06);
}
html[data-theme="dark"] .xc-coupon-ico,
:root:not([data-theme="light"]) .xc-coupon-ico { background: var(--panel); }
.xc-promo {
flex: 1 1 0; min-width: 0; max-width: 4.6rem;
display: flex; flex-direction: column; align-items: center; gap: .22rem;
border: 0; background: transparent; padding: .15rem .1rem; cursor: pointer;
font: inherit; color: var(--text);
}
.xc-promo:active { opacity: .85; }
.xc-promo-ico {
width: 2.5rem; height: 2.5rem; border-radius: 12px;
display: flex; align-items: center; justify-content: center;
font-size: 1.15rem; background: #fff;
box-shadow: 0 1px 6px rgba(20, 26, 22, 0.06);
position: relative;
}
.xc-promo-ico.mt {
background: linear-gradient(180deg, #fff9e8 0%, #fff 62%);
overflow: visible;
}
.xc-promo-badge {
position: absolute; top: -.2rem; right: -.42rem; z-index: 2;
background: linear-gradient(90deg, #ff6a5f 0%, #ff3b30 100%);
color: #fff; font-size: .46rem; padding: .1rem .24rem;
border-radius: 999px; white-space: nowrap; font-weight: 700;
line-height: 1.15; box-shadow: 0 1px 4px rgba(255, 59, 48, .32);
transform: scale(.9); transform-origin: top right;
}
.xc-promo-char {
font-size: 1.12rem; font-weight: 800; line-height: 1;
font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
overflow: visible;
}
.xc-promo-char.me {
background: linear-gradient(180deg, #fff9e8 0%, #ffe566 100%);
color: #c48a00;
}
.xc-promo-char.tuan {
background: linear-gradient(180deg, #ff9a5c 0%, #e8476f 100%);
color: #fff;
}
.xc-promo-char.zhen {
background: linear-gradient(180deg, #ffe9b8 0%, #ff9f43 100%);
color: #9a5a00;
}
.xc-promo-char.shen {
background: linear-gradient(180deg, #ffb8d0 0%, #e83855 100%);
color: #fff;
}
.xc-promo-char.wy {
background: linear-gradient(180deg, #ffe4e0 0%, #e03a3a 100%);
color: #fff;
}
.netease-guide-dialog { max-width: min(420px, 100%); }
.netease-guide-img-wrap {
margin: .35rem 0 .15rem; border-radius: 12px; overflow: hidden;
border: 1px solid var(--line); background: var(--inset);
}
.netease-guide-img-wrap img {
display: block; width: 100%; height: auto; vertical-align: top;
}
.netease-guide-actions { justify-content: stretch; }
.netease-guide-actions .btn { flex: 1; }
html[data-theme="dark"] .xc-promo-ico,
:root:not([data-theme="light"]) .xc-promo-ico { background: var(--panel2); }
.xc-promo-lab { font-size: .64rem; color: var(--muted); white-space: nowrap; font-weight: 600; }
#storeFabWrap {
right: 1rem;
bottom: calc(4.2rem + env(safe-area-inset-bottom, 0px));
display: flex;
flex-direction: column;
gap: .7rem;
align-items: flex-end;
padding: 0;
background: transparent !important;
border: none !important;
box-shadow: none !important;
}
#storeFabWrap .acc-fab.acc-fab-assets {
flex-direction: row;
align-items: stretch;
justify-content: flex-start;
gap: .38rem;
min-width: 0;
width: auto;
min-height: 3.25rem;
padding: .48rem .52rem .48rem .48rem;
border-radius: 16px;
line-height: 1;
}
#storeFabWrap .store-fab-slot { display: block; }
#storeFabWrap .store-fab-mark {
width: 3rem;
min-height: 3rem;
border-radius: 12px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: .68rem;
font-weight: 800;
line-height: 1.1;
letter-spacing: -.02em;
flex-shrink: 0;
text-align: center;
}
#storeFabWrap .store-fab-mark span { display: block; }
#storeFabWrap .acc-fab-sub {
margin: 0;
min-width: 1.4rem;
min-height: 2.35rem;
padding: .3rem .22rem;
border-radius: 999px;
font-size: .64rem;
font-weight: 700;
line-height: 1.15;
writing-mode: vertical-rl;
text-orientation: upright;
display: flex;
align-items: center;
justify-content: center;
letter-spacing: .02em;
flex-shrink: 0;
}
#storeFabWrap .acc-fab.store-fab-appoint.has-pick .acc-fab-sub {
background: var(--accent-dim);
color: var(--accent);
}
#storeFabWrap .acc-fab.store-fab-appoint.has-pick .store-fab-mark {
background: var(--accent-strong) !important;
color: #fff !important;
}
.store-queue-hd-ops {
  display: flex;
  align-items: center;
  gap: .25rem;
}
#storeQueueViewSwitch {
  margin: 0 0 .65rem;
}
#storeQueueSheet .dt-sheet-panel {
  max-height: min(90vh, 720px);
}
.xc-store-top { margin-bottom: .55rem; }
.xc-loc-btn {
display: flex; align-items: center; gap: .25rem; width: 100%;
border: 0; background: transparent; padding: .15rem 0 .45rem;
font: inherit; text-align: left; cursor: pointer; color: var(--text);
}
.xc-loc-btn:active { opacity: .85; }
.xc-pin { font-size: .95rem; line-height: 1; }
.xc-loc-name {
flex: 1; min-width: 0; font-size: .88rem; font-weight: 650;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xc-loc-name.warn { color: var(--danger-soft); }
.xc-loc-go { color: var(--muted); font-size: 1rem; font-weight: 500; }
.xc-search-bar {
display: flex; align-items: center; gap: .35rem;
background: var(--ui-surface); border: 1px solid var(--line-strong);
border-radius: 999px; padding: .28rem .28rem .28rem .65rem;
box-shadow: var(--glow);
}
.xc-search-ico { font-size: .85rem; opacity: .55; flex-shrink: 0; }
.xc-search-bar input {
flex: 1; min-width: 0; border: 0; background: transparent;
font: inherit; font-size: .86rem; color: var(--text); outline: none;
}
.xc-search-btn {
flex-shrink: 0; border: 0; border-radius: 999px;
background: var(--accent-strong); color: #fff;
font: inherit; font-size: .82rem; font-weight: 700;
padding: .42rem .85rem; cursor: pointer;
}
.xc-search-btn:active { opacity: .88; }
.xc-catalog-refresh-btn {
flex-shrink: 0;
min-height: 2rem;
padding: .42rem .9rem;
line-height: 1.2;
}
.xc-store-tabs {
display: flex; align-items: center; gap: .55rem;
margin-bottom: .45rem; border-bottom: 1px solid var(--line);
padding-bottom: .4rem; flex-wrap: nowrap;
overflow-x: auto; -webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.xc-store-tabs::-webkit-scrollbar { display: none; }
.xc-store-tabs .xc-stab { flex: 0 0 auto; white-space: nowrap; }
/* 店铺 Tab + 筛选条：上滑后吸顶（定位/福利区滚走，筛选始终可见） */
.xc-store-sticky-head {
position: -webkit-sticky;
position: sticky;
top: var(--topbar-h);
z-index: 28;
margin: 0 -.65rem .35rem;
padding: 0 .65rem .38rem;
background: var(--bg);
border-bottom: 1px solid var(--line);
box-shadow: 0 6px 18px rgba(20, 26, 22, 0.06);
}
html[data-theme="dark"] .xc-store-sticky-head,
:root:not([data-theme="light"]) .xc-store-sticky-head {
box-shadow: 0 8px 22px rgba(0, 0, 0, 0.32);
}
.xc-store-sticky-head .xc-store-tabs {
margin-bottom: 0;
border-bottom: 0;
padding-bottom: .32rem;
}
.xc-store-sticky-filters { padding-bottom: .08rem; }
.xc-store-sticky-head .xc-chip-scroll {
margin: 0 -.65rem 0;
padding: 0 .65rem .12rem;
}
#secStore[data-store-tab="kw"] .xc-store-sticky-filters,
#secStore[data-store-tab="stock"] .xc-store-sticky-filters,
#secStore[data-store-tab="watchlog"] .xc-store-sticky-filters { display: none; }
#secStore[data-store-tab="kw"] .xc-store-catalog-search,
#secStore[data-store-tab="stock"] .xc-store-catalog-search,
#secStore[data-store-tab="watchlog"] .xc-store-catalog-search { display: none; }
#secStore[data-store-tab="kw"] .xc-store-sticky-head,
#secStore[data-store-tab="stock"] .xc-store-sticky-head,
#secStore[data-store-tab="watchlog"] .xc-store-sticky-head {
margin-bottom: .45rem;
padding-bottom: .32rem;
}
.xc-store-catalog-search {
display: flex;
align-items: center;
gap: .35rem;
margin-top: .12rem;
padding-bottom: .06rem;
}
.xc-store-catalog-search input {
flex: 1;
min-width: 0;
min-height: 2.15rem;
padding: .42rem .85rem;
border: 1px solid var(--line-strong);
border-radius: 999px;
background: var(--inset-soft);
font: inherit;
font-size: .82rem;
color: var(--text);
box-shadow: none;
}
.xc-store-catalog-search input::placeholder { color: var(--muted); opacity: .85; }
.xc-store-catalog-search input:focus {
outline: none;
border-color: color-mix(in srgb, var(--accent) 45%, transparent);
}
.xc-store-search-clear {
flex-shrink: 0;
width: 2rem;
height: 2rem;
border: 1px solid var(--line);
border-radius: 50%;
background: var(--inset-soft);
color: var(--muted);
font: inherit;
font-size: 1.15rem;
line-height: 1;
cursor: pointer;
padding: 0;
}
.xc-store-search-clear.hidden { display: none !important; }
@media (max-width: 720px) {
.xc-store-catalog-search input { font-size: 16px; }
}
.xc-adv-sub-scroll {
display: flex; align-items: center; gap: .85rem;
overflow-x: auto; -webkit-overflow-scrolling: touch;
margin: 0 -.65rem .35rem; padding: 0 .65rem .2rem;
scrollbar-width: none;
border-bottom: 1px solid var(--line);
}
.xc-adv-sub-scroll::-webkit-scrollbar { display: none; }
.xc-adv-sub-scroll.hidden { display: none !important; }
.xc-adv-sub-scroll .xc-cate {
flex: 0 0 auto;
}
.xc-stab {
border: 0; background: transparent; padding: .25rem 0 .35rem;
font: inherit; font-size: .88rem; font-weight: 600; color: var(--muted);
cursor: pointer; position: relative; white-space: nowrap;
}
.xc-stab.on { color: var(--text); font-weight: 750; }
.xc-stab.on::after {
content: ""; position: absolute; left: 0; right: 0; bottom: -.41rem;
height: 2px; border-radius: 2px; background: var(--xc-orange);
}
.xc-stab-brand {
padding: .18rem .45rem .22rem !important;
border-radius: 999px; background: linear-gradient(90deg, #ff5a5a, #ff2d55);
color: #fff !important; font-size: .72rem !important; font-weight: 750;
}
.xc-stab-brand.on { color: #fff !important; }
.xc-stab-brand.on::after { display: none; }
.xc-stab-brand:not(.on) { opacity: .88; }
.xc-switch {
margin-left: auto; display: inline-flex; align-items: center; gap: .35rem;
font-size: .72rem; color: var(--muted); cursor: pointer; user-select: none;
white-space: nowrap;
}
.xc-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.xc-switch i {
width: 36px; height: 20px; border-radius: 999px;
background: #d8d5ce; position: relative; transition: background .15s ease;
flex-shrink: 0;
}
.xc-switch i::after {
content: ""; position: absolute; top: 2px; left: 2px;
width: 16px; height: 16px; border-radius: 50%; background: #fff;
box-shadow: 0 1px 3px rgba(0,0,0,.18); transition: transform .15s ease;
}
.xc-switch input:checked + i { background: var(--xc-orange); }
.xc-switch input:checked + i::after { transform: translateX(16px); }
.xc-hidden-chip { position: absolute !important; width: 1px !important; height: 1px !important;
overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important;
border: 0 !important; padding: 0 !important; margin: -1px !important; }
.xc-filter-store {
position: absolute !important; width: 1px !important; height: 1px !important;
overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important;
border: 0 !important; padding: 0 !important; margin: -1px !important;
}
.xc-sort-btn, .xc-filter-btn {
border: 1px solid var(--line-strong); background: var(--ui-surface); color: var(--muted);
border-radius: 999px; padding: .28rem .55rem; font-size: .72rem; cursor: pointer;
font: inherit; white-space: nowrap; flex-shrink: 0;
}
.xc-sort-btn.on, .xc-filter-btn.on, .xc-filter-btn[aria-expanded="true"] {
background: var(--accent-dim); border-color: color-mix(in srgb, var(--accent) 35%, transparent);
color: var(--accent); font-weight: 650;
}
.xc-sort-pop {
position: fixed;
z-index: 220;
top: 0;
left: 0;
margin-top: 0;
background: var(--ui-surface); border: 1px solid var(--line); border-radius: 12px;
box-shadow: 0 10px 32px rgba(0, 0, 0, 0.16);
padding: .35rem;
display: flex; flex-direction: column; gap: .15rem; min-width: 7.5rem;
}
.xc-sort-pop.hidden { display: none !important; }
.xc-sort-pop button {
border: 0; background: transparent; text-align: left; padding: .45rem .65rem;
font: inherit; font-size: .78rem; border-radius: 8px; cursor: pointer; color: var(--text);
}
.xc-sort-pop button:active, .xc-sort-pop button.on { background: var(--accent-dim); color: var(--accent); }
.xc-filter-sheet {
position: fixed; inset: 0; z-index: 80; display: flex; flex-direction: column; justify-content: flex-end;
}
.xc-filter-sheet.hidden { display: none !important; }
.xc-filter-mask { position: absolute; inset: 0; background: rgba(0,0,0,.4); }
.xc-filter-panel {
position: relative; z-index: 1; background: var(--ui-surface); border-radius: 16px 16px 0 0;
padding: .85rem .9rem calc(.85rem + env(safe-area-inset-bottom, 0px));
max-height: min(70vh, 520px); overflow: auto;
box-shadow: var(--glow);
color: var(--text);
}
.xc-fg { margin-bottom: .85rem; }
.xc-fg-title { font-size: .78rem; font-weight: 650; color: var(--text); margin-bottom: .45rem; }
.xc-fg-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.xc-ftag {
border: 1px solid var(--line-strong); border-radius: 10px; padding: .42rem .7rem;
font: inherit; font-size: .74rem; color: var(--muted);
background: var(--inset-soft); cursor: pointer;
}
.xc-ftag.on {
background: var(--accent-dim); color: var(--accent); font-weight: 700;
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
box-shadow: none;
}
.xc-filter-actions {
display: flex; gap: .55rem; margin-top: .35rem;
}
.xc-f-reset {
flex: 1; border: 1px solid var(--line-strong); border-radius: 12px;
background: var(--ui-surface); color: var(--text); font: inherit; font-size: .9rem; font-weight: 650;
padding: .7rem; cursor: pointer;
}
.xc-f-ok {
flex: 1.4; border: 0; border-radius: 12px;
background: var(--accent-strong);
color: #fff; font: inherit; font-size: .9rem; font-weight: 750;
padding: .7rem; cursor: pointer;
}
.xc-cate-scroll {
display: flex; gap: .55rem; overflow-x: auto; -webkit-overflow-scrolling: touch;
margin: 0 -.65rem .35rem; padding: 0 .65rem .1rem;
scrollbar-width: none;
}
.xc-cate-scroll::-webkit-scrollbar { display: none; }
.xc-cate {
flex-shrink: 0; border: 0; background: transparent; padding: .2rem .1rem .35rem;
font: inherit; font-size: .82rem; color: var(--muted); cursor: pointer;
position: relative; white-space: nowrap; font-weight: 600;
}
.xc-cate.on { color: var(--xc-orange); font-weight: 750; }
.xc-cate.on::after {
content: ""; position: absolute; left: 10%; right: 10%; bottom: 0;
height: 2px; border-radius: 2px; background: var(--xc-orange);
}
.xc-qf-chip.on {
color: var(--xc-orange);
border-color: rgba(255, 140, 60, 0.45);
background: rgba(255, 140, 60, 0.08);
font-weight: 700;
}
#secStore[data-store-tab="kw"] .xc-cate-scroll,
#secStore[data-store-tab="stock"] .xc-cate-scroll,
#secStore[data-store-tab="watchlog"] .xc-cate-scroll { display: none; }
.xc-funnel { display: inline-block; margin-right: .15rem; font-size: .7rem; transform: scaleX(1.1); }
.xc-filter-btn.on, .xc-filter-btn[aria-expanded="true"] { color: var(--xc-orange); }
.xc-title-row {
display: flex; align-items: flex-start; justify-content: space-between; gap: .4rem;
}
.xc-title-row .xc-shop-main { flex: 1; min-width: 0; }
.xc-title-row .xc-shop-title { flex: none; min-width: 0; }
.xc-title-row .xc-act-tools {
flex: 0 0 auto; width: 4.6rem; max-width: 4.6rem;
}
.xc-dist-right {
flex-shrink: 0; font-size: .72rem; color: var(--muted); padding-top: .12rem; white-space: nowrap;
}
.xc-chip-scroll {
overflow-x: auto; overflow-y: visible; -webkit-overflow-scrolling: touch;
margin: 0 -.65rem .4rem; padding: 0 .65rem .15rem;
scrollbar-width: none; position: relative; z-index: 60;
}
.xc-sort-btn, .xc-filter-btn { touch-action: manipulation; }
.xc-chip-scroll::-webkit-scrollbar { display: none; }
.xc-filters.filters {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
gap: .32rem;
align-items: center;
margin: 0;
padding: 0;
border: 0;
background: transparent;
width: max-content;
max-width: none;
min-width: 0;
}
.xc-sort-wrap { position: relative; flex-shrink: 0; }
.xc-filters .f-chip {
flex-shrink: 0; border-radius: 999px; padding: .28rem .55rem;
font-size: .72rem; white-space: nowrap;
background: var(--ui-surface); border-color: var(--line-strong); color: var(--muted);
}
.xc-filters .f-chip.active {
background: var(--accent-dim);
border-color: color-mix(in srgb, var(--accent) 35%, transparent);
color: var(--accent); font-weight: 650;
}
.xc-catalog-meta {
margin: 0 0 .35rem; font-size: .68rem; color: var(--muted);
}
#secStore[data-store-tab="kw"] #storeBrowsePanel,
#secStore[data-store-tab="kw"] #storeSearchPanel,
#secStore[data-store-tab="stock"] #storeBrowsePanel,
#secStore[data-store-tab="stock"] #storeSearchPanel,
#secStore[data-store-tab="watchlog"] #storeBrowsePanel,
#secStore[data-store-tab="watchlog"] #storeSearchPanel {
display: none !important;
}
#secStore[data-store-tab="kw"] #storeKwPanel {
display: block !important;
}
#secStore[data-store-tab="stock"] #storeStockPanel {
display: block !important;
}
#secStore[data-store-tab="watchlog"] #storeWatchLogPanel {
display: block !important;
}
#secStore[data-store-tab="kw"] .xc-store-tabs .xc-switch,
#secStore[data-store-tab="stock"] .xc-store-tabs .xc-switch,
#secStore[data-store-tab="watchlog"] .xc-store-tabs .xc-switch {
display: none !important;
}
#secStore[data-store-tab="kw"] #storePromoZone,
#secStore[data-store-tab="stock"] #storePromoZone,
#secStore[data-store-tab="watchlog"] #storePromoZone {
display: none !important;
}
#secStore[data-store-tab="order"] .xc-store-sticky-filters { display: none; }
#secStore[data-store-tab="order"] .xc-store-catalog-search { display: none; }
#secStore[data-store-tab="order"] .xc-store-sticky-head {
position: sticky; top: 0; z-index: 30; background: var(--bg);
}
#secStore[data-store-tab="order"] .xc-cate-scroll { display: none; }
#secStore[data-store-tab="order"] #storeBrowsePanel,
#secStore[data-store-tab="order"] #storeSearchPanel,
#secStore[data-store-tab="order"] #storeKwPanel,
#secStore[data-store-tab="order"] #storeStockPanel,
#secStore[data-store-tab="order"] #storeWatchLogPanel {
display: none !important;
}
#secStore[data-store-tab="order"] #storeOrderPanel {
display: block !important;
}
#secStore[data-store-tab="order"] .xc-store-tabs .xc-switch {
display: none !important;
}
#secStore[data-store-tab="order"] #storePromoZone {
display: none !important;
}
.order-zone { padding: .15rem 0 1.2rem; }
.order-zone-hd {
font-size: .95rem; font-weight: 750; color: var(--text); margin: .2rem 0 .45rem;
}
.order-tip {
display: flex; align-items: flex-start; gap: .35rem;
margin: 0 0 .5rem; font-size: .88rem; font-weight: 750; line-height: 1.35;
color: #3ee0c5;
}
.order-tip-ico { flex: 0 0 auto; font-size: 1.05rem; line-height: 1.2; }
.order-tip-txt { flex: 1; min-width: 0; }
html[data-theme="light"] .order-tip { color: #0b8f7a; }
.order-hint {
margin: 0 0 .75rem; padding: .55rem .65rem; border-radius: 10px;
background: color-mix(in srgb, #ff7a00 10%, var(--inset-soft));
border: 1px solid color-mix(in srgb, #ff7a00 22%, transparent);
font-size: .72rem; line-height: 1.45; color: var(--muted);
}
.order-list { display: flex; flex-direction: column; gap: .65rem; }
.order-card {
background: var(--card-face); border: 1px solid var(--line); border-radius: 14px;
padding: .75rem .8rem .8rem; box-shadow: var(--glow);
}
.order-card-hd {
display: flex; align-items: center; justify-content: space-between; gap: .5rem;
font-size: .7rem; color: var(--muted); margin-bottom: .5rem;
}
.order-card-hd b { color: var(--text); font-weight: 650; word-break: break-all; }
.order-st { color: var(--xc-orange); font-weight: 700; white-space: nowrap; }
.order-main { display: flex; gap: .55rem; align-items: flex-start; }
.order-ico {
width: 52px; height: 52px; border-radius: 10px; object-fit: cover;
background: var(--inset); flex-shrink: 0;
}
.order-ico-ph {
width: 52px; height: 52px; border-radius: 10px; background: var(--inset);
display: flex; align-items: center; justify-content: center;
color: var(--muted); font-weight: 700; flex-shrink: 0;
}
.order-info { flex: 1; min-width: 0; }
.order-title-row { display: flex; align-items: flex-start; gap: .4rem; }
.order-title {
font-size: .9rem; font-weight: 750; line-height: 1.35; color: var(--text);
display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.order-tags { display: flex; flex-wrap: wrap; gap: .28rem; margin-top: .32rem; align-items: center; }
.order-tag {
display: inline-flex; align-items: center; border-radius: 6px;
padding: .06rem .32rem; font-size: .68rem; font-weight: 700;
color: var(--xc-orange); background: var(--xc-orange-dim);
border: 1px solid rgba(255, 122, 0, 0.35);
}
.order-tag-st {
  color: #7ec98a;
  background: rgba(126, 200, 154, 0.12);
  border-color: rgba(126, 200, 154, 0.4);
}
.order-tag-brand {
  color: #f0b429;
  background: rgba(240, 180, 41, 0.14);
  border-color: rgba(240, 180, 41, 0.45);
}
.order-meta { margin-top: .28rem; font-size: .7rem; color: var(--muted); line-height: 1.4; }
.order-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .42rem .7rem;
  margin-top: .65rem;
  padding: .55rem .6rem;
  border-radius: 10px;
  background: var(--inset-soft, var(--inset));
  border: 1px solid var(--line);
}
.order-kv { display: flex; flex-direction: column; gap: .12rem; min-width: 0; }
.order-kv-wide { grid-column: 1 / -1; }
.order-k { font-size: .68rem; color: var(--muted); font-weight: 600; }
.order-v { font-size: .8rem; color: var(--text); line-height: 1.35; word-break: break-all; }
.order-v-accent { color: var(--xc-orange); font-weight: 750; font-size: .88rem; }
.order-mono { font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.order-remain {
  display: inline-block; margin-left: .35rem; font-style: normal;
  font-size: .68rem; font-weight: 650; color: var(--xc-orange);
}
.order-actions-bar {
  display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; align-items: stretch;
}
.order-actions-bar .btn {
  flex: 1 1 0;
  min-width: 0;
  min-height: 2.15rem;
  font-size: .78rem;
  font-weight: 750;
  border-radius: 10px;
  border-width: 1.5px;
  border-style: solid;
  padding: .45rem .35rem;
}
.order-actions-bar .order-btn-edit {
  color: #fff;
  background: linear-gradient(165deg, #ff9833, #ff7a00);
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(255, 122, 0, 0.28);
}
.order-actions-bar .order-btn-edit:active {
  filter: brightness(0.94);
}
.order-actions-bar .btn-manual {
  color: #ffb05c;
  background: rgba(255, 122, 0, 0.16);
  border-color: rgba(255, 176, 92, 0.55);
}
.order-actions-bar .btn-manual.is-open,
.order-actions-bar .btn-manual:disabled {
  opacity: 1;
  cursor: not-allowed;
  color: #9aa89a;
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.14);
}
.order-actions-bar .order-btn-danger {
  color: #ffc4bc;
  background: rgba(200, 80, 70, 0.22);
  border-color: rgba(232, 130, 120, 0.55);
}
.order-actions-bar .order-btn-rereport {
  color: #ffe0a8;
  background: rgba(255, 180, 60, 0.18);
  border-color: rgba(255, 196, 110, 0.55);
}
.order-actions-bar .order-btn-rereport:active {
  filter: brightness(0.94);
}
html[data-theme="light"] .order-actions-bar .order-btn-edit {
  color: #fff;
  background: linear-gradient(165deg, #ff9833, #ff7a00);
}
html[data-theme="light"] .order-actions-bar .btn-manual {
  color: #d96500;
  background: rgba(255, 122, 0, 0.12);
  border-color: rgba(217, 101, 0, 0.4);
}
html[data-theme="light"] .order-actions-bar .order-btn-danger {
  color: #c44a3e;
  background: rgba(200, 80, 70, 0.1);
  border-color: rgba(196, 74, 62, 0.4);
}
html[data-theme="light"] .order-actions-bar .order-btn-rereport {
  color: #b86a00;
  background: rgba(255, 180, 60, 0.16);
  border-color: rgba(184, 106, 0, 0.4);
}
.order-form { margin-top: .55rem; display: flex; flex-direction: column; gap: .4rem; }
.order-form.hidden { display: none !important; }
.order-form label { font-size: .72rem; color: var(--muted); font-weight: 600; }
.order-form input {
width: 100%; box-sizing: border-box; border: 1px solid var(--line-strong);
border-radius: 10px; padding: .55rem .65rem; font: inherit; font-size: .88rem;
background: var(--ui-surface); color: var(--text);
}
.order-form-actions { display: flex; gap: .45rem; align-items: center; margin-top: .15rem; flex-wrap: wrap; }
.order-form-actions .btn { flex: 1 1 auto; min-width: 0; }
.order-card-actions .btn-ghost-order {
  background: transparent;
  border-color: var(--line-strong);
  color: var(--text);
}
.order-card-actions .btn-manual {
  background: rgba(255, 122, 0, 0.08);
  border-color: rgba(255, 122, 0, 0.45);
  color: var(--xc-orange);
}
.order-card-actions .btn-manual.is-open,
.order-card-actions .btn-manual:disabled {
  opacity: .62;
  cursor: not-allowed;
  background: var(--inset);
  border-color: var(--line);
  color: var(--muted);
}
.order-card > .status { margin: .4rem 0 0; font-size: .72rem; }
.order-toolbar { display: flex; gap: .45rem; margin: 0 0 .65rem; }
.order-toolbar .btn { flex: 1; }

.xc-store-page .catalog {
max-height: none; overflow: visible;
background: transparent; border: 0; padding: 0;
overscroll-behavior: auto; touch-action: auto;
position: relative; z-index: 1;
}
.xc-shop-card {
display: block; background: var(--card-face); border-radius: 12px;
padding: .5rem .55rem .45rem; margin-bottom: .4rem;
border: 1px solid var(--line);
box-shadow: var(--glow);
contain-intrinsic-size: auto 110px;
color: var(--text);
}
.xc-shop-idx {
position: absolute; left: 0; top: 0; z-index: 2;
min-width: 1.05rem; height: 1.05rem; padding: 0 .22rem;
border-radius: 0 0 7px 0;
display: inline-flex; align-items: center; justify-content: center;
font-size: .58rem; font-weight: 750; line-height: 1;
color: #fff; background: rgba(79, 70, 229, 0.92);
border: 0;
}
html[data-theme="light"] .xc-shop-idx {
color: #fff; background: rgba(79, 70, 229, 0.88);
border-color: transparent;
}
.xc-shop-head { display: flex; gap: .5rem; align-items: flex-start; }
.xc-shop-head + .xc-shop-offers { margin-top: .35rem; }
.xc-shop-logo {
width: 48px; height: 48px; border-radius: 10px;
background: var(--inset-soft); flex-shrink: 0; position: relative; overflow: hidden;
}
.xc-shop-logo img { width: 100%; height: 100%; object-fit: cover; }
.xc-logo-ph {
display: flex; align-items: center; justify-content: center;
width: 100%; height: 100%; font-size: 1.4rem; font-weight: 700;
color: var(--muted); background: var(--inset);
}
.xc-brand-tag {
position: absolute; left: 0; bottom: 0; z-index: 1;
background: linear-gradient(135deg, #3d3428, #5a4a38); color: #fff7ed;
font-size: .52rem; padding: .04rem .22rem; border-radius: 0 6px 0 0; font-weight: 700;
}
.xc-logo-new {
position: absolute; top: 0; right: 0; z-index: 2;
background: #22c55e; color: #fff;
font-size: .52rem; line-height: 1.2; padding: .06rem .2rem;
border-radius: 0 0 0 6px; font-weight: 700; letter-spacing: .02em;
}
.xc-shop-info { flex: 1; min-width: 0; }
.xc-shop-title {
font-size: .84rem; font-weight: 750; line-height: 1.25; color: var(--text);
display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
overflow: hidden; word-break: break-word;
}
.xc-tag-new {
display: inline-flex; margin-left: .28rem; vertical-align: middle;
font-size: .58rem; font-weight: 700; color: #2a8a52;
border: 1px solid rgba(42, 138, 82, 0.35); background: #f0faf4;
border-radius: 4px; padding: .02rem .22rem;
}
.xc-tag-rate {
display: inline-flex; align-items: center; justify-content: center;
margin: 0; vertical-align: middle;
font-size: .58rem; font-weight: 700; color: #b45309;
border: 1px solid rgba(180, 83, 9, 0.35); background: #fff7ed;
border-radius: 4px; padding: .02rem .22rem;
white-space: nowrap;
}
.xc-tag-rate-ok {
color: #15803d;
border-color: rgba(21, 128, 61, 0.4);
background: #ecfdf5;
}
.xc-tag-rate-sold {
color: #be123c;
border-color: rgba(190, 18, 60, 0.4);
background: #fff1f2;
}
.xc-dist-col .xc-tag-rate { margin-top: .02rem; }
html[data-theme="dark"] .xc-tag-rate,
:root:not([data-theme="light"]) .xc-tag-rate {
color: #fbbf24; border-color: rgba(251, 191, 36, 0.4);
background: rgba(251, 191, 36, 0.12);
}
html[data-theme="dark"] .xc-tag-rate-ok,
:root:not([data-theme="light"]) .xc-tag-rate-ok {
color: #4ade80; border-color: rgba(74, 222, 128, 0.45);
background: rgba(74, 222, 128, 0.12);
}
html[data-theme="dark"] .xc-tag-rate-sold,
:root:not([data-theme="light"]) .xc-tag-rate-sold {
color: #fb7185; border-color: rgba(251, 113, 133, 0.45);
background: rgba(251, 113, 133, 0.12);
}
.xc-shop-meta { margin-top: .18rem; font-size: .68rem; color: var(--muted); line-height: 1.25;
display: flex; flex-wrap: wrap; align-items: center; gap: .28rem;
}
.xc-shop-meta .plat-badge { vertical-align: middle; }
.xc-meta-dist {
display: inline-flex; align-items: center; justify-content: center;
min-height: 1.85rem; height: 1.85rem; padding: 0 .55rem;
border: 1px solid color-mix(in srgb, var(--accent, #3f8f55) 40%, var(--line-strong));
border-radius: 999px;
background: color-mix(in srgb, var(--accent, #3f8f55) 14%, var(--panel-solid, #121a14));
color: #d6e7db; font-size: .68rem; font-weight: 700; line-height: 1;
white-space: nowrap;
}
html[data-theme="light"] .xc-meta-dist {
color: #2f6b42; background: rgba(63, 143, 85, .1); border-color: rgba(63, 143, 85, .28);
}
.xc-meta-time { color: var(--muted); white-space: nowrap; }
.xc-shop-meta .tag-limit,
.xc-shop-meta .xc-tag-rate {
min-height: 1.85rem; height: 1.85rem; padding: 0 .55rem;
border-radius: 999px; font-size: .68rem; font-weight: 700;
display: inline-flex; align-items: center; justify-content: center;
margin: 0; box-sizing: border-box;
}
.xc-act-tools { flex-direction: row; align-items: center; gap: .28rem; }
.tag-limit {
  color: #e11d48; border: 1px solid rgba(225, 29, 72, 0.35);
  background: rgba(225, 29, 72, 0.08); white-space: nowrap;
}
.tag-limit.tag-limit-cd,
.order-tag-limit.tag-limit-cd {
  font-size: .58rem;
  letter-spacing: -0.01em;
  max-width: min(100%, 14.5rem);
  overflow: hidden;
  text-overflow: ellipsis;
}
html[data-theme="dark"] .tag-limit,
:root:not([data-theme="light"]) .tag-limit {
  color: #fb7185; border-color: rgba(251, 113, 133, 0.4);
  background: rgba(251, 113, 133, 0.12);
}
.xc-shop-count { color: var(--muted); font-weight: 600; }
.xc-shop-offers { display: flex; flex-direction: column; gap: .28rem; }
.xc-offer { padding-top: .22rem; border-top: 1px dashed var(--line); }
.xc-offer:first-child { border-top: 0; padding-top: 0; }
.xc-offer-single { padding-top: .12rem; }
.xc-rebate-row { display: flex; flex-wrap: wrap; align-items: center; gap: .28rem; margin-bottom: .32rem; }
.xc-rebate-pill {
display: inline-flex; align-items: center;
border: 1px solid rgba(255, 122, 0, 0.45); border-radius: 999px;
padding: .06rem .38rem; font-size: .7rem; font-weight: 750;
color: var(--xc-orange); background: var(--xc-orange-dim);
flex-shrink: 0; white-space: nowrap;
}
.xc-offer-foot { display: flex; align-items: center; gap: .4rem; }
.xc-offer-foot.compact { gap: .28rem; }
.xc-offer-inline {
flex-wrap: wrap; align-items: center; row-gap: .22rem;
}
.xc-offer-inline .xc-left-bar { flex: 1 1 4.5rem; min-width: 4.2rem; max-width: 7.5rem; }
.xc-offer-inline .tag-chip { font-size: .58rem; padding: .02rem .2rem; }
.xc-left-bar { flex: 1; min-width: 0; }
.xc-progress-row { display: flex; align-items: center; gap: .32rem; }
.xc-progress-row .xc-progress { flex: 1; min-width: 0; }
.xc-left-txt { font-size: .64rem; color: var(--muted); white-space: nowrap; flex-shrink: 0; }
.xc-left-txt b { color: var(--xc-orange); font-weight: 750; }
.xc-progress {
height: 4px; border-radius: 999px; background: var(--inset); overflow: hidden;
}
html[data-theme="light"] .xc-progress { background: rgba(20, 26, 22, 0.08); }
.xc-progress i {
display: block; height: 100%; border-radius: inherit;
background: linear-gradient(90deg, #ffb366, var(--xc-orange));
transition: width .2s ease;
}
.xc-offer-top {
display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .3rem;
margin-bottom: .22rem; font-size: .68rem; color: var(--muted);
}
.xc-act-idx {
font-size: .66rem; color: var(--muted); background: var(--inset-soft);
border-radius: 4px; padding: .02rem .28rem; flex-shrink: 0;
}
.xc-act-time { color: var(--muted); }
.xc-btn-grab {
flex-shrink: 0; min-width: 4.4rem; border: 0; border-radius: 999px;
padding: .36rem .7rem; font-size: .74rem; font-weight: 750; cursor: pointer;
background: linear-gradient(165deg, #ff9833, var(--xc-orange)); color: #fff;
box-shadow: 0 2px 8px rgba(255, 122, 0, 0.22);
}
.xc-btn-grab.on {
background: linear-gradient(165deg, #7ec98a, var(--accent-strong));
box-shadow: 0 2px 8px rgba(63, 143, 85, 0.2);
}
.xc-btn-grab:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; filter: grayscale(.15); }
.xc-btn-stock-watch {
border: 1px solid color-mix(in srgb, var(--warn, #d4b483) 45%, var(--line-strong));
border-radius: 999px; padding: .32rem .62rem;
font: inherit; font-size: .72rem; font-weight: 700; cursor: pointer;
background: color-mix(in srgb, var(--warn, #d4b483) 16%, transparent);
color: var(--warn, #d4b483); white-space: nowrap; flex-shrink: 0;
}
.xc-btn-stock-watch:active { opacity: .7; }
.xc-btn-slot-lock {
border: 0;
border-radius: 999px; padding: .36rem .72rem;
font: inherit; font-size: .74rem; font-weight: 800; cursor: pointer;
white-space: nowrap; flex-shrink: 0;
color: #fff;
background: linear-gradient(165deg, #e85a5a, #c93c3c);
box-shadow: 0 2px 8px rgba(201, 60, 60, 0.28);
}
.xc-btn-slot-lock.is-on {
background: linear-gradient(165deg, #4caf78, #2f9a5c);
box-shadow: 0 2px 8px rgba(47, 154, 92, 0.28);
}
.xc-btn-slot-lock:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; filter: grayscale(.2); }
.xc-btn-slot-lock:active { opacity: .88; filter: brightness(0.96); }
.slot-lock-hours-grid {
display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; margin-top: .35rem;
}
.slot-lock-hour-chip {
border: 1px solid var(--line-strong); border-radius: 12px;
padding: .55rem .3rem; font: inherit; font-size: .82rem; font-weight: 650;
background: var(--inset, rgba(255,255,255,.04)); color: var(--text); cursor: pointer;
}
.slot-lock-hour-chip.is-on {
border-color: rgba(124, 108, 240, .65);
background: rgba(124, 108, 240, .18);
color: #e8e4ff;
font-weight: 750;
box-shadow: inset 0 0 0 1px rgba(124, 108, 240, .25);
}
html[data-theme="light"] .slot-lock-hour-chip.is-on {
color: #4a3fc7;
background: rgba(124, 108, 240, .12);
}
.order-remain {
display: inline-block; margin-left: .35rem; font-style: normal;
font-weight: 750; color: var(--xc-orange, #ff9833); font-variant-numeric: tabular-nums;
}
.order-remain.is-over {
color: #e07070;
}
.order-actions-bar .btn-slot-lock {
color: #fff;
background: linear-gradient(165deg, #e85a5a, #c93c3c);
border-color: transparent;
box-shadow: 0 2px 8px rgba(201, 60, 60, 0.22);
}
.order-actions-bar .btn-slot-lock.is-on {
background: linear-gradient(165deg, #4caf78, #2f9a5c);
box-shadow: 0 2px 8px rgba(47, 154, 92, 0.22);
}
html[data-theme="light"] .order-actions-bar .btn-slot-lock {
color: #fff;
background: linear-gradient(165deg, #e85a5a, #c93c3c);
border-color: transparent;
}
html[data-theme="light"] .order-actions-bar .btn-slot-lock.is-on {
background: linear-gradient(165deg, #4caf78, #2f9a5c);
}
.xc-offer-foot .xc-btn-row {
display: flex; flex-wrap: wrap; gap: .32rem; align-items: center; justify-content: flex-end;
flex-shrink: 0; margin-left: auto;
}
.xc-adv { color: var(--xc-orange); font-weight: 600; }
.xc-store-bar {
position: sticky;
bottom: calc(var(--nav-h) + env(safe-area-inset-bottom, 0px) + .25rem);
z-index: 8; margin-top: .65rem;
background: var(--panel-solid); border: 1px solid var(--line-strong);
border-radius: 14px; padding: .55rem .65rem;
box-shadow: 0 -4px 20px rgba(20, 26, 22, 0.08);
}
.xc-bar-actions { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.xc-appoint-btn {
border: 0; border-radius: 999px; padding: .45rem .85rem;
font: inherit; font-size: .82rem; font-weight: 750; cursor: pointer;
background: var(--accent-strong); color: #fff;
}
.xc-appoint-btn:active { opacity: .88; }
.xc-store-adv {
margin-top: .85rem; border: 1px solid var(--line); border-radius: 12px;
background: var(--inset-soft); overflow: hidden;
}
.xc-store-adv > summary {
padding: .55rem .65rem; font-size: .78rem; font-weight: 600;
color: var(--muted); cursor: pointer; list-style: none;
}
.xc-store-adv > summary::-webkit-details-marker { display: none; }
.xc-store-adv[open] > summary { border-bottom: 1px solid var(--line); color: var(--text); }
.xc-store-adv .kw-zone,
.xc-store-adv .store-zone { margin: 0; border: 0; border-radius: 0; }
.xc-store-page .store-loc-edit { margin-top: .45rem; }
.mp-empty { padding: 1rem; text-align: center; color: var(--muted); font-size: .84rem; }
.xc-catalog.xc-brand-sign-busy .brand-sign-btn,
.xc-catalog.xc-brand-sign-busy .xc-btn-grab[data-brand-sign="1"] {
pointer-events: none; opacity: .45;
}
body.xc-brand-sign-busy { overflow: hidden; }
.xc-brand-sign-backdrop {
position: fixed;
inset: 0;
z-index: 920;
display: flex;
align-items: center;
justify-content: center;
padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));
background: rgba(4, 8, 6, 0.58);
}
html[data-theme="light"] .xc-brand-sign-backdrop {
background: rgba(20, 26, 22, 0.32);
}
.xc-brand-sign-overlay {
position: relative;
z-index: 1;
width: min(92vw, 22rem);
max-height: min(78vh, 26rem);
overflow: auto;
padding: 1.1rem .65rem 1.2rem;
text-align: center;
background: var(--panel2);
border: 1px solid var(--line-strong);
border-radius: 14px;
box-shadow: var(--glow);
}
html[data-theme="light"] .xc-brand-sign-overlay {
background: var(--bg-elev);
}
.xc-brand-sign-loading .xc-load-msg,
.xc-brand-sign-overlay .xc-load-msg { color: var(--text); }
.xc-brand-sign-loading .xc-load-est,
.xc-brand-sign-overlay .xc-load-est { color: var(--muted); }
.xc-brand-sign-steps {
margin: .55rem auto 0; max-width: 15rem; text-align: left;
font-size: .72rem; color: var(--muted); line-height: 1.55;
}
.xc-brand-sign-steps li { list-style: none; padding: .12rem 0; }
.xc-brand-sign-steps li.on { color: var(--text); font-weight: 600; }
.xc-brand-sign-steps li.done { color: var(--accent, #7ec98a); }
.xc-catalog-loading { padding: .85rem .5rem 1.2rem; text-align: center; }
.xc-load-spinner {
width: 2rem; height: 2rem; margin: 0 auto .65rem;
border: 3px solid rgba(126, 200, 154, 0.2);
border-top-color: var(--accent, #7ec98a);
border-radius: 50%;
animation: xc-spin .85s linear infinite;
}
@keyframes xc-spin { to { transform: rotate(360deg); } }
.xc-load-msg {
margin: 0 0 .35rem; font-size: .88rem; color: var(--text);
min-height: 1.35em; transition: opacity .25s;
}
.xc-load-est { margin: 0 0 .75rem; font-size: .72rem; color: var(--muted); }
.xc-load-bar {
height: 4px; border-radius: 99px; background: rgba(126, 200, 154, 0.15);
margin: 0 auto .85rem; max-width: 12rem; overflow: hidden;
}
.xc-load-bar > i {
display: block; height: 100%; width: 35%; border-radius: 99px;
background: linear-gradient(90deg, transparent, var(--accent, #7ec98a), transparent);
animation: xc-load-slide 1.8s ease-in-out infinite;
}
@keyframes xc-load-slide {
0% { transform: translateX(-120%); }
100% { transform: translateX(380%); }
}
.xc-skel-card {
display: flex; gap: .55rem; padding: .55rem .45rem; margin-bottom: .35rem;
border-radius: 12px; background: var(--card); border: 1px solid var(--line);
}
.xc-skel-thumb {
width: 44px; height: 44px; border-radius: 10px; flex-shrink: 0;
background: linear-gradient(90deg, rgba(255,255,255,.04) 25%, rgba(255,255,255,.1) 50%, rgba(255,255,255,.04) 75%);
background-size: 200% 100%; animation: xc-shimmer 1.4s ease-in-out infinite;
}
.xc-skel-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .38rem; padding-top: .15rem; }
.xc-skel-line {
height: .62rem; border-radius: 4px;
background: linear-gradient(90deg, rgba(255,255,255,.04) 25%, rgba(255,255,255,.1) 50%, rgba(255,255,255,.04) 75%);
background-size: 200% 100%; animation: xc-shimmer 1.4s ease-in-out infinite;
}
.xc-skel-line.w80 { width: 80%; }
.xc-skel-line.w55 { width: 55%; }
.xc-skel-line.w40 { width: 40%; animation-delay: .15s; }
@keyframes xc-shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
.xc-catalog-loc-needed { padding: 1.2rem .75rem; text-align: center; }
.xc-catalog-loc-banner {
display: flex; align-items: center; gap: .45rem; flex-wrap: wrap;
margin: 0 0 .55rem; padding: .55rem .65rem;
border-radius: 10px; border: 1px solid rgba(224, 133, 124, 0.35);
background: rgba(224, 133, 124, 0.1);
font-size: .78rem; color: var(--text);
}
.xc-catalog-loc-banner .xc-loc-banner-ico { flex-shrink: 0; }
.xc-catalog-loc-banner .xc-loc-banner-txt { flex: 1; min-width: 8rem; }
.xc-catalog-loc-banner .xc-loc-banner-btn {
padding: .28rem .65rem; font-size: .74rem;
}
.xc-loc-needed-t { margin: 0 0 .35rem; font-size: .9rem; color: var(--text); }
.xc-loc-needed-sub { margin: 0 0 .85rem; font-size: .76rem; color: var(--muted); line-height: 1.45; }
.xc-btn-soft {
display: inline-block; padding: .45rem 1rem; border-radius: 999px;
border: 1px solid rgba(126, 200, 154, 0.45); background: rgba(126, 200, 154, 0.12);
color: var(--accent, #7ec98a); font-size: .82rem; font-weight: 600; cursor: pointer;
}
.mp-card {
display: flex; gap: .5rem; background: var(--card); border-radius: 12px;
padding: .55rem .6rem; margin-bottom: .3rem; border: 1px solid rgba(0,0,0,.04); color: var(--ink);
contain: layout style paint;
content-visibility: auto;
contain-intrinsic-size: auto 84px;
}
.mp-thumb {
width: 44px; height: 44px; border-radius: 10px; overflow: hidden;
background: #ece8dc; flex-shrink: 0; position: relative;
}
.mp-thumb img {
width: 100%; height: 100%; object-fit: cover;
}
.brand-tag {
position: absolute; left: 0; top: 0; background: #3d3428; color: #f3efe4;
font-size: .58rem; padding: .05rem .22rem; border-radius: 0 0 7px 0; font-weight: 650;
}
.tag-chip { display: inline-flex; border-radius: 4px; padding: 0 .28rem; font-size: .65rem; font-weight: 600; margin-left: .18rem; }
.tag-vip { color: #c45a00; border: 1px solid #e8a86a; background: #fff7f0; }
.tag-rate { color: #b45309; border: 1px solid rgba(180, 83, 9, 0.4); background: #fff7ed; }
.tag-ok { color: #2a8a52; border: 1px solid #8dcca6; background: #f3fbf7; }
.tag-product { color: #d97706; border: 1px solid #f0b45a; background: #fff8ef; }
.xc-brush-copy {
  display: inline-flex;
  gap: .28rem;
  align-items: center;
  flex-wrap: wrap;
  margin: 0;
  vertical-align: middle;
}
.xc-copy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  box-sizing: border-box;
  min-height: 1.85rem;
  height: 1.85rem;
  padding: 0 .55rem;
  border: 1px solid #d0a56a;
  background: #fff4e5;
  color: #9a5b1a;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  user-select: none;
  -webkit-user-select: none;
  white-space: nowrap;
}
.xc-copy-btn:active { transform: scale(0.97); background: #ffe7c2; }
html[data-theme="dark"] .xc-copy-btn,
:root:not([data-theme="light"]) .xc-copy-btn {
  border-color: rgba(251, 191, 36, 0.55);
  background: rgba(251, 191, 36, 0.16);
  color: #fbbf24;
}
.xc-catalog-refresh-btn.is-auto,
.xc-catalog-refresh-btn:disabled.is-auto {
  opacity: .72;
  cursor: default;
}
html[data-theme="dark"] .tag-rate,
:root:not([data-theme="light"]) .tag-rate {
color: #fbbf24; border-color: rgba(251, 191, 36, 0.4); background: rgba(251, 191, 36, 0.12);
}
html[data-theme="dark"] .tag-ok,
:root:not([data-theme="light"]) .tag-ok {
color: #7ec98a; border-color: rgba(126, 200, 154, 0.35); background: rgba(126, 200, 154, 0.1);
}
html[data-theme="dark"] .tag-product,
:root:not([data-theme="light"]) .tag-product {
color: #fbbf24; border-color: rgba(251, 191, 36, 0.45); background: rgba(251, 191, 36, 0.12);
}
.mp-body { flex: 1; min-width: 0; }
.mp-title-row {
display: flex; justify-content: space-between; gap: .45rem; align-items: flex-start;
margin-bottom: .08rem;
}
.mp-title {
flex: 1; min-width: 0;
font-weight: 650; font-size: .86rem; line-height: 1.35;
color: var(--ink);
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
word-break: break-word;
overflow-wrap: anywhere;
}
.mp-dist {
color: #9a9688; font-size: .72rem; flex-shrink: 0;
padding-top: .12rem; white-space: nowrap;
}
.xc-dist-col {
display: flex; flex-direction: column; align-items: flex-end; gap: .28rem;
flex-shrink: 0;
}
.xc-act-tools.xc-dist-col {
flex-direction: column; align-items: stretch; gap: .28rem;
}
.xc-block-store {
display: inline-flex; align-items: center; justify-content: center; gap: .22rem;
min-height: 1.85rem; height: 1.85rem; padding: 0 .5rem 0 .42rem;
border: 1px solid color-mix(in srgb, var(--danger, #e0857c) 38%, var(--line-strong));
border-radius: 999px;
background: color-mix(in srgb, var(--danger, #e0857c) 10%, var(--panel-solid, #121a14));
color: var(--danger-soft, #f0a8a2);
font: inherit; font-size: .68rem; font-weight: 650; line-height: 1;
cursor: pointer; flex-shrink: 0; white-space: nowrap;
touch-action: manipulation; width: 100%; box-sizing: border-box;
}
.xc-fav-store {
display: inline-flex; align-items: center; justify-content: center; gap: .22rem;
min-height: 1.85rem; height: 1.85rem; padding: 0 .5rem 0 .42rem;
border: 1px solid color-mix(in srgb, #f59e0b 35%, var(--line-strong));
border-radius: 999px;
background: color-mix(in srgb, #f59e0b 10%, var(--panel-solid, #121a14));
color: #e7e5e4;
font: inherit; font-size: .68rem; font-weight: 650; line-height: 1;
cursor: pointer; flex-shrink: 0; white-space: nowrap;
touch-action: manipulation; width: 100%; box-sizing: border-box;
}
.xc-fav-store svg { width: .88rem; height: .88rem; display: block; flex-shrink: 0; }
.xc-fav-store.on { color: #fbbf24; background: color-mix(in srgb, #f59e0b 22%, var(--panel-solid, #121a14)); }
.xc-fav-store:active { opacity: .55; transform: scale(.96); }
html[data-theme="light"] .xc-fav-store {
background: rgba(245, 158, 11, .08);
color: #78716c;
border-color: rgba(245, 158, 11, .28);
}
html[data-theme="light"] .xc-fav-store.on { color: #d97706; background: rgba(245, 158, 11, .16); }
.xc-fav-empty-act {
font-size: .78rem; color: var(--muted); padding: .35rem 0 .1rem;
}
.xc-block-store svg { width: .88rem; height: .88rem; display: block; flex-shrink: 0; }
.xc-block-store:active { opacity: .55; transform: scale(.96); }
html[data-theme="light"] .xc-block-store {
background: rgba(232, 93, 76, .08);
color: #c44a3c;
border-color: rgba(232, 93, 76, .3);
}
.xc-block-sheet {
position: fixed; inset: 0; z-index: 1200;
display: flex; align-items: flex-end; justify-content: center;
background: rgba(0,0,0,.55);
}
.xc-block-sheet.hidden { display: none !important; }
.xc-block-panel {
width: min(100%, 420px); max-height: min(72vh, 560px);
background: var(--panel-solid, #121a14); color: var(--text);
border-radius: 16px 16px 0 0; padding: .85rem .9rem 1.1rem;
border-top: 1px solid var(--line-strong);
box-shadow: 0 -8px 28px rgba(0,0,0,.35);
display: flex; flex-direction: column; gap: .55rem;
}
.xc-block-hd {
display: flex; align-items: center; justify-content: space-between; gap: .5rem;
}
.xc-block-hd strong { font-size: .95rem; color: var(--text); font-weight: 700; }
.xc-block-hd .xc-block-close {
border: 0; background: transparent; color: var(--muted);
font-size: 1.25rem; line-height: 1; cursor: pointer; padding: .1rem .35rem;
border-radius: 8px;
}
.xc-block-hd .xc-block-close:active { background: var(--inset); color: var(--text); }
.xc-block-hint { margin: 0; font-size: .72rem; color: var(--muted); line-height: 1.4; }
.xc-block-list {
overflow: auto; flex: 1; min-height: 0;
display: flex; flex-direction: column; gap: .45rem;
}
.xc-block-item {
display: flex; align-items: flex-start; justify-content: space-between; gap: .55rem;
padding: .6rem .65rem; border-radius: 12px;
border: 1px solid var(--line-strong);
background: var(--inset-soft, rgba(0,0,0,.12));
}
.xc-block-item .t { font-size: .82rem; font-weight: 650; line-height: 1.35; color: var(--text); }
.xc-block-item .s { font-size: .68rem; color: var(--muted); margin-top: .18rem; line-height: 1.35; }
.xc-block-un {
flex-shrink: 0;
border: 1px solid color-mix(in srgb, var(--danger, #e0857c) 40%, var(--line-strong));
border-radius: 8px; padding: .35rem .55rem;
font: inherit; font-size: .72rem; font-weight: 650; cursor: pointer;
background: color-mix(in srgb, var(--danger, #e0857c) 16%, transparent);
color: var(--danger-soft, #f0a8a2);
}
.xc-block-un:active { opacity: .7; }
.xc-block-empty { text-align: center; color: var(--muted); font-size: .8rem; padding: 1.2rem .5rem; }
html[data-theme="light"] .xc-block-panel {
background: #fff;
border-top-color: rgba(0,0,0,.08);
box-shadow: 0 -8px 28px rgba(0,0,0,.12);
}
html[data-theme="light"] .xc-block-item {
background: #f5f6f4;
border-color: rgba(0,0,0,.08);
}
html[data-theme="light"] .xc-block-un {
background: rgba(232, 93, 76, .1);
color: #c44a3c;
border-color: rgba(232, 93, 76, .28);
}
.catalog-more {
display: block; width: 100%; margin: .25rem 0 .1rem;
border: 0; background: transparent;
color: var(--muted); border-radius: 10px; padding: .55rem .7rem;
font: inherit; font-size: .74rem; text-align: center;
pointer-events: none;
}
.plat-badge { display: inline-flex; border-radius: 4px; padding: 0 .22rem; font-size: .65rem; font-weight: 600; color: #fff; margin-right: .25rem; }
.plat-1 { background: #e6b800; color: #2a2410; }
.plat-2 { background: #1a8ad8; }
.plat-3 { background: #d12a22; }
.mp-act {
display: flex; justify-content: space-between; align-items: center; gap: .4rem;
font-size: .74rem; color: #6a665c; padding: .2rem 0; border-top: 1px dashed #ebe6da;
}
.mp-act:first-of-type { border-top: 0; }
.mp-act-main { flex: 1; min-width: 0; line-height: 1.45; }
.mp-rebate { font-weight: 600; color: var(--ink); }
.mp-time { margin-left: .25rem; font-size: .7rem; }
.meta { font-size: .7rem; color: var(--muted); }
.btn-grab {
flex: 0 0 auto; border: 0; border-radius: 8px; padding: .28rem .55rem;
font-size: .72rem; font-weight: 600; cursor: pointer;
background: linear-gradient(165deg, #6ec4f0, #2a8ad8); color: #fff;
}
.btn-grab.on { background: linear-gradient(165deg, #7ec98a, #3f8f55); }
.btn-grab:disabled { opacity: .4; cursor: not-allowed; }
.store-action-bar {
position: sticky; bottom: .35rem; z-index: 5;
display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-between; align-items: center;
margin-top: .65rem; padding: .65rem .75rem; border-radius: 12px;
background: var(--panel-solid); border: 1px solid var(--line-strong);
box-shadow: var(--glow);
}
.badge {
display: inline-flex; padding: .2rem .55rem; border-radius: 8px; font-size: .75rem;
background: var(--accent-dim); color: var(--ok); border: 1px solid rgba(126, 200, 154, 0.3);
}
html[data-theme="light"] .badge { border-color: rgba(45, 154, 95, 0.28); }
.badge.empty { background: transparent; border-color: var(--line); color: var(--muted); }
.appoint-card {
display: flex; justify-content: space-between; gap: .5rem; padding: .65rem .75rem;
border-radius: 12px; background: var(--inset); border: 1px solid var(--line);
font-size: .78rem; color: var(--muted); margin-top: .4rem; align-items: flex-start;
}
.appoint-card .t { color: var(--text); font-weight: 600; }
.appoint-card .store { color: var(--text); margin-top: .2rem; font-size: .82rem; line-height: 1.35; }
.appoint-card .meta { margin-top: .15rem; font-size: .72rem; color: var(--muted); line-height: 1.35; }
.appoint-card-hd {
display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem;
}
.appoint-card-ops {
display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; flex-shrink: 0;
}
.appoint-account {
display: inline-flex; align-items: center; gap: .25rem;
margin-top: .25rem; padding: .12rem .45rem; border-radius: 999px;
font-size: .7rem; font-weight: 600; color: var(--text);
background: rgba(255,255,255,.06); border: 1px solid var(--line);
}
html[data-theme="light"] .appoint-account { background: rgba(0,0,0,.04); }
.appoint-badge {
display: inline-flex; align-items: center; gap: .2rem;
padding: .1rem .42rem; border-radius: 999px; font-size: .68rem; font-weight: 700;
border: 1px solid transparent; white-space: nowrap;
}
.appoint-badge.ok { color: #1f8f4a; background: rgba(45,154,95,.14); border-color: rgba(45,154,95,.28); }
.appoint-badge.fail { color: #c43b3b; background: rgba(220,68,68,.12); border-color: rgba(220,68,68,.28); }
.appoint-badge.wait { color: #b8860b; background: rgba(255,193,7,.14); border-color: rgba(255,193,7,.32); }
.appoint-badge.run { color: #2b6cb0; background: rgba(66,153,225,.14); border-color: rgba(66,153,225,.28); }
.appoint-badge.skip, .appoint-badge.dry, .appoint-badge.done, .appoint-badge.unk {
color: var(--muted); background: var(--inset); border-color: var(--line);
}
.sub-title { margin: .85rem 0 .45rem; font-size: .88rem; font-weight: 600; color: var(--text); }

.tab-page.hidden { display: none !important; }

.bottom-nav {
position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
background: var(--nav-bg);
backdrop-filter: blur(18px);
border-top: 1px solid var(--line-strong);
padding: .35rem .5rem calc(.35rem + env(safe-area-inset-bottom, 0px));
display: flex; justify-content: space-around; max-width: 560px; margin: 0 auto;
box-shadow: 0 -8px 24px rgba(0,0,0,0.35);
}
html[data-theme="light"] .bottom-nav {
box-shadow: 0 -4px 18px rgba(26, 33, 28, 0.06);
}
.nav-btn {
flex: 1; border: 0; background: transparent; font-family: inherit;
display: flex; flex-direction: column; align-items: center; gap: .15rem;
padding: .35rem 0; color: var(--muted); font-size: .64rem; cursor: pointer;
}
.nav-btn svg { width: 22px; height: 22px; }
.nav-btn.active { color: var(--accent); font-weight: 600; }
.subpage-bar { margin: 0 0 .55rem; }
.btn-back {
border: 0; background: transparent; color: var(--muted); font: inherit;
padding: .2rem 0; cursor: pointer; font-size: .88rem;
}
.btn-back:hover { color: var(--accent); }
.login-switch { text-align:center; margin-top:.75rem; font-size:.82rem; color:var(--muted); }
.login-switch a { color:var(--accent); cursor:pointer; text-decoration:none; font-weight:600; }
.login-foot-split {
display: flex; justify-content: space-between; align-items: center;
margin-top: .75rem; font-size: .82rem;
}
.login-foot-split a { color: var(--accent); text-decoration: none; font-weight: 600; }
.login-remember {
display: flex; align-items: center; gap: .35rem;
margin: .45rem 0 .15rem; font-size: .8rem; color: var(--muted);
}
.login-code-inline {
display: flex; align-items: center; gap: .45rem;
}
.login-code-inline input { flex: 1; min-width: 0; }
.btn-send-code {
flex-shrink: 0; min-height: 2.05rem; padding: 0 .7rem;
border: 1px solid var(--accent); color: var(--accent);
background: transparent; border-radius: 8px;
font: inherit; font-size: .76rem; font-weight: 650; cursor: pointer;
white-space: nowrap;
}
.btn-send-code:disabled { opacity: .55; cursor: not-allowed; }
.math-dialog .math-q {
font-size: 1.35rem; font-weight: 750; text-align: center;
margin: .5rem 0 .65rem; letter-spacing: .04em;
}
.math-dialog input {
width: 100%; box-sizing: border-box; margin-bottom: .55rem;
padding: .55rem .65rem; border-radius: 10px; border: 1px solid var(--line);
background: var(--inset); color: var(--text); font: inherit; font-size: 1rem;
}
.math-dialog .math-actions {
display: grid; grid-template-columns: 1fr 1fr; gap: .5rem;
margin-top: .15rem;
}
.math-dialog .math-actions .btn {
width: 100%;
margin-top: 0;
min-height: 2.55rem;
padding: .68rem .55rem;
font-size: .9rem;
border-radius: 12px;
}
.math-dialog .math-actions .btn-ghost {
background: transparent;
border-color: var(--line-strong);
color: var(--text);
}
.me-card { background:var(--card-face); border:1px solid var(--line); border-radius:var(--radius); padding:1rem; margin-bottom:.75rem; }
.me-row { display:flex; justify-content:space-between; gap:.75rem; padding:.35rem 0; font-size:.88rem; }
.me-row .lab { color:var(--muted); }
.me-row .val { font-weight:600; text-align:right; }

/* 我的 · 竞品式布局 */
.me-profile {
background: var(--card-face); border: 1px solid var(--line);
border-radius: 14px; padding: 1rem; margin-bottom: .75rem;
}
.me-profile-top {
display: flex; align-items: center; gap: .75rem; margin-bottom: .85rem;
}
.me-avatar {
width: 48px; height: 48px; border-radius: 50%;
background: var(--accent-soft, rgba(8,166,109,.14));
color: var(--accent); display: grid; place-items: center; flex-shrink: 0;
}
.me-avatar svg { width: 26px; height: 26px; }
.me-who { flex: 1; min-width: 0; }
.me-who-lab { font-size: .72rem; color: var(--muted); }
.me-who-name-row {
display: flex; align-items: center; gap: .35rem;
min-width: 0; margin-top: .1rem;
}
.me-who-name {
flex: 1; min-width: 0;
font-size: 1.05rem; font-weight: 700; color: var(--text); line-height: 1.25;
border: 0; border-bottom: 1.5px solid transparent;
background: transparent; padding: .05rem 0 .12rem;
font-family: inherit; outline: none;
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.me-who-name:not([readonly]) {
border-bottom-color: var(--accent);
overflow: visible; text-overflow: clip;
}
.me-who-name[readonly] { cursor: default; pointer-events: none; }
.me-who-edit {
width: 1.7rem; height: 1.7rem; border-radius: 999px; flex-shrink: 0;
border: 0; background: var(--accent-soft, rgba(8,166,109,.14));
color: var(--accent); display: grid; place-items: center; cursor: pointer;
}
.me-who-edit svg { width: .9rem; height: .9rem; }
.me-who-edit:active { opacity: .85; }
.me-who-mail { font-size: .78rem; color: var(--muted); margin-top: .18rem; word-break: break-all; }
.me-stats {
display: grid; grid-template-columns: 1fr 1fr; gap: .55rem;
}
.me-stat {
background: var(--inset); border-radius: 10px; padding: .65rem .7rem;
min-width: 0;
display: flex; flex-direction: column; gap: .32rem;
}
.me-stat-lab { font-size: .72rem; color: var(--muted); }
.me-stat-val {
font-size: 1.15rem; font-weight: 700; color: var(--text); line-height: 1.1;
white-space: nowrap; font-variant-numeric: tabular-nums;
}
#mePoints { cursor: pointer; }
.me-stat-actions {
display: flex; align-items: center; gap: .28rem; flex-wrap: wrap;
}
.me-charge {
border: 1px solid var(--accent); color: var(--accent); background: transparent;
border-radius: 999px; font: inherit; font-size: .72rem; padding: .15rem .45rem; cursor: pointer;
white-space: nowrap;
}
.me-charge-ghost {
border-color: var(--line-strong); color: var(--muted);
}
.me-charge:disabled {
opacity: .45; cursor: not-allowed;
}
.me-stat-tap {
border: 0;
font: inherit;
text-align: left;
cursor: pointer;
width: 100%;
color: inherit;
}
.me-stat-tap:active { opacity: .88; }
.me-stat-val-sm {
font-size: .95rem;
font-weight: 650;
}
.me-stat-tap .me-charge {
pointer-events: none;
}
.me-svc {
background: var(--card-face); border: 1px solid var(--line);
border-radius: 14px; overflow: hidden; margin-bottom: .75rem;
}
.me-svc-title {
font-size: .78rem; color: var(--muted); font-weight: 600;
padding: .65rem .9rem .25rem;
}
.me-svc-item {
width: 100%; display: flex; align-items: center; gap: .65rem;
padding: .75rem .9rem; border: 0; border-top: 1px solid var(--line);
background: transparent; font: inherit; color: var(--text); cursor: pointer; text-align: left;
text-decoration: none;
}
.me-svc-item:first-of-type { border-top: 0; }
.me-svc-title + .me-notify-wrap { border-top: 0; }
.me-svc-ico {
width: 32px; height: 32px; border-radius: 50%;
background: var(--accent-soft, rgba(8,166,109,.14)); color: var(--accent);
display: grid; place-items: center; flex-shrink: 0;
}
.me-svc-ico svg { width: 16px; height: 16px; }
.me-svc-lab { flex: 1; font-size: .9rem; }
.me-svc-go { color: var(--muted); font-size: .85rem; }
.me-toggle {
width: 44px; height: 26px; border-radius: 999px; border: 0; padding: 2px;
background: #c5cbc7; cursor: pointer; flex-shrink: 0; position: relative;
}
.me-toggle.on { background: var(--accent); }
.me-toggle i {
display: block; width: 22px; height: 22px; border-radius: 50%; background: #fff;
transition: transform .15s ease; transform: translateX(0);
}
.me-toggle.on i { transform: translateX(18px); }
.me-notify-wrap {
border-top: 1px solid var(--line);
display: flex; align-items: center; gap: .35rem;
padding-right: .35rem;
}
.me-notify-open {
flex: 1; min-width: 0; display: flex; align-items: center; gap: .65rem;
padding: .75rem .55rem .75rem .9rem; border: 0; background: transparent;
font: inherit; color: var(--text); cursor: pointer; text-align: left;
}
.me-notify-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .12rem; }
.me-notify-sub { font-size: .68rem; line-height: 1.35; color: var(--muted); }
.me-notify-wrap .me-toggle { margin-right: .15rem; }
.email-notify-list {
margin-top: .35rem; border: 1px solid var(--line); border-radius: 12px;
background: var(--inset); overflow: hidden;
}
.email-notify-item {
display: flex; align-items: center; justify-content: space-between; gap: .65rem;
padding: .72rem .75rem; font-size: .84rem; color: var(--text);
border-top: 1px solid var(--line);
}
.email-notify-item:first-child { border-top: 0; }
.email-notify-item span { flex: 1; }
.points-ledger-bal {
margin: .15rem 0 .55rem; padding: .55rem .65rem; border-radius: 10px;
border: 1px solid var(--line); background: var(--inset);
font-size: .78rem; color: var(--muted);
}
.points-ledger-bal b { font-size: 1.05rem; color: var(--text); margin-left: .35rem; }
.job-logs-dialog { width: min(100%, 440px); }
.job-logs-filters {
display: flex; flex-wrap: wrap; gap: .45rem; align-items: flex-end;
margin: 0 0 .55rem;
}
.job-logs-field {
flex: 1 1 7.5rem; min-width: 0; display: flex; flex-direction: column; gap: .22rem;
font-size: .72rem; font-weight: 650; color: var(--text);
}
.job-logs-field select {
width: 100%; border-radius: 10px; border: 1px solid var(--line-strong);
background: var(--card-face); color: var(--text); font: inherit; font-size: .82rem; font-weight: 600;
padding: .5rem .55rem; line-height: 1.35;
color-scheme: dark;
-webkit-appearance: none; appearance: none;
background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
background-position: calc(100% - 14px) calc(50% - 2px), calc(100% - 9px) calc(50% - 2px);
background-size: 5px 5px, 5px 5px;
background-repeat: no-repeat;
padding-right: 1.55rem;
}
html[data-theme="light"] .job-logs-field select {
color-scheme: light;
}
.job-logs-field select option,
.job-logs-field select optgroup {
background: #121a14; color: #e8f0ea; font-weight: 600;
}
html[data-theme="light"] .job-logs-field select option,
html[data-theme="light"] .job-logs-field select optgroup {
background: #fff; color: #142018;
}
.job-logs-list {
max-height: min(52vh, 420px); overflow: auto;
display: flex; flex-direction: column; gap: .55rem;
}
.job-logs-empty {
padding: 1rem .75rem; text-align: center; font-size: .8rem; color: var(--muted);
border: 1px dashed var(--line); border-radius: 12px; background: var(--inset);
}
.job-logs-card {
background: var(--card-face); border: 1px solid var(--line); border-radius: 12px;
padding: .65rem .7rem .7rem;
}
.job-logs-card .t { font-weight: 650; color: var(--text); font-size: .82rem; line-height: 1.35; }
.job-logs-card .meta { margin-top: .18rem; font-size: .72rem; color: var(--muted); line-height: 1.35; }
.job-logs-card .st-done { color: var(--ok, #1f8f4a); }
.job-logs-card .st-error { color: var(--danger); }
.job-logs-card .st-running { color: var(--accent); }
.job-logs-card-ops {
display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; margin-top: .45rem;
}
.job-logs-body {
margin-top: .45rem; max-height: 11rem; overflow: auto;
padding: .45rem .55rem; border-radius: 10px;
background: var(--inset-soft, var(--inset)); border: 1px solid var(--line);
font-size: .68rem; line-height: 1.4; color: var(--muted); white-space: pre-wrap; word-break: break-all;
}
.me-tasks-dialog { width: min(100%, 440px); }
.me-runlog-dialog { width: min(100%, 520px); max-height: min(88vh, 640px); display: flex; flex-direction: column; }
.me-runlog-body {
margin: .45rem 0 .55rem; flex: 1; min-height: 12rem; max-height: min(52vh, 380px);
overflow: auto; padding: .55rem .65rem; border-radius: 10px;
background: var(--inset-soft, var(--inset)); border: 1px solid var(--line);
font-size: .68rem; line-height: 1.45; color: var(--muted); white-space: pre-wrap; word-break: break-all;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.me-runlog-dialog .fp-actions { align-items: center; }
.btn.danger, button.danger {
background: rgba(226, 85, 85, .12); color: var(--danger, #e25555); border-color: rgba(226, 85, 85, .35);
}
.me-tasks-list {
max-height: min(52vh, 420px); overflow: auto;
display: flex; flex-direction: column; gap: .55rem;
}
.me-task-card {
background: var(--card-face); border: 1px solid var(--line); border-radius: 12px;
padding: .7rem .75rem .75rem;
}
.me-task-card .mt-hd {
display: flex; align-items: flex-start; justify-content: space-between; gap: .55rem;
}
.me-task-card .mt-title { font-weight: 700; font-size: .88rem; color: var(--text); line-height: 1.35; }
.me-task-card .mt-tip { margin-top: .18rem; font-size: .72rem; color: var(--muted); line-height: 1.4; }
.me-task-card .mt-ops {
display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; margin-top: .55rem;
}
.me-task-card .mt-ops .btn[disabled] { opacity: .45; cursor: not-allowed; }
.points-ledger-list {
max-height: min(52vh, 420px); overflow: auto;
border: 1px solid var(--line); border-radius: 12px; background: var(--inset);
}
.points-ledger-item {
display: flex; align-items: flex-start; justify-content: space-between; gap: .65rem;
padding: .72rem .75rem; border-top: 1px solid var(--line);
}
.points-ledger-item:first-child { border-top: 0; }
.pl-main { flex: 1; min-width: 0; }
.pl-title { font-size: .84rem; font-weight: 650; color: var(--text); line-height: 1.35; }
.pl-meta { margin-top: .18rem; font-size: .68rem; line-height: 1.4; color: var(--muted); }
.pl-detail { margin-top: .12rem; font-size: .68rem; line-height: 1.4; color: var(--text-soft, #9aa89f); }
.pl-delta {
flex-shrink: 0; font-size: .88rem; font-weight: 700; font-variant-numeric: tabular-nums;
line-height: 1.35; white-space: nowrap;
}
.pl-delta.plus { color: var(--ok, #08a66d); }
.pl-delta.minus { color: var(--danger-soft, #e25555); }
.points-ledger-empty {
padding: 1.5rem .75rem; text-align: center; font-size: .78rem; color: var(--muted);
}
.brand-rate-list {
border: 1px solid var(--line); border-radius: 12px; background: var(--inset);
overflow: hidden;
}
.brand-rate-row {
display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem;
padding: .85rem .8rem; border-top: 1px solid var(--line);
}
.brand-rate-row:first-child { border-top: 0; }
.brand-rate-main { min-width: 0; flex: 1; }
.brand-rate-day {
font-size: .9rem; font-weight: 700; color: var(--text); line-height: 1.3;
}
.brand-rate-full {
margin-left: .4rem; font-size: .68rem; font-weight: 500; color: var(--muted);
}
.brand-rate-val {
font-size: 1.15rem; font-weight: 750; color: var(--accent);
font-variant-numeric: tabular-nums; white-space: nowrap; padding-top: .05rem;
}
.brand-rate-val.is-muted {
font-size: .85rem; font-weight: 650; color: var(--muted); white-space: normal; text-align: right; max-width: 9.5rem;
}
.brand-rate-levels {
display: flex; flex-wrap: wrap; gap: .28rem .55rem; margin-top: .45rem;
}
.brand-rate-lv {
display: inline-flex; align-items: baseline; gap: .28rem;
font-size: .72rem; color: var(--muted); font-variant-numeric: tabular-nums;
}
.brand-rate-lv-lab { font-weight: 700; color: var(--text); opacity: .85; }
.brand-rate-lv-val { font-weight: 650; color: var(--accent); }
.brand-rate-empty {
padding: 1.5rem .75rem; text-align: center; font-size: .78rem; color: var(--muted);
}
.checkin-streak {
margin: .35rem 0 .55rem; padding: .75rem .8rem; border-radius: 14px;
border: 1px solid var(--line); background: var(--inset);
}
.checkin-streak-hd {
display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem;
}
.checkin-streak-title {
font-size: .95rem; font-weight: 800; color: var(--text); line-height: 1.3;
}
.checkin-streak-title b { color: var(--accent); font-size: 1.25rem; margin: 0 .15rem; }
.checkin-month {
flex-shrink: 0; text-align: right; font-size: .68rem; color: var(--muted); line-height: 1.35;
}
.checkin-month b { display: block; font-size: .92rem; color: var(--text); font-weight: 750; }
.checkin-streak-sub { margin-top: .35rem; font-size: .72rem; color: var(--muted); line-height: 1.4; }
.checkin-result {
margin: .55rem 0 0; padding: .55rem .65rem; border-radius: 10px;
background: rgba(8,166,109,.12); border: 1px solid rgba(8,166,109,.28);
font-size: .82rem; font-weight: 650; color: var(--accent);
display: none;
}
.checkin-result.show { display: block; }
.checkin-week {
display: flex; align-items: flex-start; justify-content: space-between; gap: .2rem;
margin: .75rem 0 .35rem; padding: .15rem 0 .25rem; overflow-x: auto;
}
.checkin-day {
flex: 1; min-width: 2.4rem; display: flex; flex-direction: column; align-items: center; gap: .28rem;
}
.checkin-day-ico {
width: 2.35rem; height: 2.35rem; border-radius: 50%;
border: 1.5px solid var(--line); background: var(--card-face);
display: grid; place-items: center; font-size: .72rem; font-weight: 700; color: var(--muted);
}
.checkin-day.done .checkin-day-ico,
.checkin-day.today_done .checkin-day-ico {
background: var(--accent); border-color: var(--accent); color: #fff;
}
.checkin-day.today .checkin-day-ico {
width: 2.7rem; height: 2.7rem; border-radius: 12px;
border-color: var(--accent); background: rgba(8,166,109,.14); color: var(--accent);
font-size: .78rem; box-shadow: 0 0 0 2px rgba(8,166,109,.18);
}
.checkin-day.todo.is-bonus .checkin-day-ico {
border-style: dashed; color: var(--warn, #c49a4a); border-color: var(--warn, #c49a4a);
}
.checkin-day-lab {
font-size: .58rem; color: var(--muted); text-align: center; line-height: 1.2;
max-width: 3.2rem;
}
.checkin-day.today .checkin-day-lab,
.checkin-day.today_done .checkin-day-lab { color: var(--accent); font-weight: 650; }
.checkin-milestones {
display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; margin-top: .55rem;
}
.checkin-ms {
border: 1px solid var(--line); border-radius: 10px; padding: .5rem .35rem; text-align: center;
background: var(--card-face); font: inherit; color: var(--text); cursor: default;
}
.checkin-ms.ready { border-color: var(--accent); cursor: pointer; }
.checkin-ms.done { opacity: .55; }
.checkin-ms .ms-day { font-size: .72rem; font-weight: 700; }
.checkin-ms .ms-pts { font-size: .62rem; color: var(--muted); margin-top: .12rem; }
.checkin-actions { margin-top: .65rem; display: flex; flex-direction: column; gap: .45rem; }
.checkin-actions .btn { width: 100%; min-height: 2.55rem; }
.checkin-actions .btn:disabled,
.checkin-actions .btn.lottery-btn-off {
opacity: .42;
cursor: not-allowed;
filter: grayscale(.25);
box-shadow: none;
}
.lottery-multi-row { display: flex; gap: .45rem; }
.lottery-multi-row .btn { flex: 1; min-height: 2.35rem; }
.lottery-spin-hint {
margin: .45rem 0 0;
padding: .45rem .55rem;
border-radius: 8px;
font-size: .78rem;
line-height: 1.45;
text-align: center;
color: var(--danger-soft);
background: rgba(240, 168, 162, .12);
}
.lottery-spin-hint.hidden { display: none; }

.home-hub-lottery .home-checkin-ico {
background: rgba(255, 138, 26, .18); color: #ff8a1a;
}
.home-hub-lottery.done .home-checkin-ico {
background: rgba(255, 138, 26, .28);
}
.lottery-stage {
display: flex; flex-direction: column; align-items: center; gap: .65rem; margin: .35rem 0 .5rem;
}
.lottery-wheel-wrap {
position: relative; width: min(72vw, 15.5rem); aspect-ratio: 1; max-width: 15.5rem;
padding-top: .55rem;
}
.lottery-pointer {
position: absolute; top: 0; left: 50%; transform: translateX(-50%);
width: 0; height: 0; z-index: 3;
border-left: .55rem solid transparent; border-right: .55rem solid transparent;
border-top: 1rem solid #ff3b5c;
filter: drop-shadow(0 2px 3px rgba(0,0,0,.25));
}
.lottery-wheel {
width: 100%; height: 100%; border-radius: 50%;
border: 4px solid #ff8a1a;
box-shadow: 0 6px 18px rgba(255, 138, 26, .22), inset 0 0 0 3px rgba(255,255,255,.65);
position: relative; overflow: hidden;
transition: transform 4.2s cubic-bezier(.15, .85, .2, 1);
will-change: transform;
background: #ff8a1a;
}
.lottery-wheel.spinning { pointer-events: none; }
.lottery-seg-lab {
position: absolute; z-index: 1;
transform: translate(-50%, -50%);
text-align: center; font-size: .64rem; font-weight: 800; line-height: 1.1;
color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.55);
pointer-events: none; white-space: nowrap;
min-width: 2rem;
}
.lottery-wheel-hub {
position: absolute; inset: 0; margin: auto; width: 2.4rem; height: 2.4rem;
border-radius: 50%; background: linear-gradient(145deg, #fff, #ffe8cc);
border: 3px solid #ff8a1a; z-index: 2;
display: grid; place-items: center; font-size: .62rem; font-weight: 800; color: #ff6a00;
}
.lottery-meta {
width: 100%; font-size: .72rem; color: var(--muted); text-align: center; line-height: 1.45;
}
.lottery-meta b { color: var(--text); font-weight: 750; }
.lottery-result {
display: none; width: 100%; text-align: center; font-size: .82rem; font-weight: 700;
padding: .45rem .55rem; border-radius: .55rem; background: rgba(8,166,109,.12); color: var(--accent);
}
.lottery-result.show { display: block; }
.lottery-result.miss { background: rgba(120,120,120,.12); color: var(--muted); }
.lottery-prize-list {
display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; width: 100%;
margin-top: .15rem;
}
.lottery-prize-chip {
font-size: .58rem; text-align: center; padding: .28rem .2rem; border-radius: .4rem;
background: rgba(255,138,26,.08); color: var(--muted); line-height: 1.2;
}
.lottery-prize-chip b { display: block; color: var(--text); font-size: .62rem; }
.lottery-prize-chip .lottery-prize-prob {
display: block; margin-top: .12rem; font-size: .52rem; color: var(--muted); opacity: .92;
}

.invite-dialog { max-width: 22rem; }
.invite-hd {
display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .35rem;
}
.invite-back {
border: 0; background: transparent; color: var(--muted);
font: inherit; font-size: .82rem; font-weight: 650; cursor: pointer;
padding: .2rem .1rem; flex-shrink: 0; min-width: 3.2rem; text-align: left;
}
.invite-back:active { opacity: .85; }
.invite-hd .fp-hd { flex: 1; text-align: center; }
.invite-rec-tab {
border: 0; background: transparent; color: var(--accent);
font: inherit; font-size: .82rem; font-weight: 650; cursor: pointer; padding: .2rem .35rem;
}
.invite-card {
background: var(--inset); border: 1px solid var(--line); border-radius: 14px;
padding: .85rem .75rem .75rem; margin: .35rem 0 .65rem;
}
.invite-qr-wrap {
display: grid; place-items: center; padding: .35rem 0 .65rem;
}
.invite-qr-wrap img {
width: 200px; height: 200px; border-radius: 10px; background: #fff; padding: 6px;
}
.invite-code-box {
width: 100%; border: 1px dashed var(--line-strong); border-radius: 12px;
background: var(--card-face); padding: .65rem .55rem; text-align: center;
font: inherit; color: var(--text); cursor: pointer;
}
.invite-code-box b {
display: block; font-size: 1.45rem; font-weight: 800; letter-spacing: .18rem;
color: var(--accent); margin-bottom: .35rem;
}
.invite-copy-hint { font-size: .72rem; color: var(--muted); line-height: 1.35; white-space: nowrap; }
.invite-copy-hint b { color: var(--text); font-weight: 700; display: inline; }
.invite-rules {
background: var(--inset-soft); border-radius: 12px; padding: .65rem .75rem;
border: 1px solid var(--line);
}
.invite-rules-title { font-size: .78rem; font-weight: 700; margin-bottom: .45rem; }
.invite-rules ol {
margin: 0; padding-left: 1.1rem; font-size: .72rem; color: var(--muted); line-height: 1.55;
}
.invite-stats {
margin-top: .55rem; text-align: center; font-size: .76rem; color: var(--muted);
}
.invite-stats b { color: var(--accent); font-size: .95rem; }
.referral-rec-list {
max-height: min(50vh, 360px); overflow-y: auto; margin: .35rem 0 .55rem;
border: 1px solid var(--line); border-radius: 12px; background: var(--inset-soft);
}
.referral-rec-item {
padding: .6rem .7rem; border-top: 1px solid var(--line); font-size: .76rem;
}
.referral-rec-item:first-child { border-top: 0; }
.referral-rec-item b { color: var(--accent); }
.referral-rec-meta { color: var(--muted); font-size: .68rem; margin-top: .15rem; }
.referral-rec-empty { padding: 1.2rem .75rem; text-align: center; color: var(--muted); font-size: .78rem; }

#mePoints { cursor: pointer; }
.me-toggle:disabled { opacity: .45; cursor: not-allowed; }
.me-panel {
border-top: 1px solid var(--line); padding: .75rem .9rem 1rem;
background: var(--inset-soft);
}
.me-panel.hidden { display: none; }
.me-logout {
width: 100%; border: 1px solid var(--line); background: var(--card-face);
border-radius: 12px; padding: .85rem; font: inherit; font-size: .95rem;
color: #d94848; cursor: pointer; margin-bottom: .75rem;
}
.me-logout:active { opacity: .88; }

/* 账号页 */
.acc-search {
display: flex; gap: .45rem; margin-bottom: .65rem;
}
.acc-search input { flex: 1; }
.acc-card {
background: var(--card-face); border: 1px solid var(--line);
border-radius: 14px; padding: .85rem .9rem; margin-bottom: .65rem;
}
.acc-card.active { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.acc-card-hd {
display: flex; align-items: center; gap: .65rem; margin-bottom: .65rem; cursor: pointer;
}
.acc-av {
width: 42px; height: 42px; border-radius: 50%;
background: var(--inset); color: var(--muted); display: grid; place-items: center; flex-shrink: 0;
border: 2px solid #e6b35a; overflow: hidden;
}
.acc-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.acc-av svg { width: 22px; height: 22px; }
.acc-meta { flex: 1; min-width: 0; }
.acc-name-row {
display: flex; align-items: center; gap: .4rem; min-width: 0;
}
.acc-name {
font-weight: 700; font-size: .95rem;
min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.acc-note-btn {
flex-shrink: 0;
margin: 0; padding: .08rem .4rem;
border: 1px dashed var(--line);
border-radius: 999px;
background: transparent;
color: var(--muted);
font: inherit; font-size: .68rem; font-weight: 650;
cursor: pointer;
}
.acc-note-btn.has {
color: var(--accent);
border-style: solid;
border-color: rgba(31,170,102,.35);
background: rgba(31,170,102,.08);
}
.acc-note-btn:active { opacity: .82; }
.acc-id-row {
display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin-top: .1rem;
}
.acc-id { font-size: .72rem; color: var(--muted); }
.acc-id-row .acc-credit { flex-shrink: 0; }
.acc-run {
font-size: .75rem; color: var(--accent); white-space: nowrap; font-weight: 600;
}
.acc-run.warn { color: #c47a1a; }
.acc-run.off { color: var(--muted); }
.acc-grid {
display: grid; grid-template-columns: 1fr 1fr; gap: .45rem .6rem;
font-size: .78rem; margin-bottom: .65rem;
}
.acc-grid .lab { color: var(--muted); }
.acc-grid .val { font-weight: 600; margin-top: .1rem; word-break: break-all; }
.acc-vip-cell {
display: flex; align-items: center; justify-content: space-between; gap: .5rem;
flex-wrap: wrap;
}
.acc-vip-cell .lab { margin: 0; }
.acc-credit {
display: inline-flex; align-items: center;
font-size: .72rem; font-weight: 650; color: var(--muted);
padding: .12rem .4rem; border-radius: 999px;
border: 1px solid var(--line); background: var(--inset-soft);
}
.acc-credit.on { color: #1faa66; border-color: rgba(31,170,102,.35); }
.acc-credit.warn { color: var(--danger-soft); border-color: rgba(220,80,80,.35); }
.acc-credit.muted { opacity: .75; }
.vip-badge {
--vip-c: #8a9390;
position: relative; display: inline-flex; flex-direction: column; align-items: center;
min-width: 2.4rem; padding: .1rem .2rem .28rem; line-height: 1;
}
.vip-badge .vip-lab {
font-size: .92rem; font-weight: 900; letter-spacing: .02em;
color: var(--vip-c);
text-shadow: 0 1px 0 rgba(0,0,0,.25);
z-index: 1;
}
.vip-badge .vip-base {
width: 1.55rem; height: .42rem; margin-top: -.08rem;
border-radius: 50%;
background: radial-gradient(ellipse at center, var(--vip-c) 0%, transparent 72%);
opacity: .85;
}
.vip-badge.empty .vip-lab { font-size: .78rem; font-weight: 700; color: var(--muted); }
.vip-badge.empty .vip-base { display: none; }
.vip-badge[data-lv="1"] { --vip-c: #9aa3a0; }
.vip-badge[data-lv="2"] { --vip-c: #5b6cff; }
.vip-badge[data-lv="3"] { --vip-c: #f0a020; }
.vip-badge[data-lv="4"] { --vip-c: #2ec4b6; }
.vip-badge[data-lv="5"] { --vip-c: #3b82f6; }
.vip-badge[data-lv="6"] { --vip-c: #c084fc; }
.vip-badge.sv[data-lv="2"] { --vip-c: #c47a3a; }
.vip-badge.sv[data-lv="3"] { --vip-c: #d4a574; }
.vip-badge.sv[data-lv="4"] { --vip-c: #1f8a7a; }
.vip-badge.sv[data-lv="5"] { --vip-c: #1d4ed8; }
.vip-badge.sv[data-lv="6"] { --vip-c: #a21caf; }
.vip-badge.sv .vip-lab { font-size: .82rem; }

.portal-toast {
position: fixed; left: 50%; top: 42%; transform: translate(-50%, -50%) scale(.96);
z-index: 400; pointer-events: none;
background: rgba(20, 24, 22, .88); color: #fff;
padding: .55rem 1rem; border-radius: 12px;
font-size: .86rem; font-weight: 650;
opacity: 0; transition: opacity .18s ease, transform .18s ease;
box-shadow: 0 8px 28px rgba(0,0,0,.35);
max-width: min(88vw, 20rem);
text-align: center; line-height: 1.4; white-space: normal;
}
.portal-toast.show { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.portal-toast.err { background: rgba(120, 40, 36, .92); }
html[data-theme="light"] .portal-toast {
background: rgba(30, 34, 32, .9);
}

.confirm-dialog {
max-width: 20rem;
text-align: center;
padding: 1.15rem 1.1rem 1rem;
}
.confirm-dialog .confirm-ico {
width: 2.6rem; height: 2.6rem; margin: 0 auto .65rem;
border-radius: 50%;
display: grid; place-items: center;
background: rgba(31, 170, 102, .12);
color: #1faa66;
}
.confirm-dialog .confirm-ico svg { width: 1.35rem; height: 1.35rem; }
.confirm-dialog.danger .confirm-ico {
background: rgba(220, 80, 80, .12);
color: var(--danger-soft, #e07070);
}
.confirm-dialog.warn .confirm-ico {
background: rgba(230, 170, 60, .14);
color: #e6aa3c;
}
.confirm-dialog .confirm-title {
margin: 0 0 .35rem;
font-size: 1.02rem;
font-weight: 800;
}
.confirm-dialog .confirm-msg {
margin: 0 0 1rem;
color: var(--muted);
font-size: .86rem;
line-height: 1.45;
white-space: pre-line;
}
.confirm-dialog .confirm-actions {
justify-content: center;
gap: .55rem;
}
.confirm-dialog .confirm-actions .btn { min-width: 5.2rem; }
.remark-dialog { text-align: left; }
.remark-dialog .confirm-title { text-align: center; }
.remark-dialog .confirm-msg { margin-bottom: .55rem; }
.remark-dialog #remarkInput {
width: 100%; box-sizing: border-box;
margin: 0 0 .85rem;
padding: .55rem .7rem;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--inset-soft);
color: var(--text);
font: inherit; font-size: .92rem;
}
.remark-dialog .remark-actions { justify-content: flex-end; }
.remark-dialog #btnRemarkClear { margin-right: auto; min-width: 4.2rem; }
.confirm-dialog.danger #btnConfirmOk {
background: rgba(220, 80, 80, .18);
border-color: rgba(220, 80, 80, .45);
color: #f0a0a0;
}
.acc-actions {
display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem;
}
.acc-act {
border-radius: 10px; padding: .42rem .15rem .38rem;
font: inherit; font-size: .68rem; font-weight: 700;
display: flex; flex-direction: column; align-items: center; gap: .18rem;
cursor: pointer; border: 1px solid transparent;
}
.acc-act svg { width: 1.05rem; height: 1.05rem; }
.acc-act.renew {
color: #178a4b; background: rgba(45,154,95,.14); border-color: rgba(45,154,95,.28);
}
.acc-act.disable {
color: #6b7280; background: rgba(120,130,140,.12); border-color: rgba(120,130,140,.28);
}
.acc-act.enable {
color: #178a4b; background: rgba(45,154,95,.12); border-color: rgba(45,154,95,.28);
}
.acc-act.update {
color: #2f6fed; background: rgba(47,111,237,.12); border-color: rgba(47,111,237,.28);
}
.acc-act.delete {
color: #d94848; background: rgba(217,72,72,.12); border-color: rgba(217,72,72,.28);
}
.acc-act:active { opacity: .88; }
html[data-theme="light"] .acc-act.renew { background: #e8f7ef; }
html[data-theme="light"] .acc-act.disable { background: #f1f2f4; color: #4b5563; }
html[data-theme="light"] .acc-act.update { background: #eaf1ff; }
html[data-theme="light"] .acc-act.delete { background: #fdecec; }
.store-fab-anchor {
position: fixed;
z-index: 40;
touch-action: none;
-webkit-user-select: none;
user-select: none;
}
.store-fab-anchor.draggable-fab .acc-fab { cursor: grab; }
.store-fab-anchor.draggable-fab.dragging .acc-fab { cursor: grabbing; }
.acc-fab-wrap {
position: fixed; right: 1rem; bottom: calc(4.2rem + env(safe-area-inset-bottom, 0px));
display: flex; flex-direction: column; gap: .45rem; z-index: 40;
}
.acc-fab-wrap.mid {
top: 50%;
bottom: auto;
transform: translateY(-50%);
}
.acc-fab-wrap.draggable-fab {
touch-action: none;
-webkit-user-select: none;
user-select: none;
}
.acc-fab-wrap.draggable-fab .acc-fab {
cursor: grab;
transition: transform .18s ease, box-shadow .18s ease;
}
.acc-fab-wrap.draggable-fab .acc-fab.acc-fab-assets {
flex-direction: column;
align-items: center;
justify-content: center;
gap: .3rem;
min-width: 4.05rem;
padding: .72rem .68rem .62rem;
border-radius: var(--fab-radius);
border: 1px solid var(--line-strong);
background: var(--ui-surface);
color: var(--text);
box-shadow: var(--glow);
line-height: 1.15;
}
.acc-fab-wrap.draggable-fab {
display: flex;
flex-direction: column;
align-items: stretch;
gap: .55rem;
}
.acc-fab-wrap.draggable-fab .acc-fab.acc-fab-assets .acc-fab-top {
display: flex;
flex-direction: column;
align-items: center;
gap: .24rem;
}
.acc-fab-wrap.draggable-fab .acc-fab.acc-fab-assets .hq-ico {
width: 2.15rem;
height: 2.15rem;
border-radius: 12px;
}
.acc-fab-wrap.draggable-fab .acc-fab.acc-fab-assets .hq-ico svg {
width: 1.1rem;
height: 1.1rem;
}
.acc-fab-wrap.draggable-fab .acc-fab.acc-fab-assets .acc-fab-lab {
font-size: .68rem;
font-weight: 700;
letter-spacing: .02em;
white-space: nowrap;
color: var(--text);
}
.acc-fab-wrap.draggable-fab .acc-fab.acc-fab-assets .acc-fab-sub {
margin: 0;
font-size: .6rem;
font-weight: 700;
opacity: 1;
padding: .1rem .4rem;
border-radius: 999px;
background: var(--accent-dim);
color: var(--accent);
}
html[data-theme="light"] .acc-fab-wrap.draggable-fab .acc-fab.acc-fab-assets {
background: var(--ui-surface);
}
.acc-fab-wrap.draggable-fab.dragging .acc-fab {
cursor: grabbing;
transform: scale(1.05);
box-shadow: 0 12px 32px rgba(0, 0, 0, .28);
}
.acc-fab-wrap.hidden { display: none; }
.acc-fab {
border: 1px solid rgba(255, 255, 255, .18);
border-radius: var(--fab-radius);
padding: .7rem 1.05rem;
background: var(--accent-grad);
color: #fff;
font: inherit;
font-size: .85rem;
font-weight: 650;
cursor: pointer;
box-shadow: var(--fab-shadow);
display: inline-flex;
align-items: center;
justify-content: center;
gap: .35rem;
transition: transform .18s ease, box-shadow .18s ease;
}
.acc-fab:active { transform: scale(.97); }
.acc-fab svg { width: 1rem; height: 1rem; flex-shrink: 0; }
.acc-fab-sub {
font-size: .72rem; font-weight: 600; opacity: .88; margin-left: .1rem;
}
#secAccounts { padding-bottom: 5.5rem; }
#secAssets { padding-bottom: 5.5rem; }
.kami-dialog .kami-hero {
display: flex; flex-direction: column; align-items: center; gap: .35rem;
text-align: center; margin: .15rem 0 .75rem;
}
.kami-dialog .kami-ico {
width: 52px; height: 52px; border-radius: 14px;
display: grid; place-items: center;
background: var(--accent-dim); color: var(--accent);
}
.kami-dialog .kami-ico svg { width: 26px; height: 26px; }
.kami-dialog .kami-lab {
font-size: .82rem; font-weight: 650; color: var(--text);
}
.kami-dialog .kami-desc {
margin: 0; font-size: .72rem; color: var(--muted); line-height: 1.45; max-width: 22rem;
}
.kami-dialog .kami-input {
width: 100%; margin: .15rem 0 .55rem;
font-size: .95rem; letter-spacing: .04em; text-align: center;
}
.kami-dialog .kami-shop {
display: none; margin: 0 0 .35rem; font-size: .78rem; text-align: center;
}
.kami-dialog .kami-shop a { color: var(--accent); }
.kami-dialog .kami-acc {
margin: 0 0 .55rem;
}
.kami-dialog .kami-acc label {
display: block; font-size: .72rem; color: var(--muted); margin-bottom: .28rem; text-align: left;
}
.kami-dialog .kami-acc select {
width: 100%; font-size: .85rem;
}

/* 购买弹窗（对齐同行：余额 / 选品 / 数量 / 合计） */
.shop-dialog {
--shop-accent: #ff8a3d;
--shop-accent-soft: rgba(255, 138, 61, 0.14);
--shop-accent-line: rgba(255, 138, 61, 0.55);
max-width: 22.5rem; width: calc(100vw - 1.6rem);
padding: .95rem 1rem 1rem;
}
.shop-dialog .shop-hd {
display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem;
margin-bottom: .55rem;
}
.shop-dialog .shop-hd-main { min-width: 0; }
.shop-dialog .shop-title {
font-size: 1.05rem; font-weight: 750; color: var(--text); line-height: 1.25;
}
.shop-dialog .shop-bal {
margin-top: .28rem; font-size: .78rem; color: var(--muted);
display: flex; align-items: center; gap: .35rem; flex-wrap: wrap;
}
.shop-dialog .shop-bal b {
color: var(--shop-accent); font-weight: 750; font-variant-numeric: tabular-nums;
}
.shop-dialog .shop-x {
border: 0; background: transparent; color: var(--muted); cursor: pointer;
font-size: 1.15rem; line-height: 1; padding: .15rem .25rem; border-radius: 8px;
}
.shop-dialog .shop-x:hover { color: var(--text); background: var(--inset); }
.shop-dialog .shop-acc {
margin: 0 0 .65rem; padding: .45rem .55rem; border-radius: 10px;
background: var(--inset); border: 1px solid var(--line);
font-size: .78rem; color: var(--muted);
}
.shop-dialog .shop-acc-pick {
display: flex; align-items: center; gap: .45rem;
}
.shop-dialog .shop-acc-lab {
flex-shrink: 0; font-weight: 600; color: var(--muted);
}
.shop-dialog .shop-acc-select {
flex: 1; min-width: 0;
border: 0;
background-color: var(--card-face, var(--bg));
font: inherit; font-size: .84rem; font-weight: 650;
color: var(--text); padding: .15rem 1.6rem .15rem 0;
appearance: none; -webkit-appearance: none;
color-scheme: light dark;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right .1rem center;
background-size: .85rem;
}
html[data-theme="dark"] .shop-dialog .shop-acc-select,
:root:not([data-theme="light"]) .shop-dialog .shop-acc-select {
color-scheme: dark;
}
html[data-theme="light"] .shop-dialog .shop-acc-select {
color-scheme: light;
}
html[data-theme="dark"] .shop-dialog .shop-acc-select option,
:root:not([data-theme="light"]) .shop-dialog .shop-acc-select option {
background-color: #1e2420;
color: #e8ece9;
}
html[data-theme="light"] .shop-dialog .shop-acc-select option {
background-color: #ffffff;
color: #152019;
}
.shop-dialog .shop-acc-select:disabled { opacity: .65; }
.shop-dialog .shop-acc strong { color: var(--text); font-weight: 650; }
.shop-dialog .shop-sec-hd {
display: flex; align-items: baseline; justify-content: space-between; gap: .5rem;
margin: 0 0 .4rem; font-size: .82rem; font-weight: 650; color: var(--text);
}
.shop-dialog .shop-sec-hd .hint { font-size: .72rem; font-weight: 500; color: var(--muted); }
.shop-pkg-grid {
display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem;
margin-bottom: .7rem;
}
@media (min-width: 520px) {
.shop-pkg-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.shop-pkg {
position: relative; border: 1.5px solid var(--line); background: var(--card-face);
border-radius: 12px; padding: .55rem .35rem .5rem; cursor: pointer;
font: inherit; color: var(--text); text-align: center; min-width: 0;
}
.shop-pkg.on {
border-color: var(--shop-accent); background: var(--shop-accent-soft);
}
.shop-pkg .pk-lab {
display: block; font-size: .68rem; color: var(--muted); margin-bottom: .2rem;
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.shop-pkg .pk-days {
display: block; font-size: 1.15rem; font-weight: 800; color: var(--shop-accent);
font-variant-numeric: tabular-nums; line-height: 1.15;
}
.shop-pkg .pk-pts {
display: block; margin-top: .28rem; font-size: .68rem; color: var(--muted);
}
.shop-pkg .pk-check {
display: none; position: absolute; top: .28rem; right: .28rem;
width: 1rem; height: 1rem; border-radius: 999px; background: var(--shop-accent);
color: #fff; font-size: .65rem; line-height: 1rem; text-align: center; font-weight: 700;
}
.shop-pkg.on .pk-check { display: block; }
.shop-sku {
display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem;
padding: .7rem .75rem; margin-bottom: .7rem; border-radius: 12px;
background: var(--card-face); border: 1.5px solid var(--shop-accent-line);
border-left: 4px solid var(--shop-accent);
}
.shop-sku .sku-main { min-width: 0; }
.shop-sku .sku-t { font-size: .92rem; font-weight: 700; color: var(--text); }
.shop-sku .sku-s { margin-top: .15rem; font-size: .72rem; color: var(--muted); }
.shop-sku .sku-reward {
margin-top: .38rem; font-size: .78rem; color: var(--muted); line-height: 1.35;
}
.shop-sku .sku-reward b {
color: var(--shop-accent); font-weight: 750;
font-variant-numeric: tabular-nums; letter-spacing: -.01em;
}
.shop-sku .sku-price {
text-align: right; flex-shrink: 0; color: var(--shop-accent);
font-size: 1.25rem; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1;
padding-top: .1rem;
}
.shop-sku .sku-price small {
display: block; margin-top: .12rem; font-size: .68rem; font-weight: 500; color: var(--muted);
}
.shop-qty {
display: flex; align-items: center; justify-content: space-between; gap: .6rem;
margin-bottom: .2rem;
}
.shop-qty .ql { font-size: .82rem; font-weight: 650; color: var(--text); }
.shop-step {
display: inline-flex; align-items: center; gap: .35rem;
}
.shop-step button {
width: 1.85rem; height: 1.85rem; border-radius: 8px; border: 1px solid var(--line-strong);
background: var(--inset); color: var(--text); font-size: 1rem; font-weight: 700;
cursor: pointer; line-height: 1;
}
.shop-step button:disabled { opacity: .4; cursor: not-allowed; }
.shop-step .qn {
min-width: 2.4rem; height: 1.85rem; border-radius: 8px;
display: grid; place-items: center;
background: var(--shop-accent-soft); color: var(--shop-accent);
font-weight: 750; font-variant-numeric: tabular-nums; font-size: .92rem;
border: 1px solid var(--shop-accent-line);
}
.shop-qty-hint {
  margin: 0 0 .7rem;
  font-size: .7rem;
  color: var(--muted);
  text-align: right;
}
.shop-qty-hint.err {
  color: var(--danger, #e25555);
}
.free-assist-risk {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  margin: .15rem 0 .65rem;
  padding: .55rem .65rem;
  border-radius: .55rem;
  border: 1px solid rgba(239, 68, 68, .45);
  background: rgba(239, 68, 68, .14);
  color: #ff6b6b;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
}
.free-assist-risk.hidden { display: none; }
.proxy-invite-result {
  margin: .45rem 0 .55rem;
  padding: .55rem .65rem;
  border-radius: .55rem;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
}
.proxy-invite-result.hidden { display: none; }
.proxy-invite-word-row {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex-wrap: wrap;
}
.proxy-invite-word-row code {
  flex: 1 1 8rem;
  font-size: .9rem;
  word-break: break-all;
  color: var(--fg, #eee);
}
.proxy-invite-orders {
  margin-top: .65rem;
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: .45rem;
}
.proxy-invite-orders-hd {
  font-size: .78rem;
  color: var(--muted);
  margin-bottom: .35rem;
}
.proxy-invite-orders-list {
  display: grid;
  gap: .35rem;
  max-height: 9rem;
  overflow: auto;
}
.proxy-invite-order {
  display: flex;
  justify-content: space-between;
  gap: .5rem;
  font-size: .78rem;
  padding: .35rem .45rem;
  border-radius: .4rem;
  background: rgba(255,255,255,.03);
}
.proxy-invite-order b { font-weight: 600; }
.free-assist-risk svg {
  flex: 0 0 auto;
  width: 1.05rem;
  height: 1.05rem;
  margin-top: .08rem;
  color: #ff5252;
}
.free-assist-risk span { flex: 1; min-width: 0; }
.shop-sum {
display: grid; grid-template-columns: 1fr 1fr; gap: .45rem;
margin-bottom: .75rem;
}
.shop-sum.one { grid-template-columns: 1fr; }
.shop-sum-box {
border: 1px solid var(--line); border-radius: 12px; background: var(--inset);
padding: .55rem .65rem;
}
.shop-sum-box .k { font-size: .7rem; color: var(--muted); }
.shop-sum-box .v {
margin-top: .2rem; font-size: 1rem; font-weight: 750; color: var(--shop-accent);
font-variant-numeric: tabular-nums;
}
.shop-sum.row {
display: flex; flex-direction: column; gap: .35rem;
padding: .55rem .7rem; border-radius: 12px; border: 1px solid var(--line);
background: var(--inset); margin-bottom: .75rem;
}
.shop-sum.row.free-assist-metrics {
margin-top: .35rem;
margin-bottom: .45rem;
}
.shop-sum.row.free-assist-metrics .sr b {
font-size: .95rem; font-weight: 800;
}
.shop-sum.row .sr {
display: flex; justify-content: space-between; align-items: center; gap: .5rem;
font-size: .82rem; color: var(--muted);
}
.shop-sum.row .sr b {
color: var(--shop-accent); font-weight: 750; font-variant-numeric: tabular-nums;
}
.shop-sum.row .sr b.hongbao-expect {
font-size: .76rem; font-weight: 700; max-width: 72%;
text-align: right; line-height: 1.3; word-break: break-all;
}

/* 小蚕红包：参考进度分层，仍走商店购买流程 */
.hongbao-dialog .hongbao-title-row {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-width: 0;
}
.hongbao-dialog .hongbao-price-pill {
  flex-shrink: 0; padding: .18rem .5rem; border-radius: 999px;
  font-size: .72rem; font-weight: 750; color: #fff;
  background: var(--shop-accent, var(--accent));
}
.hongbao-dialog .hongbao-sub {
  margin-top: .12rem; font-size: .72rem; color: var(--muted); font-weight: 500;
}
.hongbao-dialog .hongbao-bal-line {
  display: flex; align-items: center; gap: .35rem; flex-wrap: wrap;
  margin: 0 0 .55rem; font-size: .78rem; color: var(--muted);
}
.hongbao-dialog .hongbao-bal-line b {
  color: var(--shop-accent, var(--accent)); font-weight: 750; font-variant-numeric: tabular-nums;
}
.hongbao-member-note {
  margin: 0 0 .55rem; padding: .48rem .6rem; border-radius: 10px;
  font-size: .84rem; font-weight: 650; line-height: 1.45;
  color: #f0d48a;
  background: color-mix(in srgb, #e8c56b 16%, transparent);
}
html[data-theme="light"] .hongbao-member-note {
  color: #8a6410;
  background: color-mix(in srgb, #e8c56b 22%, transparent);
}
.hongbao-dialog .hongbao-status {
  margin: 0 0 .55rem; padding: .55rem .65rem; border-radius: 12px;
  background: var(--inset); border: 1px solid var(--line);
}
.hongbao-dialog .hongbao-status[data-state="ok"] {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, var(--inset));
}
.hongbao-dialog .hongbao-status[data-state="bad"] {
  border-color: color-mix(in srgb, var(--warn, #c45) 50%, var(--line));
  background: color-mix(in srgb, var(--warn, #c45) 8%, var(--inset));
}
.hongbao-dialog .hongbao-status-lab {
  font-size: .68rem; color: var(--muted); margin-bottom: .18rem;
}
.hongbao-dialog .hongbao-status-val {
  font-size: .86rem; font-weight: 700; color: var(--text); line-height: 1.35;
}
.hongbao-dialog .hongbao-status[data-state="bad"] .hongbao-status-val {
  color: var(--warn, #c45);
}
.hongbao-dialog .hongbao-status-meta {
  margin-top: .22rem; font-size: .72rem; color: var(--muted); line-height: 1.35;
}
.hongbao-dialog .hongbao-status-meta:empty { display: none; }
.hongbao-dialog .hongbao-alert {
  margin: 0 0 .55rem; padding: .5rem .6rem; border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--warn, #c45) 55%, var(--line));
  background: color-mix(in srgb, var(--warn, #c45) 10%, var(--inset));
  color: var(--warn, #c45); font-size: .78rem; font-weight: 650; line-height: 1.4;
}
.hongbao-dialog .hongbao-alert.hidden { display: none; }
.hongbao-dialog .hongbao-progress.hidden { display: none; }
.hongbao-dialog .hongbao-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; margin: 0 0 .65rem;
}
.hongbao-dialog .hongbao-stat {
  padding: .5rem .35rem; border-radius: 12px; background: var(--inset);
  border: 1px solid var(--line); text-align: center;
}
.hongbao-dialog .hongbao-stat span {
  display: block; font-size: .66rem; color: var(--muted); margin-bottom: .2rem;
}
.hongbao-dialog .hongbao-stat b {
  display: block; font-size: .92rem; font-weight: 800; color: var(--text);
  font-variant-numeric: tabular-nums;
}
.hongbao-dialog .hongbao-tiers-hd {
  margin: 0 0 .35rem; font-size: .78rem; font-weight: 700; color: var(--text);
}
.hongbao-dialog .hongbao-tiers {
  display: flex; flex-direction: column; gap: .4rem; margin: 0 0 .75rem;
}
.hongbao-dialog .hongbao-tier {
  padding: .5rem .6rem; border-radius: 12px;
  background: var(--inset); border: 1px solid var(--line);
}
.hongbao-dialog .hongbao-tier.is-done {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
}
.hongbao-dialog .hongbao-tier-top {
  display: flex; align-items: baseline; justify-content: space-between; gap: .5rem;
}
.hongbao-dialog .hongbao-tier-need {
  font-size: .8rem; font-weight: 700; color: var(--text);
}
.hongbao-dialog .hongbao-tier-reward {
  font-size: .8rem; font-weight: 800; color: var(--shop-accent, var(--accent));
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.hongbao-dialog .hongbao-tier-mid {
  display: flex; justify-content: space-between; gap: .4rem;
  margin-top: .18rem; font-size: .68rem; color: var(--muted);
}
.hongbao-dialog .hongbao-tier-bar {
  margin-top: .35rem; height: .28rem; border-radius: 999px;
  background: color-mix(in srgb, var(--line) 80%, transparent); overflow: hidden;
}
.hongbao-dialog .hongbao-tier-bar > i {
  display: block; height: 100%; width: 0; border-radius: inherit;
  background: linear-gradient(90deg, var(--shop-accent, var(--accent)), color-mix(in srgb, var(--shop-accent, var(--accent)) 55%, #f0c36a));
}
.hongbao-dialog .lucky10-pool {
  margin: 0 0 .65rem;
  padding: .55rem .55rem .5rem;
  border-radius: 12px;
  background: var(--shop-accent-soft, rgba(255, 138, 61, 0.14));
  border: 1px solid var(--shop-accent-line, rgba(255, 138, 61, 0.55));
}
.hongbao-dialog .lucky10-pool-hd {
  color: var(--shop-accent, #ff8a3d);
  font-weight: 800;
  letter-spacing: .02em;
}
.hongbao-dialog .lucky10-pool-list {
  display: flex; flex-direction: column; gap: .28rem;
  max-height: 11.5rem; overflow: auto; -webkit-overflow-scrolling: touch;
  padding-right: .1rem;
}
.hongbao-dialog .lucky10-pool-item {
  display: flex; align-items: center; justify-content: space-between; gap: .55rem;
  padding: .4rem .5rem .4rem .55rem; border-radius: 10px;
  background: var(--card-face, var(--inset));
  border: 1px solid color-mix(in srgb, var(--shop-accent, #ff8a3d) 28%, var(--line));
  border-left: 3px solid var(--shop-accent, #ff8a3d);
}
.hongbao-dialog .lucky10-pool-main {
  min-width: 0; flex: 1; display: flex; flex-direction: column; gap: .12rem;
}
.hongbao-dialog .lucky10-pool-name {
  font-size: .8rem; font-weight: 750; color: var(--shop-accent, #ff8a3d); min-width: 0;
}
.hongbao-dialog .lucky10-pool-desc {
  font-size: .68rem; color: var(--muted);
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.hongbao-dialog .lucky10-pool-rate {
  flex: 0 0 auto; font-size: .72rem; font-weight: 750;
  color: var(--shop-accent, #ff8a3d);
  white-space: nowrap;
}
.hongbao-dialog .lucky10-pool-rate.is-na {
  color: var(--muted); font-weight: 600;
}
.hongbao-dialog .hongbao-pay { margin-top: .1rem; }

.shop-pay {
width: 100%; min-height: 2.7rem; border: 0; border-radius: 12px;
background: var(--shop-accent); color: #fff; font: inherit; font-size: .95rem;
font-weight: 700; cursor: pointer;
display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
}
.shop-pay:disabled {
opacity: .55; cursor: not-allowed; filter: saturate(.7);
}
.shop-pay.recharge-mode {
opacity: 1; cursor: pointer; filter: none;
background: linear-gradient(135deg, #e8874a 0%, #d96a28 100%);
}
.shop-pay svg { width: 1.05rem; height: 1.05rem; flex-shrink: 0; }
.shop-recharge-extra {
margin: .45rem 0 0; font-size: .76rem; color: var(--muted); text-align: center; line-height: 1.45;
}
.shop-recharge-extra .linkish {
border: 0; background: none; padding: 0; font: inherit; color: var(--shop-accent);
cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
}
.shop-dialog .shop-bal-action {
border: 0; background: none; padding: 0; font: inherit; font-size: .74rem;
color: var(--shop-accent); cursor: pointer; font-weight: 650;
}
.shop-dialog .shop-bal-action.hidden { display: none; }
.shop-note {
margin: .55rem 0 0; font-size: .68rem; color: var(--muted); text-align: center; line-height: 1.4;
}
.shop-dialog .status { margin: .45rem 0 0; text-align: center; }

.ap-task-zone { position: relative; }
.ap-task-lock {
position: absolute; inset: 0; z-index: 2;
display: flex; flex-direction: column; align-items: center; justify-content: center;
gap: .55rem; padding: 1rem;
background: color-mix(in srgb, var(--card-face) 78%, transparent);
backdrop-filter: blur(2px); border-radius: inherit;
text-align: center;
}
.ap-task-lock p {
margin: 0; font-size: .96rem; font-weight: 600; color: var(--text); line-height: 1.55;
}

.bind-dialog {
padding: 1.05rem 1.05rem 1.15rem !important;
text-align: center;
}
.bind-dialog .bind-top {
display: flex; align-items: center; justify-content: center; gap: .55rem;
margin: 0 0 .35rem;
}
.bind-dialog .bind-ico {
width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0;
display: grid; place-items: center;
background: var(--accent-dim); color: var(--accent);
}
.bind-dialog .bind-ico svg { width: 20px; height: 20px; }
.bind-dialog .bind-title {
margin: 0; font-size: 1.05rem; font-weight: 750; color: var(--text); letter-spacing: .02em;
}
.bind-dialog .bind-sub {
margin: 0 0 .9rem; font-size: .74rem; color: var(--muted); line-height: 1.45;
}
.bind-dialog .bind-qr-wrap {
position: relative;
margin: 0 auto .7rem; width: min(228px, 68vw);
padding: .7rem; border-radius: 16px;
background: #fff;
border: 1px solid rgba(20, 26, 22, 0.08);
box-shadow: 0 10px 28px rgba(20, 26, 22, 0.08);
}
.bind-dialog .bind-qr-wrap img {
display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain;
border-radius: 6px; background: #fff;
}
.bind-dialog .bind-qr-loading {
display: none;
position: absolute; inset: .7rem; border-radius: 6px;
place-items: center; text-align: center;
background: rgba(255,255,255,.92);
color: var(--muted); font-size: .8rem; font-weight: 550;
}
.bind-dialog .bind-qr-wrap.loading .bind-qr-loading { display: grid; }
.bind-dialog .bind-qr-wrap.loading img { opacity: 0; }
.bind-dialog .bind-meta {
display: flex; align-items: center; justify-content: space-between; gap: .45rem;
width: min(228px, 68vw); margin: 0 auto .85rem;
box-sizing: border-box;
}
.bind-dialog .bind-meta-tip {
flex: 1; min-width: 0;
font-size: .8rem; color: var(--muted); font-weight: 500;
text-align: left; line-height: 1.35;
}
.bind-dialog .bind-ttl {
flex-shrink: 0; min-width: 3.4rem; text-align: center;
font-size: .78rem; font-weight: 750; font-variant-numeric: tabular-nums;
padding: .3rem .6rem; border-radius: 999px;
background: var(--accent-dim); color: var(--accent-strong, var(--accent));
}
.bind-dialog .bind-ttl.warn { background: var(--warn-dim); color: var(--warn); }
.bind-dialog .bind-ttl.dead { background: var(--inset); color: var(--muted); }
.bind-dialog .bind-actions {
display: grid; grid-template-columns: 1fr 1fr; gap: .5rem;
width: min(228px, 68vw); margin: 0 auto;
}
.bind-dialog .bind-actions .btn {
min-height: 2.45rem; border-radius: 12px; font-weight: 650;
}
.bind-dialog .bind-status {
min-height: 1.2rem; margin: .55rem 0 0; font-size: .76rem;
}
.bind-dialog .bind-status:empty { display: none; }
html[data-theme="dark"] .bind-dialog .bind-qr-wrap {
border-color: rgba(244, 241, 232, 0.1);
box-shadow: 0 12px 32px rgba(0,0,0,.35);
}
html[data-theme="dark"] .bind-dialog .bind-qr-loading {
background: rgba(255,255,255,.96); color: #4a534c;
}
.ann-mask.hidden { display:none; }
/* 公告：与 flash-mask 同款底部弹出（annMask 使用 class="flash-mask"） */
.ann-body { font-size:.88rem; line-height:1.55; word-break:break-word; }
.ann-body a { color:var(--accent); }
.ann-foot { margin-top:1rem; display:flex; flex-direction:column; gap:.65rem; }
.ann-foot label { font-size:.8rem; color:var(--muted); display:flex; align-items:center; gap:.4rem; }
.ann-time { color:var(--muted); font-size:.75rem; margin-bottom:.75rem; }
.flash-dialog .ann-time { margin-top: -.15rem; }

.ann-hist-dialog { max-height: min(82vh, 640px); display: flex; flex-direction: column; }
.ann-hist-hd {
  display: flex; align-items: center; gap: .35rem;
  margin-bottom: .55rem;
}
.ann-hist-hd .fp-hd { flex: 1; margin: 0; font-size: 1.05rem; }
.ann-hist-back, .ann-hist-close {
  width: 2rem; height: 2rem; border: 0; border-radius: 10px;
  background: transparent; color: var(--muted); font-size: 1.35rem;
  cursor: pointer; line-height: 1;
}
.ann-hist-back:active, .ann-hist-close:active { opacity: .75; }
.ann-hist-list {
  flex: 1; overflow: auto; display: flex; flex-direction: column; gap: .45rem;
  margin: 0 -.15rem; padding: 0 .15rem .2rem;
  max-height: min(58vh, 460px);
}
.ann-hist-item {
  width: 100%; text-align: left; padding: .7rem .75rem;
  border: 1px solid var(--line); border-radius: 12px;
  background: rgba(255,255,255,.03); color: var(--text);
  font: inherit; cursor: pointer;
}
.ann-hist-item:active { opacity: .9; }
.ann-hist-item-title {
  font-size: .9rem; font-weight: 650; display: flex; align-items: center; gap: .4rem;
}
.ann-hist-badge {
  font-size: .68rem; font-weight: 650; padding: .08rem .35rem;
  border-radius: 999px; background: rgba(8,166,109,.18); color: var(--accent);
}
.ann-hist-item-meta { margin-top: .28rem; font-size: .72rem; color: var(--muted); }
.ann-hist-detail { flex: 1; overflow: auto; max-height: min(58vh, 460px); }
.ann-hist-empty { padding: 1.2rem .5rem; text-align: center; color: var(--muted); font-size: .86rem; }
html[data-theme="light"] .ann-hist-item { background: #f4f5f3; }
.qr-box { text-align:center; padding:.5rem 0; }
.qr-box img { width:200px; height:200px; background:#fff; border-radius:8px; }
.qr-box .hint { color:var(--muted); font-size:.8rem; margin-top:.5rem; }

/* 报名配置 sheet（8688 staging / 同行对标） */
.signup-sheet .dt-sheet-panel { max-height: min(90vh, 680px); }
.signup-sheet-target {
  background: var(--card-face, rgba(255,255,255,.04));
  border: 1px solid var(--line, rgba(255,255,255,.08));
  border-radius: 12px;
  padding: .75rem .85rem;
  margin-bottom: .65rem;
}
.signup-sheet-store-name { font-weight: 700; font-size: .95rem; line-height: 1.35; }
.signup-sheet-meta { display: flex; flex-wrap: wrap; gap: .35rem .45rem; margin-top: .4rem; font-size: .78rem; align-items: center; }
.signup-sheet-meta .order-tag {
  margin: 0;
  color: #ffb05c;
  background: rgba(255, 122, 0, 0.22);
  border: 1px solid rgba(255, 176, 92, 0.75);
  font-weight: 750;
  font-size: .72rem;
  padding: .1rem .4rem;
}
html[data-theme="light"] .signup-sheet-meta .order-tag {
  color: #d96500;
  background: rgba(255, 122, 0, 0.14);
  border-color: rgba(217, 101, 0, 0.45);
}
.signup-sheet-dist { color: var(--muted); font-size: .78rem; }
.order-tag-limit {
  color: #f0a8a0 !important;
  background: rgba(224, 133, 124, 0.2) !important;
  border-color: rgba(240, 168, 160, 0.65) !important;
}
.order-tag-vip {
  color: #f0d08a !important;
  background: rgba(232, 184, 106, 0.18) !important;
  border-color: rgba(240, 208, 138, 0.6) !important;
}
.order-tag-rate {
  color: #fbbf24 !important;
  background: rgba(251, 191, 36, 0.16) !important;
  border-color: rgba(251, 191, 36, 0.55) !important;
}
.signup-sheet-act { margin-top: .45rem; font-size: .82rem; color: var(--text); }
.signup-row, .signup-chk {
  display: flex; align-items: center; gap: .55rem;
  margin: .5rem 0; font-size: .84rem;
}
.signup-row label, .signup-row-label {
  flex: 0 0 5.2rem; color: var(--text); opacity: .78; font-size: .8rem;
}
.signup-row input[type="time"], .signup-row input[type="number"], .signup-row input[type="tel"], .signup-select {
  flex: 1; min-width: 0; padding: .45rem .55rem;
  border-radius: 10px; border: 1px solid var(--line-strong);
  background: var(--input-bg, rgba(0,0,0,.15)); color: var(--text);
  color-scheme: light dark;
}
html[data-theme="dark"] .signup-select,
:root:not([data-theme="light"]) .signup-select {
  color-scheme: dark;
  background-color: var(--card-face, #1e2420);
  color: var(--text, #e8ece9);
}
html[data-theme="light"] .signup-select {
  color-scheme: light;
  background: #fff;
  color: #152019;
}
html[data-theme="dark"] .signup-select option,
:root:not([data-theme="light"]) .signup-select option {
  background-color: #1e2420;
  color: #e8ece9;
}
html[data-theme="light"] .signup-select option {
  background-color: #fff;
  color: #152019;
}
.signup-row .signup-unit {
  flex: 0 0 auto; color: var(--muted); font-size: .78rem; padding-right: .15rem;
}
.signup-tip {
  margin: .15rem 0 .55rem;
  padding: .55rem .7rem;
  border-radius: 10px;
  background: rgba(245, 158, 11, .12);
  border: 1px solid rgba(245, 158, 11, .35);
  color: #fbbf24;
  font-size: .82rem;
  line-height: 1.45;
}
.signup-tip strong { color: #fde68a; }
.signup-chk input { margin-top: .15rem; }
.signup-mode-wrap { margin: .35rem 0 .55rem; }
.signup-mode-switch {
  display: flex; gap: .35rem; margin-top: .35rem;
  background: rgba(0,0,0,.12); border-radius: 999px; padding: .2rem;
}
.signup-mode-opt {
  flex: 1; border: 0; background: transparent; color: var(--muted);
  padding: .45rem .5rem; border-radius: 999px; font-size: .8rem; cursor: pointer;
}
.signup-mode-opt.signup-mode-active {
  background: linear-gradient(135deg, #f59e0b, #ea580c);
  color: #111; font-weight: 700;
}
.signup-mode-opt:disabled,
.signup-mode-opt.signup-mode-disabled {
  opacity: .38;
  cursor: not-allowed;
  pointer-events: none;
}
.signup-sheet-hint {
  margin: 0 0 .65rem;
  font-size: .78rem;
  line-height: 1.45;
  color: var(--muted);
}
.kw-watch-steps {
  margin: 0 0 .45rem;
  padding-left: 1.15rem;
  list-style: decimal;
}
.kw-watch-steps li { margin: 0; padding: 0; }
.kw-watch-risk {
  margin: 0;
  padding: .5rem .65rem;
  border-radius: 10px;
  background: rgba(224, 85, 85, .12);
  border: 1px solid rgba(224, 85, 85, .38);
  color: var(--danger-soft, #f0a8a2);
  font-size: .8rem;
  line-height: 1.5;
  font-weight: 600;
}
.kw-watch-risk strong {
  color: var(--danger, #e0857c);
  font-weight: 800;
}
html[data-theme="light"] .kw-watch-risk {
  background: rgba(184, 67, 59, .08);
  border-color: rgba(184, 67, 59, .28);
  color: #b8433b;
}
html[data-theme="light"] .kw-watch-risk strong { color: #9a2f28; }
.signup-time-btn {
  flex: 1;
  min-width: 0;
  text-align: left;
  padding: .45rem .55rem;
  border-radius: 10px;
  border: 1px solid var(--line-strong);
  background: var(--input-bg, rgba(0,0,0,.15));
  color: var(--text);
  font-size: .86rem;
  cursor: pointer;
}
.signup-time-btn .muted { color: var(--muted); }
.signup-row-plat { align-items: flex-start; }
.signup-plat {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}
.signup-plat-chip {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  padding: .35rem .55rem;
  border-radius: 999px;
  border: 1px solid var(--line-strong);
  background: rgba(0,0,0,.1);
  font-size: .78rem;
  color: var(--muted);
  cursor: pointer;
}
.signup-plat-chip:has(input:checked),
.signup-plat-chip.active {
  border-color: rgba(245, 158, 11, .55);
  background: rgba(245, 158, 11, .16);
  color: var(--text);
  font-weight: 600;
}
.signup-plat-chip input { margin: 0; }

/* 定时搜索 · 方案 A/B/C/D：整宽 2×2，避免挤成一行换行难看 */
.signup-row-kwplan {
  flex-direction: column;
  align-items: stretch;
  gap: .4rem;
}
.signup-row-kwplan > label {
  flex: 0 0 auto;
  width: auto;
}
.kw-plan-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem;
  width: 100%;
}
.kw-plan-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: .45rem;
  margin: 0;
  padding: .55rem .6rem;
  border-radius: 12px;
  border: 1px solid var(--line-strong);
  background: rgba(0, 0, 0, .08);
  cursor: pointer;
  min-width: 0;
  transition: border-color .15s ease, background .15s ease;
}
.kw-plan-card input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}
.kw-plan-letter {
  flex: 0 0 auto;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 8px;
  display: grid;
  place-items: center;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: 0;
  background: rgba(0, 0, 0, .12);
  color: var(--muted);
  line-height: 1;
}
.kw-plan-body {
  display: flex;
  flex-direction: column;
  gap: .12rem;
  min-width: 0;
  padding-top: .05rem;
}
.kw-plan-title {
  font-size: .82rem;
  font-weight: 650;
  color: var(--text);
  line-height: 1.2;
}
.kw-plan-sub {
  font-size: .68rem;
  color: var(--muted);
  line-height: 1.3;
}
.kw-plan-card:has(input:checked) {
  border-color: rgba(245, 158, 11, .55);
  background: rgba(245, 158, 11, .16);
}
.kw-plan-card:has(input:checked) .kw-plan-letter {
  background: rgba(245, 158, 11, .38);
  color: var(--text);
}
.kw-plan-card:has(input:checked) .kw-plan-title {
  color: var(--text);
}
.kw-plan-card:has(input:focus-visible) {
  outline: 2px solid rgba(245, 158, 11, .55);
  outline-offset: 2px;
}
html[data-theme="light"] .kw-plan-card {
  background: rgba(0, 0, 0, .04);
}
html[data-theme="light"] .kw-plan-letter {
  background: rgba(0, 0, 0, .06);
}
html[data-theme="light"] .kw-plan-card:has(input:checked) {
  background: rgba(245, 158, 11, .14);
}

.signup-sheet-foot {
  display: flex; align-items: stretch; gap: .5rem;
  padding: .65rem .15rem .2rem;
  border-top: 1px solid var(--line);
  margin-top: .35rem;
}
.signup-sheet-foot .ghost {
  flex: 0 0 auto;
  min-width: 5.2rem;
  margin: 0;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  padding: .65rem .85rem;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: .88rem;
  font-weight: 650;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
html[data-theme="light"] .signup-sheet-foot .ghost {
  background: #f3f5f4;
  border-color: rgba(0,0,0,.1);
  color: #152019;
}
.signup-btn-primary, .signup-btn-schedule {
  flex: 1; border: 0; border-radius: 12px; padding: .65rem .75rem;
  font: inherit; font-weight: 700; font-size: .88rem; cursor: pointer;
  appearance: none; -webkit-appearance: none;
}
.signup-btn-primary {
  background: linear-gradient(135deg, #7c6cf0, #5b4fd6); color: #fff;
}
.signup-btn-schedule {
  background: linear-gradient(135deg, #f59e0b, #ea580c); color: #111;
}
.signup-sheet .hidden { display: none !important; }
.signup-loading { color: var(--muted); font-size: .78rem; padding: .25rem 0; }

.mt-coupon-dialog .mt-coupon-hint {
  margin: 0 0 .65rem; font-size: .78rem; color: var(--muted); line-height: 1.45;
}
.mt-coupon-dialog .mt-coupon-cap {
  font-size: .72rem; color: var(--muted); margin: 0 0 .4rem; text-align: right;
}
.mt-coupon-dialog .mt-coupon-list {
  display: flex; flex-direction: column; gap: .4rem;
  max-height: 9.5rem; overflow: auto; margin: 0 0 .7rem;
}
.mt-coupon-dialog .mt-acc {
  display: flex; align-items: center; gap: .45rem;
  padding: .55rem .65rem; border-radius: 12px;
  border: 1px solid var(--line); background: var(--inset);
  text-align: left; cursor: pointer; width: 100%;
  color: var(--text); font: inherit;
}
.mt-coupon-dialog .mt-acc.on {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  background: color-mix(in srgb, var(--accent-dim) 70%, var(--inset));
}
.mt-coupon-dialog .mt-acc-main { flex: 1; min-width: 0; }
.mt-coupon-dialog .mt-acc-name {
  font-size: .86rem; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mt-coupon-dialog .mt-acc-sub {
  font-size: .68rem; color: var(--muted); margin-top: .1rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mt-coupon-dialog .mt-acc-del {
  flex-shrink: 0; border: 0; background: transparent; color: var(--muted);
  font-size: .78rem; cursor: pointer; padding: .2rem .35rem; border-radius: 8px;
}
.mt-coupon-dialog .mt-acc-del:hover { color: var(--warn, #c45); background: var(--inset); }
.mt-coupon-dialog .mt-acc.warn {
  border-color: color-mix(in srgb, var(--warn, #c45) 55%, var(--line));
}
.mt-coupon-dialog .mt-acc-exp {
  display: block; margin-top: .2rem;
  font-size: .66rem; color: var(--muted); line-height: 1.35;
}
.mt-coupon-dialog .mt-acc.warn .mt-acc-exp { color: var(--warn, #c45); font-weight: 600; }

.mt-coupon-dialog .mt-coupon-qr-box {
  text-align: center; margin: 0 0 .75rem;
  padding: .75rem; border-radius: 14px; background: var(--inset);
}
.mt-coupon-dialog .mt-coupon-qr-wrap {
  width: 200px; margin: 0 auto .45rem; padding: .55rem;
  background: #fff; border-radius: 12px;
}
.mt-coupon-dialog .mt-coupon-qr-wrap canvas,
.mt-coupon-dialog .mt-coupon-qr-wrap img {
  display: block; width: 100%; height: auto; aspect-ratio: 1;
}
.mt-coupon-dialog .mt-coupon-qr-tip {
  margin: 0 0 .45rem; font-size: .78rem; color: var(--muted);
}
.mt-coupon-dialog .mt-coupon-actions {
  display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: 0 0 .55rem;
}
.mt-coupon-dialog .mt-coupon-actions .btn { min-height: 2.4rem; border-radius: 12px; font-weight: 650; }

/* 网易大神领券：精简表单 */
.ne-perks-dialog .shop-title-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .55rem;
  min-width: 0;
}
.ne-perks-dialog .shop-title-row .shop-title {
  min-width: 0;
}
.ne-perks-dialog .ne-perks-quota,
.ne-perks-dialog .ne-perks-em {
  font-weight: 700;
  color: var(--shop-accent, var(--accent));
}
.ne-perks-dialog .ne-perks-quota {
  flex-shrink: 0;
  font-size: .78rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ne-perks-dialog .ne-perks-quota.is-low {
  color: var(--warn, #c45);
}
.ne-perks-dialog .ne-perks-quota.is-empty {
  color: var(--muted);
  font-weight: 600;
}

/* 网易领券说明：标签 + 短规则，避免大段重复文案 */
.ne-perks-dialog .ne-perks-intro {
  margin: 0 0 .7rem;
  padding: .55rem .65rem;
  border-radius: 12px;
  background: color-mix(in srgb, var(--inset) 88%, var(--accent-dim, #1a3) 12%);
  border: 1px solid var(--line);
}
.ne-perks-dialog .ne-perks-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: 0 0 .45rem;
}
.ne-perks-dialog .ne-tag {
  display: inline-flex;
  align-items: center;
  padding: .22rem .55rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
}
.ne-perks-dialog .ne-tag-link {
  text-decoration: none;
  cursor: pointer;
  color: var(--accent-strong, var(--accent));
  background: color-mix(in srgb, var(--accent) 22%, transparent);
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
}
.ne-perks-dialog .ne-tag-link:hover {
  background: color-mix(in srgb, var(--accent) 32%, transparent);
}
.ne-perks-dialog .ne-perks-rules a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ne-perks-dialog .ne-perks-line {
  margin: 0 0 .35rem;
  font-size: .8rem;
  font-weight: 650;
  color: var(--text);
  line-height: 1.35;
}
.ne-perks-dialog .ne-perks-rules {
  margin: 0;
  padding: 0 0 0 1.05rem;
  font-size: .72rem;
  color: var(--muted);
  line-height: 1.45;
}
.ne-perks-dialog .ne-perks-rules li { margin: .12rem 0; }
.ne-perks-dialog .shop-title-row .shop-title {
  font-size: 1rem;
  font-weight: 750;
}

/* 网易账号列表：只显示手机号，选中态要一眼能看出 */
.ne-perks-dialog #nePerksList {
  overflow-x: hidden;
}
.ne-perks-dialog #nePerksList .ne-acc {
  min-height: 2.65rem;
  padding: .62rem .75rem;
  gap: .55rem;
}
.ne-perks-dialog #nePerksList .ne-acc .mt-acc-name {
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .02em;
  font-variant-numeric: tabular-nums;
}
.ne-perks-dialog .ne-perks-cap-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem;
  margin: .15rem 0 .35rem;
}
.ne-perks-dialog .ne-perks-cap-row .mt-coupon-cap {
  margin: 0;
}
.ne-perks-dialog .ne-perks-expect {
  font-size: .78rem;
  font-weight: 700;
  color: var(--accent, #3d9);
  white-space: nowrap;
}
.ne-perks-dialog #nePerksList .ne-acc-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  min-width: 0;
}
.ne-perks-dialog #nePerksList .ne-acc-head .mt-acc-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ne-perks-dialog #nePerksList .ne-acc-fee {
  flex-shrink: 0;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.2;
  padding: .18rem .42rem;
  border-radius: .35rem;
  letter-spacing: .02em;
}
.ne-perks-dialog #nePerksList .ne-acc-fee.is-free {
  color: #1a7f4a;
  background: color-mix(in srgb, #2ecc71 22%, var(--inset));
}
.ne-perks-dialog #nePerksList .ne-acc-fee.is-xc {
  color: #b86b00;
  background: color-mix(in srgb, #f0a500 22%, var(--inset));
}
.ne-perks-dialog #nePerksList .ne-acc-fee.is-solo {
  color: #c45;
  background: color-mix(in srgb, #e85d75 18%, var(--inset));
}
.ne-perks-dialog #nePerksList .ne-acc-fee.is-paused {
  color: var(--muted, #888);
  background: color-mix(in srgb, var(--muted, #888) 18%, var(--inset));
}
.ne-perks-dialog #nePerksList .ne-acc-mark {
  flex-shrink: 0;
  min-width: 2.4rem;
  text-align: right;
  font-size: .72rem;
  font-weight: 700;
  color: transparent;
}
.ne-perks-dialog #nePerksList .ne-acc.on {
  border-color: var(--accent);
  border-width: 1.5px;
  background: color-mix(in srgb, var(--accent) 18%, var(--inset));
  box-shadow: inset 3px 0 0 var(--accent);
}
.ne-perks-dialog #nePerksList .ne-acc.on .ne-acc-mark {
  color: var(--accent);
}
.ne-perks-dialog {
  position: relative;
}
.ne-perks-dialog #nePerksList {
  max-height: 14rem;
}
.ne-perks-dialog #nePerksList .ne-acc {
  align-items: flex-start;
}
.ne-perks-dialog #nePerksList .ne-acc-auto-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem .45rem;
  margin-top: .28rem;
}
.ne-perks-dialog #nePerksList .ne-acc-choice {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: .12rem .5rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 16%, var(--inset));
  color: var(--accent);
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.35;
}
.ne-perks-dialog #nePerksList .ne-acc-until {
  flex-basis: 100%;
  font-size: .66rem;
  color: var(--muted, #888);
  line-height: 1.3;
}
.ne-auto-pick {
  position: absolute;
  inset: 0;
  z-index: 8;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: .7rem;
  background: rgba(0, 0, 0, .55);
  border-radius: inherit;
}
.ne-auto-pick[hidden] {
  display: none !important;
}
.ne-auto-pick-card {
  width: 100%;
  background: var(--panel-solid);
  color: var(--text);
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  padding: .85rem .8rem .75rem;
  box-shadow: var(--glow);
}
.ne-auto-pick-t {
  margin: 0 0 .65rem;
  font-size: .92rem;
  font-weight: 750;
  color: var(--text);
}
.ne-auto-pick-always {
  width: 100%;
  min-height: 2.4rem;
}
.ne-auto-pick-or {
  margin: .7rem 0 .35rem;
  font-size: .72rem;
  color: var(--muted);
}
.ne-auto-pick-n {
  display: flex;
  gap: .4rem;
  align-items: center;
}
.ne-auto-pick-input {
  flex: 1;
  min-width: 0;
  width: auto;
  height: 2.4rem;
  padding: 0 .65rem;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: var(--inset);
  color: var(--text);
  font: inherit;
  font-size: 16px;
}
.ne-auto-pick-input::placeholder {
  color: var(--muted);
  opacity: .9;
}
.ne-auto-pick-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-dim);
}
.ne-auto-pick-n .btn {
  min-height: 2.4rem;
  flex-shrink: 0;
}
.ne-auto-pick-hint {
  margin: .5rem 0 .65rem;
  font-size: .68rem;
  color: var(--muted);
  line-height: 1.45;
}
.ne-auto-pick-cancel {
  width: 100%;
}
.ne-perks-dialog #nePerksList .ne-acc-auto-lab {
  font-size: .72rem;
  font-weight: 600;
  color: var(--muted, #888);
}
.ne-perks-dialog #nePerksList .ne-acc-auto-sw {
  position: relative;
  width: 2rem;
  height: 1.1rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--muted, #999) 35%, var(--inset));
  flex-shrink: 0;
  cursor: pointer;
}
.ne-perks-dialog #nePerksList .ne-acc-auto-sw::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: .85rem;
  height: .85rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.18);
  transition: transform .15s ease;
}
.ne-perks-dialog #nePerksList .ne-acc-auto-sw.on {
  background: var(--accent);
}
.ne-perks-dialog #nePerksList .ne-acc-auto-sw.on::after {
  transform: translateX(.85rem);
}
.ne-perks-dialog .ne-perks-form {
  margin: 0 0 .65rem;
}
#nePerksForm[data-mode="mail"] #nePerksSmsFields,
#nePerksForm[data-mode="sms"] #nePerksMailFields {
  display: none !important;
}
#nePerksForm[data-mode="mail"] #btnNePerksConfirm {
  /* 邮箱：一键登录，无发码 */
}
.ne-perks-dialog .ne-perks-mode {
  display: flex;
  gap: .35rem;
  margin: 0 0 .5rem;
}
.ne-perks-dialog .ne-perks-mode-btn {
  flex: 1;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--muted);
  border-radius: 10px;
  padding: .42rem .5rem;
  font: inherit;
  font-size: .82rem;
  font-weight: 650;
  cursor: pointer;
}
.ne-perks-dialog .ne-perks-mode-btn.on {
  color: var(--text);
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.ne-perks-dialog .ne-perks-phase {
  margin: 0 0 .5rem;
  padding: .45rem .55rem;
  border-radius: 10px;
  background: color-mix(in srgb, var(--accent-dim) 55%, var(--inset));
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
  color: var(--text);
  font-size: .78rem;
  line-height: 1.4;
}
.ne-perks-dialog .ne-perks-fields {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  margin: 0 0 .55rem;
}
.ne-perks-dialog .ne-perks-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 2.55rem;
  padding: .55rem .75rem;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--inset);
  color: var(--text);
  font: inherit;
  font-size: .92rem;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.ne-perks-dialog .ne-perks-input::placeholder { color: var(--muted); opacity: .85; }
.ne-perks-dialog .ne-perks-input:focus {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
}
.ne-perks-dialog .ne-perks-input:disabled {
  opacity: .55;
}
.ne-perks-dialog .ne-perks-sms-row {
  display: flex;
  gap: .4rem;
  align-items: stretch;
}
.ne-perks-dialog .ne-perks-sms-row .ne-perks-input { flex: 1; min-width: 0; }
.ne-perks-dialog .ne-perks-send {
  flex: 0 0 auto;
  min-width: 4.6rem;
  min-height: 2.55rem;
  border-radius: 12px;
  font-weight: 650;
  padding: 0 .7rem;
}
.ne-perks-dialog .ne-perks-send:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.ne-perks-dialog .ne-perks-confirm {
  width: 100%;
  min-height: 2.55rem;
  border-radius: 12px;
  font-weight: 700;
}
.ne-perks-dialog .mt-coupon-list:empty { display: none; margin: 0; }
.ne-perks-dialog .mt-coupon-cap {
  margin-bottom: .35rem;
}

/* 挑战赛弹层 + 团员列表（跟省心版主题） */
.challenge-dialog { max-width: 32rem; }
.challenge-block {
  margin-top: .7rem; padding: .65rem .7rem;
  border: 1px solid var(--line); border-radius: 12px; background: var(--inset-soft);
}
.challenge-block-hd {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  margin-bottom: .45rem; font-size: .82rem;
}
.challenge-invite-row {
  display: flex; align-items: center; gap: .45rem;
}
.challenge-invite-word {
  flex: 1; min-width: 0; padding: .45rem .55rem; border-radius: 10px;
  background: var(--inset); border: 1px solid var(--line);
  font-size: .95rem; font-weight: 700; letter-spacing: .04em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.challenge-list { display: flex; flex-direction: column; gap: .55rem; }

.ch-card {
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--card-face);
}
.ch-card-meta {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .4rem .7rem;
  font-size: .68rem; color: var(--muted); line-height: 1.2;
  background: var(--inset-soft);
  border-bottom: 1px solid var(--line);
}
.ch-card-meta .ch-join {
  display: inline-flex; align-items: center; gap: .28rem; flex-shrink: 0;
  color: var(--muted);
}
.ch-flame {
  display: inline-block; width: .55rem; height: .55rem; flex-shrink: 0;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-dim);
}
.ch-card-body {
  display: flex; align-items: center; gap: .65rem;
  padding: .7rem .75rem .55rem;
}
.ch-card-body--avail { padding-bottom: .75rem; align-items: flex-start; }
.ch-reward {
  width: 3.2rem; flex-shrink: 0; overflow: hidden;
  border-radius: 10px; border: 1px solid var(--line);
  background: var(--inset); text-align: center;
}
.ch-reward-amt {
  padding: .42rem .15rem .28rem;
  color: var(--accent-strong);
  font-weight: 800; line-height: 1;
  letter-spacing: -.02em;
}
.ch-reward-amt b { font-size: 1.05rem; }
.ch-reward-amt small { font-size: .58rem; font-weight: 700; margin-left: .04rem; }
.ch-reward-tag {
  padding: .2rem .1rem;
  background: var(--accent-grad);
  color: var(--accent-ink); font-size: .56rem; font-weight: 700; letter-spacing: .02em;
}
.ch-card-info { flex: 1; min-width: 0; }
.ch-card-title {
  font-size: .9rem; font-weight: 700; color: var(--text); line-height: 1.25;
}
.ch-card-desc {
  margin-top: .28rem; font-size: .72rem; color: var(--muted); line-height: 1.4;
}
.ch-card-foot {
  display: flex; align-items: flex-end; justify-content: space-between; gap: .55rem;
  padding: .55rem .75rem .7rem;
  border-top: 1px solid var(--line);
}
.ch-progress-wrap { flex: 1; min-width: 0; }
.ch-remain {
  font-size: .72rem; font-weight: 700; color: var(--danger); line-height: 1.25;
}
.ch-prog-lab {
  margin-top: .22rem; font-size: .68rem; color: var(--muted);
}
.ch-prog-bar {
  margin-top: .28rem; height: .38rem; border-radius: 99px;
  background: var(--inset); overflow: hidden;
  border: 1px solid var(--line);
}
.ch-prog-bar > i {
  display: block; height: 100%; width: 0;
  border-radius: inherit;
  background: var(--accent-grad);
}
.ch-card-actions {
  display: flex; align-items: center; gap: .35rem; flex-shrink: 0;
}
.ch-btn-signup {
  align-self: flex-end;
  margin-left: auto;
}
.ch-card-body--avail .ch-card-info { padding-top: .1rem; }
.ap-member-list { display: flex; flex-direction: column; gap: .5rem; margin-top: .35rem; }
.ap-member-summary {
  margin: .15rem 0 .35rem; font-size: .78rem; color: var(--muted);
}
.ap-member-summary b { color: var(--text); font-weight: 700; }
.ap-member-card {
  padding: .65rem .7rem; border-radius: 12px; border: 1px solid var(--line);
  background: var(--card-face);
}
.ap-member-hd { display: flex; align-items: flex-start; gap: .55rem; }
.ap-member-av {
  width: 2.2rem; height: 2.2rem; border-radius: 50%; object-fit: cover;
  background: var(--inset); flex-shrink: 0;
}
.ap-member-av-ph {
  width: 2.2rem; height: 2.2rem; border-radius: 50%; flex-shrink: 0;
  display: grid; place-items: center; background: var(--accent-dim); color: var(--accent);
  font-size: .72rem; font-weight: 700;
}
.ap-member-main { flex: 1; min-width: 0; }
.ap-member-name { font-size: .88rem; font-weight: 700; color: var(--text); }
.ap-member-name-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: .28rem;
}
.ap-member-orders {
  margin-top: .22rem; font-size: .72rem; color: var(--muted); line-height: 1.35;
}
.ap-member-times {
  margin-top: .4rem; display: flex; justify-content: space-between; gap: .5rem;
  font-size: .68rem; color: var(--muted); line-height: 1.35;
}
.ap-member-earn {
  text-align: right; flex-shrink: 0; min-width: 3.2rem; margin-left: .35rem;
}
.ap-member-earn.muted .ap-member-earn-n { color: var(--muted); font-weight: 600; }
.ap-member-earn-n {
  font-size: 1.05rem; font-weight: 800; color: var(--text);
  font-variant-numeric: tabular-nums; line-height: 1.1;
}
.ap-member-earn-l {
  margin-top: .12rem; font-size: .62rem; color: var(--muted);
}
.ap-member-tags { margin-top: .2rem; display: flex; flex-wrap: wrap; gap: .25rem; }
.ap-member-tag {
  font-size: .62rem; font-weight: 650; padding: .08rem .35rem; border-radius: 999px;
  background: var(--inset); color: var(--muted); border: 1px solid var(--line);
}
.ap-member-tag.valid { color: #c45a12; background: color-mix(in srgb, #ff8a3d 18%, transparent); border-color: color-mix(in srgb, #ff8a3d 40%, var(--line)); }
.ap-member-tag.rp { color: #c62828; background: color-mix(in srgb, #ff3b5c 14%, transparent); border-color: color-mix(in srgb, #ff3b5c 35%, var(--line)); }
.ap-member-meta { margin-top: .35rem; font-size: .72rem; color: var(--muted); line-height: 1.4; }
.ap-member-income { margin-left: auto; font-size: .82rem; font-weight: 700; color: var(--gold); white-space: nowrap; }
.ap-member-tip { margin-top: .3rem; font-size: .68rem; color: var(--warn, #c45); line-height: 1.35; }
.ap-member-more { margin-top: .55rem; }



.xc-loc-hist { margin-top: .55rem; }
.xc-loc-hist-hd {
  font-size: .72rem; color: var(--muted); font-weight: 650;
  margin: 0 0 .3rem; letter-spacing: .02em;
}
.xc-loc-hist-hd .meta { font-weight: 500; opacity: .85; }
.xc-loc-hist-list { display: flex; flex-direction: column; gap: .28rem; }
.xc-loc-hist-item {
  display: flex; align-items: stretch; gap: .1rem;
  width: 100%; border-radius: 10px;
  border: 1px solid var(--line); background: rgba(0,0,0,.14);
  overflow: hidden;
}
.xc-loc-hist-pick {
  flex: 1; min-width: 0; text-align: left;
  padding: .48rem .55rem .48rem .6rem;
  border: 0; background: transparent;
  cursor: pointer; font-size: .8rem; color: var(--text);
}
.xc-loc-hist-pick:active { opacity: .88; }
.xc-loc-hist-pick .t { font-weight: 650; }
.xc-loc-hist-pick .a { color: var(--muted); font-size: .7rem; margin-top: .12rem; }
.xc-loc-hist-x {
  flex: 0 0 2.1rem; align-self: stretch;
  border: 0; border-left: 1px solid var(--line);
  background: transparent; color: var(--muted);
  font-size: 1.05rem; line-height: 1; cursor: pointer;
  padding: 0;
}
.xc-loc-hist-x:active { color: #ff6b6b; background: rgba(255,80,80,.12); }
.xc-loc-hist.empty .xc-loc-hist-list::after {
  content: "暂无历史"; display: block;
  font-size: .72rem; color: var(--muted); padding: .2rem 0 .1rem;
}
