/* ==========================================================================
   ThinkClub 后台 —— 后台样式层（两个系统共用）
   --------------------------------------------------------------------------
   复用 console.css 的 Ant Design token（颜色 / 圆角 / 字体 / 按钮 / 表格 /
   分页 / 弹窗），这里只补 console.css 没有的组件：
   Descriptions、Drawer、Upload、InputNumber、Switch、Popconfirm、Alert、
   Tooltip，以及商品 / 订单 / 顾问三个模块专用的单元格样式。

   页面引用顺序：console.css → tk-console.css
   （导航的扁平样式 .nav-flat 放在 console.css —— index.html 也要用，
     而它不加载本文件。）
   ========================================================================== */

:root{
  --tk-wait-2:#ad4e00;        /* Alert warning 的文字色，比 --wait 深一档 */
  --tk-radius-lg:10px;
}

/* ---------------------------------------------------------------- 外壳微调 */

/* 侧边栏宽度不再单独定：console.css 的 200px 现在两个系统六个页面通用。
   原先这里覆盖成 208px，是「Think Kids 后台」和「增长工具台」两个产品并存
   时期的遗留 —— 现在它们同属一个系统，切换页面时侧边栏宽度变化会显得像
   换了个系统。 */

/* 品牌标记的配色按系统分：同一个产品（ThinkClub）下的两个系统，标记用同一个
   i-shop，只换配色，一眼看得出切换了系统。增长平台用 console.css 里那个蓝色，
   这里只覆盖订单平台。 */
.sys-orders .brand-mark{background:linear-gradient(140deg,#69b1ff,#2f54eb 58%,#1d39c4)}

/* ---------------------------------------------------------------- 页头 */

.page-head{display:flex;align-items:flex-start;gap:12px;margin:4px 0 16px}
.page-head .back{
  width:32px;height:32px;flex:none;margin-top:2px;border-radius:var(--r);
  display:grid;place-items:center;color:var(--text-2);
}
.page-head .back:hover{background:var(--surface-3);color:var(--text)}
.page-head .tt{min-width:0;flex:1}
.page-head h1{margin:0;font-size:20px;font-weight:600;line-height:1.35}
.page-head .sub{margin:5px 0 0;color:var(--text-3);font-size:13px;line-height:1.6}
.page-head .extra{margin-left:auto;flex:none;display:flex;align-items:center;gap:8px;padding-top:2px}

/* ---------------------------------------------------------------- 卡片 */

.panel-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line-2)}
.panel-head h2{margin:0;font-size:14px;font-weight:600}
.panel-head .extra{margin-left:auto;display:flex;align-items:center;gap:8px}
.panel-body{padding:16px}
.panel + .panel{margin-top:14px}
.divider{height:1px;border:0;background:var(--line-2);margin:18px 0}

/* ---------------------------------------------------------------- Alert */

.alert{
  display:flex;align-items:flex-start;gap:10px;padding:10px 14px;
  border-radius:8px;border:1px solid transparent;font-size:13px;line-height:1.65;
}
.alert .ico{flex:none;margin-top:2px}
.alert b{font-weight:600}
.alert .extra{margin-left:auto;flex:none;align-self:center}
.alert-info{background:var(--brand-bg);border-color:#bae0ff;color:var(--brand-active)}
.alert-warning{background:var(--wait-bg);border-color:var(--wait-bd);color:var(--tk-wait-2)}
.alert-error{background:var(--danger-bg);border-color:var(--danger-bd);color:var(--danger)}
.alert + .panel,.panel + .alert{margin-top:14px}

/* ------------------------------------------------- Descriptions 描述列表 */

.desc{
  display:grid;grid-template-columns:104px minmax(0,1fr) 104px minmax(0,1fr);
  gap:1px;background:var(--line-2);
  border:1px solid var(--line);border-radius:8px;overflow:hidden;
}
.desc dt,.desc dd{margin:0;padding:11px 14px;font-size:13px;line-height:1.6;min-width:0}
.desc dt{background:var(--surface-2);color:var(--text-2)}
.desc dd{background:var(--surface);color:var(--text);word-break:break-word}
.desc .full{grid-column:1/-1}
.desc .num{font-variant-numeric:tabular-nums}
@media (max-width:820px){
  .desc{grid-template-columns:92px minmax(0,1fr)}
  .desc .full{grid-column:1/-1}
}

/* ---------------------------------------------------------------- Tag */

.tag-on{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-bd)}
.tag-off{color:var(--off);background:var(--off-bg);border-color:var(--off-bd)}
.tag-soldout{color:var(--wait);background:var(--wait-bg);border-color:var(--wait-bd)}
.tag-pending{color:var(--wait);background:var(--wait-bg);border-color:var(--wait-bd)}
.tag-paid{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-bd)}
.tag-closed{color:var(--off);background:var(--off-bg);border-color:var(--off-bd)}
.tag-refunded{color:var(--off);background:var(--off-bg);border-color:var(--off-bd)}
.tag-warn{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-bd)}
/* 纯文字标签（不带圆点），用于年段这种次要信息 */
.tag-plain::before{display:none}
.tag-plain{padding:0 7px;background:var(--surface-3);border-color:var(--line);color:var(--text-2)}

