/* 扶一把 AI 平台 · 圆橙象工作台账户页（账户中心批 5）
   与 app/customer-portal.css 同一套外壳、页面头、面板与指标卡语言；
   颜色 / 字号 / 字重 / 行高 / 间距 / 圆角 / 阴影一律取 app/tokens.css 的令牌，
   明暗两套主题由 tokens.css 决定。 */
:root{--bg:var(--c-bg);--panel:var(--c-panel);--nav:var(--c-panel);--ink:var(--c-ink);--muted:var(--c-muted);--line:var(--c-line);--accent:var(--c-brand);--accent-ink:var(--c-brand-ink);--on-accent:var(--c-on-brand);--tint:var(--c-brand-tint);--good:var(--c-success);--soft:var(--c-raised);--danger:var(--c-danger)}

/* ── 基础元素 ───────────────────────────────────────────────────────────── */
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:var(--fs-md)/var(--lh-base) var(--font-sans)}
a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--h-base);padding:0 var(--sp-4);border:var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap}
button:hover,.button:hover{background:var(--soft);text-decoration:none}
.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:var(--fw-strong)}
.primary:hover,.primary:focus{background:var(--accent);filter:brightness(.96)}
button:disabled,.button[aria-disabled=true]{opacity:.55;cursor:default}
.quiet{border-color:transparent;background:transparent;color:var(--muted);padding:0 var(--sp-2);font-weight:var(--fw-base)}
.quiet:hover{background:var(--soft);color:var(--ink)}
.danger-solid{background:var(--c-danger);border-color:var(--c-danger);color:var(--c-on-danger);font-weight:var(--fw-strong)}
.danger-solid:hover{background:var(--c-danger);filter:brightness(.96)}
input,select,textarea{font:inherit;color:inherit;min-width:0;width:100%;padding:0 var(--sp-3);border:1px solid var(--c-line-strong);border-radius:var(--r-sm);background:var(--panel)}
input,select{height:var(--h-base)}
textarea{padding:var(--sp-3);line-height:var(--lh-base)}
input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--c-danger)}
label{display:block;font-weight:var(--fw-medium)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,main:focus-visible,[tabindex]:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}
[hidden]{display:none!important}
h1,h2,h3,p,dl,dd,dt{margin:0}
h1{font-size:var(--fs-2xl);font-weight:var(--fw-strong);line-height:var(--lh-snug);letter-spacing:-.02em}
h2{font-size:var(--fs-lg);font-weight:var(--fw-strong);line-height:var(--lh-snug)}
h3{font-size:var(--fs-md);font-weight:var(--fw-medium)}
small,.muted{color:var(--muted)}
.small{font-size:var(--fs-xs)}
.error{color:var(--danger);font-size:var(--fs-xs);line-height:var(--lh-base)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;top:-100px;left:var(--sp-3);padding:var(--sp-3);background:var(--panel);border-radius:var(--r-sm);z-index:3}
.skip:focus{top:var(--sp-3)}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ic{flex:none;width:var(--sp-4);height:var(--sp-4);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ── 外壳：侧栏 + 顶栏 + 主区 ───────────────────────────────────────────── */
.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100dvh}
aside{position:sticky;top:0;height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:var(--sp-6) var(--sp-5) var(--sp-5);border-right:var(--border);background:var(--nav)}
.brand{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-1);color:var(--ink);font-size:var(--fs-lg);font-weight:var(--fw-strong)}
.brand:hover{text-decoration:none}
.brand small{display:block;font-size:var(--fs-xs);font-weight:var(--fw-base);letter-spacing:2px}
.mark{display:grid;place-items:center;width:38px;height:38px;background:var(--accent);color:var(--c-on-brand);border-radius:var(--r-md);font-size:var(--fs-xl)}
.space-switch{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-4);padding:var(--sp-3);border:var(--border);border-radius:var(--r-md);background:var(--panel)}
.space-av{flex:none;display:grid;place-items:center;width:var(--sp-6);height:var(--sp-6);border-radius:var(--r-sm);background:var(--tint);color:var(--accent-ink);font-weight:var(--fw-strong)}
.space-meta{flex:1;min-width:0;display:grid;gap:var(--sp-1)}
.space-label{font-size:var(--fs-xs);font-weight:var(--fw-base);color:var(--muted)}
.space-meta select{height:auto;padding:0;border:0;background:transparent;font-size:var(--fs-sm);font-weight:var(--fw-strong)}
.space-meta select:disabled{color:var(--c-disabled)}
nav{display:block}
aside nav{flex:1;min-height:0;overflow-y:auto;align-content:start;scrollbar-width:thin}
.nav-group{margin-bottom:var(--sp-4)}
.nav-group:last-child{margin-bottom:0}
.nav-title{padding:var(--sp-2) var(--sp-2) var(--sp-1);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:.06em;color:var(--c-dim)}
nav a{display:flex;align-items:center;gap:var(--sp-3);height:var(--row-h);padding:0 var(--sp-2);margin:0 0 var(--sp-1);border-radius:var(--r-xs);font-size:var(--fs-sm);color:var(--muted)}
nav a:hover{background:var(--soft);color:var(--ink);text-decoration:none}
nav a[aria-current=page]{background:var(--tint);color:var(--accent-ink);font-weight:var(--fw-strong)}
nav a .ic{color:var(--muted)}
nav a[aria-current=page] .ic{color:var(--accent-ink)}
.nav-count{margin-left:auto;min-width:var(--sp-4);padding:0 var(--sp-1);border-radius:var(--r-full);background:var(--c-danger);color:var(--c-on-danger);font-size:var(--fs-xs);text-align:center}
.identity{border-top:var(--border);padding:var(--sp-4) var(--sp-1) 0;font-size:var(--fs-sm)}
.identity-person{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2);overflow-wrap:anywhere}
.identity-av{flex:none;display:grid;place-items:center;width:var(--sp-6);height:var(--sp-6);border-radius:var(--r-full);background:var(--tint);color:var(--accent-ink);font-weight:var(--fw-strong)}
.identity .row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.workspace{min-width:0;display:flex;flex-direction:column}
header{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-6);border-bottom:var(--border);background:var(--panel);font-size:var(--fs-xs);color:var(--muted)}
.crumbs{display:flex;align-items:center;gap:var(--sp-2);min-width:0}
.crumbs .separator{color:var(--line)}
.crumbs b{font-weight:var(--fw-medium);color:var(--ink)}
.header-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.cmd-trigger{gap:var(--sp-2);font-size:var(--fs-xs);color:var(--muted);background:var(--soft);border-color:transparent}
.cmd-trigger .ic{color:var(--muted)}
.cmd-trigger kbd{padding:0 var(--sp-1);border:var(--border);border-radius:var(--r-xs);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}
main{width:100%;max-width:1240px;margin:0 auto;padding:var(--sp-7) var(--sp-7) var(--sp-8);flex:1}
footer{display:flex;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);font-size:var(--fs-xs);color:var(--muted);border-top:var(--border)}

/* ── 页面头 / 指标卡 / 面板 ─────────────────────────────────────────────── */
.pagehead{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-5);margin-bottom:var(--sp-5)}
.pagehead-main{display:flex;align-items:flex-start;gap:var(--sp-4);min-width:0}
.pagehead-mark{flex:none;display:grid;place-items:center;width:44px;height:44px;border:var(--border);border-radius:var(--r-md);background:var(--panel);color:var(--accent-ink)}
.pagehead-mark .ic{width:var(--sp-5);height:var(--sp-5)}
.eyebrow{margin-bottom:var(--sp-2);font-size:var(--fs-xs);letter-spacing:1.8px;text-transform:uppercase;color:var(--accent-ink)}
#page-description{margin-top:var(--sp-3);color:var(--muted)}
.actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.pagehead .actions{gap:var(--sp-3);justify-content:flex-end}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4);margin-bottom:var(--sp-4)}
.kpi{display:grid;gap:var(--sp-3);align-content:start;padding:var(--sp-5);border:var(--border);border-radius:var(--r-md);background:var(--panel)}
.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.kpi-label{font-size:var(--fs-xs);color:var(--muted)}
.kpi-ico{flex:none;display:grid;place-items:center;width:var(--sp-6);height:var(--sp-6);border-radius:var(--r-xs);background:var(--soft);color:var(--muted)}
.kpi-num{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--fs-2xl);font-weight:var(--fw-strong);font-variant-numeric:tabular-nums;line-height:var(--lh-tight);overflow-wrap:anywhere}
.kpi-num strong{font:inherit;color:inherit}
.kpi-num .credit-fraction{font-size:.62em;font-weight:var(--fw-base);color:var(--muted)}
.kpi-unit{font-size:var(--fs-sm);font-weight:var(--fw-base);color:var(--muted)}
.kpi-foot{font-size:var(--fs-xs);color:var(--muted);line-height:var(--lh-base)}
.kpi-scope{margin:0 0 var(--sp-5);font-size:var(--fs-xs);color:var(--muted)}
.meter{display:block;width:100%;height:var(--sp-2);border:0;border-radius:var(--r-full);overflow:hidden;background:var(--soft);accent-color:var(--accent)}
.meter::-webkit-progress-bar{background:var(--soft);border-radius:var(--r-full)}
.meter::-webkit-progress-value{background:var(--accent);border-radius:var(--r-full)}
.meter::-moz-progress-bar{background:var(--accent);border-radius:var(--r-full)}
.cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--sp-5);align-items:start;margin-bottom:var(--sp-5)}
.view{display:block}
.panel{border:var(--border);border-radius:var(--r-md);background:var(--panel);overflow:hidden;margin-bottom:var(--sp-5)}
.cols>.panel{margin-bottom:0}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:var(--border)}
.panel-head h2{font-size:var(--fs-lg)}
.panel-head p{margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--muted)}
.panel-head .actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.panel-body{padding:var(--sp-2) var(--sp-5) var(--sp-4)}
.panel-body>p{margin-top:var(--sp-3)}
.panel-empty{padding:var(--sp-5) 0;font-size:var(--fs-sm);color:var(--muted)}
.feed-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:var(--border)}
.feed-row:last-child{border-bottom:0}
.feed-main{flex:1;min-width:0}
.feed-main small{display:block;margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--muted)}
.feed-amt{font-size:var(--fs-lg);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;white-space:nowrap}
.feed-amt strong{font:inherit}
.feed-amt .credit-fraction{font-size:.7em;font-weight:var(--fw-base);color:var(--muted)}
.pending-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border:var(--border);border-radius:var(--r-sm)}
.pending-row+.pending-row{margin-top:var(--sp-3)}
.pending-row b{display:block;font-size:var(--fs-sm);font-weight:var(--fw-medium)}
.pending-row small{display:block;margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-full);background:var(--soft);color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}
.badge.ok{background:var(--c-success-tint);color:var(--c-success)}
.badge.warn{background:var(--c-warning-tint);color:var(--c-warning)}
.badge.info{background:var(--c-info-tint);color:var(--c-info)}
.notice{padding:var(--sp-4);border-radius:var(--r-sm);background:var(--soft);color:var(--muted);font-size:var(--fs-xs);line-height:var(--lh-base);margin-top:var(--sp-3)}
.empty{padding:var(--sp-7) var(--sp-5);text-align:center;color:var(--muted)}
.empty h2{color:var(--ink)}
.empty>p{margin-top:var(--sp-3)}
.empty .actions{display:flex;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-4);flex-wrap:wrap}
#message{margin-bottom:var(--sp-5);padding:var(--sp-4);border:var(--border);border-radius:var(--r-sm);background:var(--tint);overflow-wrap:anywhere}
#message.error{color:var(--danger);font-size:var(--fs-md)}
#message a{margin-left:var(--sp-4)}
.footer-note{margin-top:var(--sp-6);font-size:var(--fs-xs);color:var(--muted);text-align:center}