/* 跟进状态（顾问名下学生订单的三档）：待联系 = 还没动，已联系 = 联系上了但没下文，
   已预约 = 成了。不复用现成的 tag-on / tag-off / tag-pending：那几个类名的语义是
   「启用 / 停用 / 待支付」，同一个类名在两处指两件事，之后谁改都会踩到对方。
   圆点由 .tag::before 用 currentColor 现取，所以这里只给颜色，不用管点。 */
.tag-todo{color:var(--wait);background:var(--wait-bg);border-color:var(--wait-bd)}
.tag-contacted{color:var(--text-2);background:var(--surface-3);border-color:var(--line)}
.tag-booked{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-bd)}

/* ---------------------------------------------------------------- 表格 */

table.tk-table{min-width:var(--tk-min,980px)}
.cell-prod{display:flex;align-items:center;gap:10px;min-width:0}
.cell-prod .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cell-stack{display:flex;flex-direction:column;gap:1px;min-width:0}
.cell-stack b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cell-stack i{font-style:normal;color:var(--text-3);font-size:11.5px;font-variant-numeric:tabular-nums}

.thumb{
  width:42px;height:42px;flex:none;border-radius:6px;overflow:hidden;
  border:1px solid var(--line);background:var(--surface-3);display:grid;place-items:center;
}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-gen{
  width:100%;height:100%;display:grid;place-items:center;
  color:#fff;font-size:15px;font-weight:600;letter-spacing:.4px;
}
.thumb-lg{width:88px;height:88px;border-radius:8px}
.thumb-sm{width:32px;height:32px;border-radius:5px}

.money{font-variant-numeric:tabular-nums;font-weight:500}
.money-lg{font-size:16px;font-weight:600}
.link{color:var(--brand);text-align:left}
.link:hover{text-decoration:underline}
.link-muted{color:var(--text-2)}
.link-muted:hover{color:var(--brand)}
.stock-0{color:var(--wait);font-variant-numeric:tabular-nums;font-weight:600}
.stock-low{color:var(--danger);font-variant-numeric:tabular-nums;font-weight:600}

/* 库存：只在库存为 0 / 偏低时上色，不做无意义的进度条（MVP 没有容量概念） */

/* 工具栏里的分段筛选（商品状态 / 支付状态快捷切换） */
.seg{display:inline-flex;padding:2px;border-radius:var(--r);background:var(--surface-3)}
.seg button{height:28px;padding:0 12px;border-radius:4px;font-size:13px;color:var(--text-2);white-space:nowrap}
.seg button:hover{color:var(--text)}
.seg button[aria-selected="true"]{background:var(--surface);color:var(--text);font-weight:500;box-shadow:var(--sh-1)}
.seg .n{color:var(--text-3);font-variant-numeric:tabular-nums;margin-left:5px;font-size:12px}
.seg button[aria-selected="true"] .n{color:var(--brand)}

/* ---------------------------------------------------------------- 表单 */