/* ── 标签页 / 表格 / 分页 ───────────────────────────────────────────────── */
.tabs{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-5);border-bottom:var(--border);flex-wrap:wrap}
.tabs button{position:relative;height:var(--row-h);padding:0 var(--sp-3);border:0;border-radius:var(--r-xs) var(--r-xs) 0 0;background:transparent;color:var(--muted);font-size:var(--fs-sm);font-weight:var(--fw-medium)}
.tabs button:hover{background:var(--soft);color:var(--ink)}
.tabs button[aria-selected=true]{color:var(--accent-ink);font-weight:var(--fw-strong)}
.tabs button[aria-selected=true]::after{content:"";position:absolute;left:var(--sp-2);right:var(--sp-2);bottom:-1px;height:var(--sp-0);background:var(--accent);border-radius:var(--r-xs) var(--r-xs) 0 0}
.tabs .ic{width:var(--sp-4);height:var(--sp-4)}
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
th,td{padding:var(--sp-2) var(--sp-3);border-bottom:var(--border);text-align:left;vertical-align:top}
th{height:var(--row-h);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--muted);background:var(--soft);white-space:nowrap}
th:first-child,td:first-child{padding-left:var(--sp-4)}
th:last-child,td:last-child{padding-right:var(--sp-4)}
tbody tr:last-child td{border-bottom:0}
.num,th.num,td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pager{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3);padding-top:var(--sp-4);flex-wrap:wrap}

/* ── 对话框 ─────────────────────────────────────────────────────────────── */
dialog,.dialog{width:min(560px,calc(100vw - var(--sp-6)));max-height:calc(100dvh - var(--sp-7));padding:var(--sp-5);border:var(--border);border-radius:var(--r-lg);background:var(--panel);color:var(--ink);box-shadow:var(--sh-2)}
dialog::backdrop{background:var(--c-scrim)}
dialog form{display:grid;gap:var(--sp-4)}
dialog .actions{display:flex;justify-content:flex-end;gap:var(--sp-3);flex-wrap:wrap}
.field{display:grid;gap:var(--sp-2)}
.cmd{width:min(560px,calc(100vw - var(--sp-8)));padding:var(--sp-5)}
.cmd input{height:var(--row-h);margin-bottom:var(--sp-4)}
.cmd-list{display:grid;gap:var(--sp-1);max-height:46vh;overflow-y:auto}
.cmd-group{margin:var(--sp-3) 0 var(--sp-1);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--muted)}
.cmd-item{justify-content:flex-start;width:100%;padding:var(--sp-3);border-color:transparent;background:transparent;font-size:var(--fs-sm);text-align:left}
.cmd-item:hover{background:var(--soft)}
.cmd-item[aria-selected=true]{background:var(--tint);color:var(--accent-ink);font-weight:var(--fw-medium)}
.cmd-empty{padding:var(--sp-5) 0;font-size:var(--fs-sm);color:var(--muted)}
.quota-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3) var(--sp-4);padding:var(--sp-4);border-radius:var(--r-sm);background:var(--soft)}
.quota-facts dt{font-size:var(--fs-xs);color:var(--muted)}
.quota-facts dd{margin-top:var(--sp-1);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.confirm-body{margin-top:var(--sp-3);color:var(--muted);line-height:var(--lh-base)}

/* ── 积分说明 / 价值说明 ────────────────────────────────────────────────── */
.account-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4);padding-bottom:var(--sp-4);border-bottom:var(--border)}
.account-facts dt{font-size:var(--fs-xs);color:var(--muted)}
.account-facts dd{margin-top:var(--sp-1);font-size:var(--fs-md);overflow-wrap:anywhere}
.credit-rules section{margin-top:var(--sp-4)}
.credit-rules h3{font-size:var(--fs-sm);font-weight:var(--fw-strong);margin-bottom:var(--sp-1)}
.value-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-top:var(--sp-4)}
.value-entry{min-height:auto;padding:0;border:0;background:transparent;color:var(--accent-ink);font-size:var(--fs-xs);white-space:normal;text-align:left;justify-content:flex-start}
.value-entry:hover{background:transparent;text-decoration:underline}
.value-dialog h3{margin-top:var(--sp-5);font-size:var(--fs-md);font-weight:var(--fw-strong)}
.value-dialog p{margin-top:var(--sp-2);line-height:var(--lh-base)}
.value-dialog>button{margin-top:var(--sp-5)}
.metric-label{display:flex;align-items:center;gap:var(--sp-1);min-width:0}
.info-button{min-height:auto;padding:0 var(--sp-1);border:0;background:transparent;color:var(--muted);font-size:var(--fs-sm);line-height:var(--lh-base)}
.info-button:hover{background:transparent;color:var(--ink)}
.metric-help{position:fixed;inset:auto;margin:0;width:max-content;max-width:min(360px,calc(100vw - var(--sp-6)));padding:var(--sp-4);border:var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--ink);font-size:var(--fs-sm);line-height:var(--lh-base);box-shadow:var(--sh-2);z-index:5}