.form-wrap{max-width:880px}
.form-sec + .form-sec{margin-top:14px}
.form-sec-hd{padding:14px 20px;border-bottom:1px solid var(--line-2)}
.form-sec-hd h2{margin:0;font-size:14px;font-weight:600}
.form-sec-hd p{margin:5px 0 0;color:var(--text-3);font-size:12px;line-height:1.6}
.form-sec-body{padding:20px}
.form-row2{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:start}
.form-row2 + .form-row2{margin-top:16px}
.form-row2 > .form-label{padding-top:9px}
.form-label{color:var(--text-2);font-size:13px;text-align:right;line-height:1.5}
.form-label .req{color:var(--danger);font-style:normal;margin-right:3px}
.form-label .hint{display:block;margin-top:3px;color:var(--text-3);font-size:11.5px;line-height:1.5}
.form-ctrl{min-width:0;max-width:520px}
.form-tip{margin:6px 0 0;color:var(--text-3);font-size:12px;line-height:1.6}
.form-err{margin:6px 0 0;color:var(--danger);font-size:12px;line-height:1.6}
.input.err,.num.err{border-color:var(--danger)}
.input.err:focus,.num.err:focus-within{border-color:var(--danger);box-shadow:0 0 0 2px rgba(217,45,32,.12)}
.input[readonly]{background:var(--surface-3);color:var(--text-2);cursor:not-allowed}
.input[readonly]:hover{border-color:var(--line)}
.form-foot{
  display:flex;align-items:center;gap:8px;margin-top:14px;padding:14px 20px;
  background:var(--surface);border-radius:8px;box-shadow:var(--sh-1);
}
.form-foot .note{margin-right:auto;color:var(--text-3);font-size:12px}
.form-foot.sticky{position:sticky;bottom:0;z-index:5}
/* 窄屏（≤1080px 时 .edit-cols 塌成一列，见文件末）底部操作栏的主按钮正好落在右下角
   演示切换器的正下方。sticky 是钉在滚动视口上的，.content 的 76px 底内边距只约束文档流、
   管不到它，于是「保存并上架」会被盖住 81%，点下去展开的是演示切换器、保存静默不执行。
   这里把整条底栏抬到切换器之上。宽屏有右侧预览列占位，本来就不重叠，所以不加这条规则；
   内容比视口短时 sticky 不生效，也就没有这条缝。

   抬到多高只能顾一头，把数字和取舍写明白，免得后人以为 64px 是精确解。
   收起态切换器占视口底部：>640px 是 20–56px（.dnav fixed bottom:20px + 按钮高 36px），
   ≤640px 时 demo-nav.css 自己覆写成 bottom:12px，那一段是 12–48px —— 两种都 ≤56px，64px 都躲得开。
   展开态面板挂在容器上边缘再往外 8px（bottom:calc(100% + 8px)，即容器底 + 44px）：
   >640px 时面板底边在 64px，≤640px 时在 56px，往上长到 max-height:calc(100vh - 96px)。
   要让底栏完全不被挡，需要下缘 ≤ 面板底边 − 底栏高度（实测 60px）：
   >640px 时 ≤4px，≤640px 时已经小于 0 —— 都落回收起态那条带里，
   所以不存在「两头都顾得上」的静态偏移（逐像素扫过 0–140px 确认无解）。
   选 64px：收起态是常态，展开态是用户自己点开的不透明浮层，和 z-index:80 的抽屉一个性质 ——
   面板开着时底栏被压住，属于已知代价，不再为它加规则。 */
@media (max-width:1080px){ .form-foot.sticky{bottom:64px} }