/* ── 积分变动明细 ───────────────────────────────────────────────────────── */
.credit-activity-card table{table-layout:fixed;min-width:680px}
.credit-activity-card th:first-child{width:170px}
.credit-activity-card th:nth-child(3){width:125px}
.credit-activity-card th:nth-child(4){width:125px}
.record-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.activity-detail>summary{display:flex;align-items:center;gap:var(--sp-2);list-style:none;cursor:pointer}
.activity-detail>summary::-webkit-details-marker{display:none}
.activity-detail>summary::before{content:"▸";flex:none;width:var(--sp-3)}
.activity-detail[open]>summary::before{content:"▾"}
.activity-detail details{margin-top:var(--sp-2);overflow-wrap:anywhere}
.activity-detail>p,.activity-detail details>p,.activity-detail details summary{margin-top:var(--sp-2);font-size:var(--fs-xs)}
.activity-detail details summary{cursor:pointer;color:var(--accent-ink)}
.activity-detail[open] .record-title{white-space:pre-wrap;overflow:visible;overflow-wrap:anywhere}
.activity-status{display:block;margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--c-muted);white-space:normal}
.activity-amount{font-variant-numeric:tabular-nums}

/* ── 待核对暂占 ─────────────────────────────────────────────────────────── */
.reconciliation-record{padding:var(--sp-3) 0;border-bottom:var(--border);overflow-wrap:anywhere}
.reconciliation-record:last-child{border-bottom:0}
.reconciliation-record h3{font-size:var(--fs-sm);font-weight:var(--fw-strong);margin-bottom:var(--sp-1)}
.reconciliation-record p{margin-top:var(--sp-1);font-size:var(--fs-xs);line-height:var(--lh-base)}
.reconciliation-record button{margin-top:var(--sp-2)}

/* ── 积分批次对话框 ─────────────────────────────────────────────────────── */
.batch-dialog{width:min(820px,calc(100vw - var(--sp-6)));max-width:820px;max-height:calc(100dvh - var(--sp-7));padding:0}
.batch-dialog[open]{display:flex;flex-direction:column;overflow:hidden}
.batch-header{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-5) var(--sp-5) var(--sp-3);flex-shrink:0}
.batch-header h2{font-size:var(--fs-xl)}
.batch-intro{margin:0 var(--sp-5) var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);background:var(--tint);color:var(--accent-ink);font-size:var(--fs-sm);line-height:var(--lh-base);flex-shrink:0}
.batch-filters{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);flex-wrap:wrap;flex-shrink:0}
.batch-filters label{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap}
.batch-filters select{width:auto;min-width:120px}
.batch-tabs{display:flex;gap:var(--sp-2);margin-left:auto}
.batch-tabs button[aria-pressed=true]{background:var(--tint);border-color:var(--accent-ink);color:var(--accent-ink);font-weight:var(--fw-strong)}
.batch-hint{margin:var(--sp-3) var(--sp-5);flex-shrink:0;font-size:var(--fs-xs);color:var(--muted)}
.batch-content{overflow:auto;overscroll-behavior:contain;min-height:160px;max-height:480px;padding:0 var(--sp-5);scrollbar-gutter:stable}
.batch-content[aria-busy=true]{cursor:progress}
.credit-batch{padding:var(--sp-4) 0;border-bottom:var(--border)}
.credit-batch:last-child{border-bottom:0}
.batch-row-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:nowrap}
.batch-type{flex-shrink:0;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-xs);background:var(--tint);color:var(--accent-ink);font-size:var(--fs-xs);font-weight:var(--fw-strong)}
.batch-type-gift{background:var(--soft);color:var(--ink)}
.batch-result{display:flex;align-items:baseline;justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap;min-width:0;text-align:right}
.batch-result strong{max-width:100%;font-size:var(--fs-xl);font-weight:var(--fw-strong);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.batch-result span:empty{display:none}
.batch-usage{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}
.batch-progress{margin:var(--sp-2) 0 var(--sp-3)}
.batch-dates summary{display:flex;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap;list-style:none;cursor:pointer}
.batch-dates summary::-webkit-details-marker{display:none}
.batch-dates p{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--muted);line-height:var(--lh-base)}
.batch-expiry{font-size:var(--fs-xs);color:var(--muted)}
.batch-expiry.expiring-soon{color:var(--c-warning);font-weight:var(--fw-strong)}
.batch-reserved{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--accent-ink)}
.batch-pagination{justify-content:space-between;padding:var(--sp-4) var(--sp-5);margin:0;border-top:var(--border);flex-shrink:0}