/* InputNumber */
.num{
  display:flex;align-items:center;height:34px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--surface);overflow:hidden;
}
.num:hover{border-color:#c9d2de}
.num:focus-within{border-color:var(--brand);box-shadow:0 0 0 2px rgba(22,119,255,.12)}
.num .pre{flex:none;padding-left:11px;color:var(--text-3);font-size:13px}
.num input{
  flex:1;min-width:0;height:32px;padding:0 8px;border:0;outline:none;
  background:transparent;font-size:13px;font-variant-numeric:tabular-nums;
}
.num .unit{flex:none;padding-right:9px;color:var(--text-3);font-size:12px}
.num .steps{display:flex;flex:none;align-self:stretch;border-left:1px solid var(--line-2)}
.num .steps button{width:30px;display:grid;place-items:center;color:var(--text-3);font-size:14px;line-height:1}
.num .steps button + button{border-left:1px solid var(--line-2)}
.num .steps button:hover{color:var(--brand);background:var(--brand-bg-2)}

/* Switch */
.switch{
  position:relative;width:44px;height:22px;flex:none;border-radius:99px;
  background:rgba(0,0,0,.25);transition:background .18s;
}
.switch::after{
  content:"";position:absolute;left:2px;top:2px;width:18px;height:18px;
  border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.22);
  transition:left .18s;
}
.switch[aria-checked="true"]{background:var(--brand)}
.switch[aria-checked="true"]::after{left:24px}
.switch-row{display:flex;align-items:center;gap:10px}
.switch-row .st{color:var(--text-2);font-size:13px}
/* 单选卡片：上架 / 下架 */
.radio-cards{display:flex;gap:10px;flex-wrap:wrap}
.radio-card{
  display:flex;align-items:flex-start;gap:9px;width:190px;padding:11px 13px;
  border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:left;
}
.radio-card:hover{border-color:var(--brand)}
.radio-card .dot{
  width:15px;height:15px;flex:none;margin-top:2px;border-radius:50%;
  border:1px solid #c4ccd8;background:var(--surface);position:relative;
}
.radio-card[aria-checked="true"]{border-color:var(--brand);background:var(--brand-bg-2)}
.radio-card[aria-checked="true"] .dot{border-color:var(--brand);border-width:4.5px}
.radio-card b{display:block;font-size:13px;font-weight:500}
.radio-card small{display:block;margin-top:3px;color:var(--text-3);font-size:11.5px;line-height:1.5}

/* ---------------------------------------------------------------- Upload */