/* ── 开通工作台 / 表单 ──────────────────────────────────────────────────── */
.activation-form{display:grid;gap:var(--sp-3);max-width:360px;margin:0 auto;text-align:left}
.activation-form label{font-size:var(--fs-sm)}
.activation-form .primary{justify-self:start}

/* ── 顶栏通知 ───────────────────────────────────────────────────────────── */
.notification-bell{position:relative;display:inline-flex;padding:var(--sp-2);border-radius:var(--r-sm);color:var(--ink)}
.notification-bell:hover{background:var(--soft)}
.notification-bell span{position:absolute;top:0;right:0;min-width:var(--sp-4);padding:0 var(--sp-1);border-radius:var(--r-full);background:var(--c-danger);color:var(--c-on-danger);font-size:var(--fs-xs);text-align:center}
.notification-toast{position:fixed;right:var(--sp-5);top:var(--sp-8);z-index:4;display:flex;gap:var(--sp-4);align-items:flex-start;max-width:380px;padding:var(--sp-5);border:1px solid var(--c-line-strong);border-radius:var(--r-md);background:var(--panel);box-shadow:var(--sh-2)}
.notification-toast p{margin:var(--sp-2) 0;color:var(--muted)}
.notification-toast a{display:inline-block;margin-top:var(--sp-2)}

/* ── 响应式 ─────────────────────────────────────────────────────────────── */
@media(min-width:1280px){.shell{grid-template-columns:var(--sidebar-w-wide) minmax(0,1fr)}}
@media(max-width:1050px){
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cols{grid-template-columns:minmax(0,1fr)}
  .account-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .shell{display:block}
  aside{position:static;height:auto;overflow:visible;padding:var(--sp-4);border-right:0;border-bottom:var(--border)}
  aside nav{overflow:visible;flex:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-2);margin-top:var(--sp-4)}
  nav a{min-width:0;height:auto;min-height:var(--row-h);padding:var(--sp-1) var(--sp-3);line-height:var(--lh-snug)}
  .nav-group{display:contents}
  .nav-title{display:none}
  .space-switch{margin:var(--sp-4) 0 0}
  .identity{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding:var(--sp-3) 0 0}
  .identity-person{margin-bottom:0}
  header{min-height:0;padding:var(--sp-4) var(--sp-5);gap:var(--sp-3)}
  main{padding:var(--sp-5) var(--sp-5) var(--sp-7)}
  footer{padding:var(--sp-4) var(--sp-5)}
  footer span{display:none}
  .cmd-trigger-text{display:none}
  .crumbs>span:first-child,.crumbs .separator{display:none}
  .kpi-grid{grid-template-columns:minmax(0,1fr)}
  .kpi-num{font-size:var(--fs-xl)}
  .pagehead{flex-direction:column;align-items:stretch}
  .pagehead .actions{justify-content:flex-start}
  h1{font-size:var(--fs-xl)}
  .account-facts{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}
  .quota-facts{grid-template-columns:minmax(0,1fr)}
  .notification-toast{left:var(--sp-4);right:var(--sp-4);top:var(--sp-6);max-width:none}
  .batch-dialog{width:calc(100vw - var(--sp-4));max-height:calc(100dvh - var(--sp-4))}
  .batch-header{padding:var(--sp-4) var(--sp-4) var(--sp-3)}
  .batch-intro{margin:0 var(--sp-4) var(--sp-4)}
  .batch-filters{padding:0 var(--sp-4)}
  .batch-tabs{margin:var(--sp-1) 0 0;width:100%}
  .batch-tabs button{flex:1}
  .batch-hint{margin:var(--sp-3) var(--sp-4)}
  .batch-content{padding:0 var(--sp-4);max-height:none}
  .batch-pagination{padding:var(--sp-3) var(--sp-4);gap:var(--sp-2)}
  .credit-batch .batch-row-head{gap:var(--sp-2)}
  .table-scroll table{min-width:640px}
  .credit-activity-card th:first-child{width:120px}
  .panel-head{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* 跨文档视图过渡：与账户中心两侧都 opt-in，否则从账户中心进入本页时浏览器会中止过渡并抛 InvalidStateError。 */

/* Balance figures and their actions stay together at every viewport width. */
.kpi{gap:var(--sp-3);padding:var(--sp-4)}
.credit-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}
.credit-actions .recharge-help{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;justify-content:flex-start;border:0;padding:0;margin:0;background:transparent}
.credit-actions .recharge-help p{margin:0}
.credit-rules-disclosure{padding:var(--sp-4);border:var(--border);border-radius:var(--r-md);background:var(--panel)}
.credit-rules-disclosure summary{cursor:pointer;font-weight:var(--fw-medium);color:var(--muted)}
.credit-rules-disclosure .credit-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4);margin-top:var(--sp-4)}
.metric-link{height:auto;min-height:0;box-shadow:none;border-radius:0;justify-self:start;border:0;padding:0;background:transparent;color:var(--accent-ink);font-size:var(--fs-xs);text-decoration:underline}
.metric-link .ic{width:var(--sp-4);height:var(--sp-4)}
@media(max-width:720px){.credit-rules-disclosure .credit-rules{grid-template-columns:minmax(0,1fr)}.credit-actions{align-items:flex-start;flex-direction:column}}

.organization-limit-policy{align-items:center;margin-bottom:var(--sp-4)}
.organization-limit-policy>button{justify-self:end;width:auto}
@media(max-width:640px){.organization-limit-policy>button{justify-self:start}}
.organization-limit-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-6);padding:var(--sp-5);margin-bottom:var(--sp-5);border:var(--border);border-radius:var(--r-md);background:var(--c-panel)}
.organization-balance,.organization-limit-summary .organization-limit-policy{padding:0;border:0;border-radius:0;margin:0;background:transparent}
.organization-limit-summary .organization-limit-policy{border-left:var(--border);padding-left:var(--sp-6)}
.organization-balance .kpi-num{display:inline-block;color:var(--c-brand-ink);margin-top:var(--sp-3);margin-right:var(--sp-2)}
.organization-limit-summary .organization-limit-policy{display:flex;justify-content:space-between;gap:var(--sp-4)}
.organization-limit-policy .stat-value{margin-top:var(--sp-2);margin-bottom:var(--sp-2)}
.policy-step{display:grid;gap:var(--sp-5)}
.setup-next{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);margin-bottom:var(--sp-5);border:var(--border);border-radius:var(--r-md);background:var(--c-info-tint);font-size:var(--fs-sm)}
.check-with-help{display:flex;align-items:center;gap:var(--sp-1)}
.policy-confirm-value{font-size:var(--fs-xl);font-weight:var(--fw-strong)}
.policy-consequence{padding:var(--sp-4);border:var(--border);border-radius:var(--r-sm);background:var(--c-info-tint);line-height:var(--lh-base)}
.quota-dialog .check-row{margin:0}
@media(max-width:1050px){main{padding:var(--sp-6) var(--sp-5)}}
@media(max-width:720px){.organization-limit-summary{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.organization-limit-summary .organization-limit-policy{flex-wrap:wrap;border-left:0;border-top:var(--border);padding-left:0;padding-top:var(--sp-4)}main{padding:var(--sp-6) var(--sp-5)}}

/* Shared desktop/web hierarchy: primary balance, then paired metrics. */
.balance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--panel);margin-bottom:var(--sp-4)}
.balance-grid .kpi{border:0;border-radius:0;margin:0;padding:var(--sp-5);background:var(--soft)}
.balance-grid .balance-primary{grid-column:1 / -1;background:var(--panel)}
.balance-grid .kpi-num{font-size:var(--fs-xl)}
.balance-primary .kpi-num{font-size:var(--fs-2xl)}
.balance-grid .balance-metric:not(.balance-primary){border-top:var(--border)}
.balance-grid .balance-metric:nth-child(odd):not(.balance-primary){border-left:var(--border)}
.balance-grid .balance-wide{grid-column:1 / -1}
@media(max-width:640px){.balance-grid{grid-template-columns:minmax(0,1fr)}.balance-grid .balance-metric:nth-child(odd):not(.balance-primary){border-left:0}.balance-grid .kpi{padding:var(--sp-4)}.balance-primary .kpi-num{font-size:var(--fs-2xl)}}