.up-list{display:flex;flex-wrap:wrap;gap:10px}
.up-item{
  position:relative;width:96px;height:96px;flex:none;border:1px solid var(--line);
  border-radius:8px;overflow:hidden;background:var(--surface-3);
}
.up-item img{width:100%;height:100%;object-fit:cover;display:block}
.up-item .gen{width:100%;height:100%;display:grid;place-items:center;color:#fff;font-size:22px;font-weight:600}
.up-ops{
  position:absolute;inset:auto 0 0 0;display:flex;
  background:rgba(15,23,42,.62);opacity:0;transition:opacity .15s;
}
.up-item:hover .up-ops,.up-item:focus-within .up-ops{opacity:1}
.up-ops button{flex:1;height:26px;display:grid;place-items:center;color:#fff;font-size:12px}
.up-ops button:hover{background:rgba(255,255,255,.18)}
.up-ops button:disabled{color:#ffffff66;cursor:not-allowed}
.up-ops button:disabled:hover{background:transparent}
.up-ord{
  position:absolute;left:5px;top:5px;min-width:17px;height:17px;padding:0 4px;
  border-radius:4px;background:rgba(15,23,42,.66);color:#fff;
  font-size:11px;line-height:17px;text-align:center;font-variant-numeric:tabular-nums;
}
.up-box{
  width:96px;height:96px;flex:none;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:6px;
  border:1px dashed var(--line);border-radius:8px;
  background:var(--surface-2);color:var(--text-3);font-size:12px;
}
.up-box:hover{border-color:var(--brand);color:var(--brand)}
.up-box .ico{width:18px;height:18px}
.up-box-sm{width:96px;height:96px}

/* 企微二维码展示（列表 + 详情） */
.qr-thumb{
  width:56px;height:56px;flex:none;border:1px solid var(--line);border-radius:6px;
  background:#fff;padding:3px;display:grid;place-items:center;overflow:hidden;
}
.qr-thumb img{width:100%;height:100%;object-fit:contain;display:block}
.qr-gen{
  width:100%;height:100%;border-radius:3px;
  background-color:#fff;
  background-image:linear-gradient(90deg,#1f2329 5px,transparent 5px),linear-gradient(#1f2329 5px,transparent 5px);
  background-size:11px 11px;
}
.qr-empty{
  width:100%;height:100%;display:grid;place-items:center;
  background:var(--surface-3);color:var(--text-3);font-size:10px;text-align:center;line-height:1.25;
}
.qr-lg{width:150px;height:150px;padding:6px;border-radius:8px}

/* ---------------------------------------------------------------- Drawer */

.drawer-mask{
  position:fixed;z-index:80;inset:0;display:flex;justify-content:flex-end;
  background:rgba(15,23,42,.45);
}
.drawer{
  width:100%;max-width:460px;height:100%;display:flex;flex-direction:column;
  background:var(--surface);box-shadow:-8px 0 32px rgba(15,23,42,.18);
  animation:slide-in .22s cubic-bezier(.2,.8,.2,1);
}
@keyframes slide-in{from{transform:translateX(100%)}}
.drawer-head{
  display:flex;align-items:center;gap:10px;flex:none;
  padding:15px 20px;border-bottom:1px solid var(--line-2);
}
.drawer-head h2{margin:0;flex:1;min-width:0;font-size:16px;font-weight:600}
.drawer-body{flex:1;min-height:0;overflow-y:auto;padding:20px}
.drawer-foot{
  display:flex;justify-content:flex-end;gap:8px;flex:none;
  padding:13px 20px;border-top:1px solid var(--line-2);background:var(--surface-2);
}
/* Drawer 里的表单：标签在控件上方，宽度更省 */
.drawer .form-row2{grid-template-columns:minmax(0,1fr);gap:7px}
.drawer .form-row2 > .form-label{text-align:left;padding-top:0}
.drawer .form-ctrl{max-width:none}
@media (max-width:520px){.drawer{max-width:100%}}

/* ---------------------------------------------------------------- Popconfirm */

.pop{
  position:fixed;z-index:95;width:250px;padding:13px 14px;
  background:var(--surface);border-radius:8px;box-shadow:var(--sh-2);border:1px solid var(--line-2);
}
.pop p{margin:0 0 11px;font-size:13px;line-height:1.6;color:var(--text)}
.pop .row{display:flex;justify-content:flex-end;gap:8px}
.btn-sm{height:28px;padding:0 10px;font-size:12.5px}

/* ---------------------------------------------------------------- Tooltip */

[data-tip]{position:relative}
[data-tip]:hover::after{
  content:attr(data-tip);position:absolute;z-index:70;left:0;top:calc(100% + 6px);
  width:max-content;max-width:300px;padding:6px 9px;border-radius:6px;
  background:rgba(0,0,0,.85);color:#fff;font-size:12px;line-height:1.55;
  white-space:normal;text-align:left;pointer-events:none;
  box-shadow:0 4px 14px rgba(15,23,42,.22);
}
/* 表格里的浮层一律翻到行上方：.table-wrap 为了横向滚动必须 overflow:auto，
   向下画的浮层会被容器下边缘齐平裁掉（最后一行的浮层只剩一条黑边，文字不可读）。
   挂载点不一定是 td 本身 —— 订单号是 <button>、顾问是 <span>、库存不足是 <span>，
   它们都在 td 里，所以按「td 内部」判定，不能只认 td[data-tip]。 */
th[data-tip]:hover::after,td[data-tip]:hover::after,td [data-tip]:hover::after{top:auto;bottom:calc(100% + 6px)}

/* 靠右的挂载点把浮层改成向左画：基础规则是 left:0，浮层从挂载点左边缘往右铺，
   而浮层宽到 300px（width:max-content 撑到 max-width 封顶）时挂在贴右缘的挂载点上会整块越出去。
   量法：把 :hover 规则克隆成常驻让浮层一直存在，再逐个选择器把 left 改回 0 读 document 的撑宽。
   实测三处（视口 1440）：
   - .top-right 的两个（重置 / 头像）：文字原宽 176 / 138，左锚时浮层右缘落在 1449 / 1534，
     分别越出视口 9px / 94px，整页实测撑宽 92px —— 悬停时冒出横向滚动条、内容向左跳；
   - .page-head .extra 里的按钮（待支付订单详情的「更换顾问」，这是全站唯一带 data-tip 的状态）：
     文字原宽 198、挂载点左缘 1307，左锚时浮层右缘 1505，整页实测撑宽 66px（1280 视口同值）；
   - .toolbar 里的「模拟支付成功订单」#tk-sim：文字原宽 409 被 max-width 截到 300，
     浮层右缘会画到 1552 —— 越出 .panel 右缘 1420 达 132px、也越出视口 112px。
     但这一处 document 实测撑宽 0：浮层先被 .panel{overflow:hidden}（console.css）从右边裁掉了，
     页面上看不到滚动条，代价是那 132px 的文字直接没了。
   改成右对齐后浮层往容器内侧铺，越靠右越安全；三处恢复右锚后逐页实测溢出均为 0。
   注意别写成 .panel-head .extra —— 那个选择器全站命中 0 个元素（.panel-head 的 .extra 里
   放的是没有 data-tip 的按钮 / 文本），写上去等于什么都没修，还让人以为这处已经处理过了。
   浮层挂载点会挪窝，改这条规则前先量一遍到底命中了几个。 */
.top-right [data-tip]:hover::after,
.page-head .extra [data-tip]:hover::after,
.toolbar [data-tip]:hover::after{left:auto;right:0}

/* ------------------------------------------------------- 订单详情 / 概览 */

.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  background:var(--line-2);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.stat{padding:14px 16px;background:var(--surface)}
.stat .k{color:var(--text-3);font-size:12px}
.stat .v{margin-top:6px;font-size:21px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}
.stat .v small{font-size:12px;font-weight:400;color:var(--text-3);margin-left:5px}

.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 24px}
.info-item{min-width:0}
.info-item .k{color:var(--text-3);font-size:12px;margin-bottom:5px}
.info-item .v{font-size:13px;line-height:1.6;word-break:break-word}
.info-item .v.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}

/* 商品预览（编辑页右侧） */
.preview-card{position:sticky;top:16px}
.preview-shot{
  width:100%;aspect-ratio:4/3;border-radius:8px;overflow:hidden;
  border:1px solid var(--line);background:var(--surface-3);display:grid;place-items:center;
}
.preview-shot img{width:100%;height:100%;object-fit:cover;display:block}
.preview-shot .gen{width:100%;height:100%;display:grid;place-items:center;color:#fff;font-size:30px;font-weight:600}
.preview-meta{padding:13px 15px}
.preview-meta h3{margin:0;font-size:14px;font-weight:600;line-height:1.5;word-break:break-word}
.preview-meta .row{display:flex;align-items:baseline;gap:8px;margin-top:9px}
.preview-meta .price{color:#e95138;font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}
.preview-meta .sku{color:var(--text-3);font-size:12px;font-variant-numeric:tabular-nums}

/* 编辑页两栏：左表单 + 右预览 */
.edit-cols{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;align-items:start}
@media (max-width:1080px){.edit-cols{grid-template-columns:minmax(0,1fr)}.preview-card{position:static}}

/* 订单详情的商品行 */
.order-line{display:flex;gap:14px;align-items:flex-start}
.order-line .thumb{width:64px;height:64px}
.order-line .body{flex:1;min-width:0}
.order-line .body h3{margin:0;font-size:14px;font-weight:600;line-height:1.5}
.order-line .body .meta{margin:7px 0 0;color:var(--text-3);font-size:12px;font-variant-numeric:tabular-nums}
.order-line .body .meta span + span{margin-left:14px}
.order-line .amt{flex:none;text-align:right}
.order-line .amt .price{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}

/* 快照对比：下单时 vs 当前 */
.snap-note{
  margin-top:10px;padding:8px 11px;border-radius:6px;
  background:var(--wait-bg);border:1px solid var(--wait-bd);
  color:var(--tk-wait-2);font-size:12px;line-height:1.6;
}

/* 空状态里的紧凑变体 */
.empty-sm{padding:34px 16px 36px}