/* Same balance emphasis in the user credit view; no change to amounts or actions. */
.balance-grid .balance-primary{padding:var(--sp-6);background:var(--c-brand-tint)}
.balance-primary .kpi-num{font-size:var(--fs-2xl);color:var(--c-brand-ink);flex-wrap:wrap}
.balance-primary .kpi-top{align-items:flex-start;flex-wrap:wrap}
.balance-primary .metric-link{background:var(--c-panel);border:var(--border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3)}
.balance-grid .balance-metric:not(.balance-primary){background:var(--c-panel)}
@media(max-width:720px){.balance-grid .balance-primary{padding:var(--sp-5)}.balance-primary .kpi-num{font-size:var(--fs-2xl)}.kpi-unit{white-space:nowrap}}

.activity-amount{font-size:var(--fs-md);font-weight:var(--fw-base);white-space:nowrap;font-variant-numeric:tabular-nums}
.activity-amount .credit-whole{font:inherit}
.activity-amount .credit-fraction{font-size:var(--fs-xs);color:var(--c-muted)}

/* Identity is secondary to the usage description and remains readable in both themes. */
.credit-activity-card.with-members table{min-width:800px}
.credit-activity-card.with-members th:nth-child(4){width:220px}
.credit-activity-card.with-members th:last-child{width:125px}
.activity-member{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;overflow-wrap:anywhere}
.activity-member-name{font-size:var(--fs-md);font-weight:var(--fw-medium)}
.activity-member-email{font-size:var(--fs-xs);color:var(--muted);line-height:var(--lh-snug)}
@media(max-width:720px){
 .credit-activity-card.with-members table{display:block;min-width:0;width:100%}
 .credit-activity-card.with-members thead{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
 .credit-activity-card.with-members tbody{display:block}
 .credit-activity-card.with-members tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-1) var(--sp-3);padding:var(--sp-4) 0;border-bottom:var(--border)}
 .credit-activity-card.with-members tbody tr:last-child{border-bottom:0}
 .credit-activity-card.with-members td{min-width:0;padding:0;border:0}
 .credit-activity-card.with-members td:first-child{grid-column:1;grid-row:1;font-size:var(--fs-xs);color:var(--muted)}
 .credit-activity-card.with-members td:nth-child(2){grid-column:1;grid-row:2}
 .credit-activity-card.with-members td:nth-child(3){grid-column:1;grid-row:3;font-size:var(--fs-xs);color:var(--muted)}
 .credit-activity-card.with-members td:nth-child(4){grid-column:1;grid-row:4;margin-top:var(--sp-1)}
 .credit-activity-card.with-members td:last-child{grid-column:2;grid-row:1 / 5;align-self:center}
}
