/* ============================================================================
 * styles.css —— ④ 平台管理后台 WEB 主题（平台紫 #722ED1）
 * 设计 token 严格来自 CONTRACT §6 / §10（状态色禁止改义）。
 * 布局：左侧多级导航（240px）+ 顶栏 + 内容区；密集信息型表格（平台后台风）。
 * ==========================================================================*/
:root{
  --c-bg:#F5F6F8; --c-card:#FFFFFF; --c-line:#EEEEEE;
  --c-primary-b:#1F6FEB;   /* 商家端主色(蓝) */
  --c-primary-c:#FF4D4F;   /* 抖音C端主色(红) */
  --c-primary-p:#722ED1;   /* 平台端主色(紫) */
  --c-purple:#722ED1;
  --c-purple-weak:#F3EBFC;
  --fs-title:20px; --fs-h2:18px; --fs-h3:16px; --fs-body:14px; --fs-sm:12px;
  --radius:8px; --shadow:0 2px 8px rgba(0,0,0,.06); --row-h:48px;
  --s-pending:#FAAD14; --s-confirmed:#1F6FEB; --s-arrived:#13C2C2; --s-verified:#52C41A;
  --s-partial:#FA8C16; --s-cancel:#8C8C8C; --s-noshow:#FF4D4F; --s-resched:#722ED1; --s-expired:#595959;
  --txt:#1F2329; --txt-2:#646A73; --txt-3:#8F959E;
  --ok:#52C41A; --warn:#FAAD14; --danger:#FF4D4F;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0; background:var(--c-bg); color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;
  font-size:var(--fs-body); line-height:1.5;
}
.hidden{display:none !important;}
a{color:var(--c-primary-p); text-decoration:none;}
button{font-family:inherit;}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:#D6D8DB;border-radius:4px;}

/* ---------------- 登录页 ---------------- */
#login-screen{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#3A1F66 0%,#722ED1 55%,#9B5DE5 100%);}
.login-card{width:860px;max-width:94vw;background:var(--c-card);border-radius:14px;
  box-shadow:0 18px 60px rgba(0,0,0,.28);overflow:hidden;display:flex;min-height:460px;}
.login-brand{width:340px;padding:38px 30px;color:#fff;background:linear-gradient(160deg,#5B21B6,#722ED1 70%,#9333EA);}
.login-brand h1{font-size:24px;margin:0 0 6px;}
.login-brand .sub{opacity:.86;font-size:13px;margin-bottom:26px;}
.login-brand ul{list-style:none;padding:0;margin:0;font-size:13px;}
.login-brand li{padding:9px 0;border-bottom:1px dashed rgba(255,255,255,.18);display:flex;gap:8px;}
.login-brand li b{font-weight:600;}
.login-form{flex:1;padding:38px 36px;}
.login-form h2{margin:0 0 4px;font-size:20px;}
.login-form .hint{color:var(--txt-3);font-size:13px;margin-bottom:20px;}
.role-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;}
.role-pick .item{border:1px solid var(--c-line);border-radius:10px;padding:12px 14px;cursor:pointer;transition:.15s;}
.role-pick .item:hover{border-color:var(--c-purple);background:var(--c-purple-weak);}
.role-pick .item.active{border-color:var(--c-purple);background:var(--c-purple-weak);box-shadow:inset 0 0 0 1px var(--c-purple);}
.role-pick .item .t{font-weight:600;font-size:14px;}
.role-pick .item .d{font-size:12px;color:var(--txt-3);margin-top:2px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;color:var(--txt-2);margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;padding:9px 11px;border:1px solid #D9DCE0;border-radius:8px;font-size:14px;outline:none;background:#fff;color:var(--txt);}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--c-purple);box-shadow:0 0 0 2px rgba(114,46,209,.12);}

/* ---------------- 主壳布局 ---------------- */
.app-shell{display:flex;height:100vh;overflow:hidden;}
.sidebar{width:240px;flex:0 0 240px;background:#1E1533;color:#D9D2E8;display:flex;flex-direction:column;overflow-y:auto;}
.sb-brand{height:60px;display:flex;align-items:center;gap:10px;padding:0 18px;font-weight:700;color:#fff;font-size:16px;
  background:linear-gradient(90deg,#5B21B6,#722ED1);flex:none;}
.sb-brand .dot{width:10px;height:10px;border-radius:3px;background:#B388FF;}
.sb-group{padding:14px 18px 6px;font-size:11px;color:#8B7FB0;letter-spacing:1px;}
.sb-item{display:flex;align-items:center;gap:10px;padding:10px 18px;cursor:pointer;font-size:14px;border-left:3px solid transparent;transition:.12s;}
.sb-item:hover{background:rgba(255,255,255,.06);color:#fff;}
.sb-item.active{background:rgba(114,46,209,.35);color:#fff;border-left-color:#B388FF;font-weight:600;}
.sb-item .ico{width:18px;text-align:center;}
.sb-foot{margin-top:auto;padding:12px 18px;font-size:11px;color:#8B7FB0;border-top:1px solid rgba(255,255,255,.08);}

.main-col{flex:1;display:flex;flex-direction:column;min-width:0;}
.topbar{height:60px;flex:none;background:var(--c-card);border-bottom:1px solid var(--c-line);display:flex;align-items:center;gap:16px;padding:0 20px;}
.topbar .crumb{font-size:13px;color:var(--txt-3);}
.topbar .crumb b{color:var(--txt);}
.topbar .search{flex:1;max-width:380px;position:relative;}
.topbar .search input{width:100%;padding:8px 12px 8px 32px;border:1px solid var(--c-line);border-radius:20px;font-size:13px;background:#F7F8FA;outline:none;}
.topbar .search::before{content:"🔍";position:absolute;left:11px;top:8px;font-size:13px;opacity:.6;}
.topbar .spacer{flex:1;}
.topbar .tools{display:flex;align-items:center;gap:14px;}
.topbar .bell{position:relative;cursor:pointer;font-size:18px;}
.topbar .bell .badge{position:absolute;top:-4px;right:-6px;background:var(--danger);color:#fff;font-size:10px;border-radius:9px;padding:1px 5px;}
.role-switch{display:flex;align-items:center;gap:8px;border:1px solid var(--c-line);border-radius:20px;padding:5px 12px;cursor:pointer;background:#F7F8FA;}
.role-switch select{border:none;background:transparent;font-size:13px;outline:none;color:var(--txt);cursor:pointer;}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--c-purple);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;}

.content{flex:1;overflow-y:auto;padding:20px 24px 40px;}

/* ---------------- 通用 ---------------- */
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap;}
.page-head h2{margin:0;font-size:var(--fs-h2);}
.page-head .desc{color:var(--txt-3);font-size:12px;margin-top:4px;max-width:720px;}
.card{background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:16px;}
.card h3{margin:0 0 12px;font-size:var(--fs-h3);display:flex;align-items:center;gap:8px;}
.card h3 .sub{font-size:12px;color:var(--txt-3);font-weight:400;}
.grid{display:grid;gap:16px;}
.grid.c2{grid-template-columns:repeat(2,1fr);}
.grid.c3{grid-template-columns:repeat(3,1fr);}
.grid.c4{grid-template-columns:repeat(4,1fr);}
@media(max-width:1200px){.grid.c4{grid-template-columns:repeat(2,1fr);}.grid.c3{grid-template-columns:repeat(2,1fr);}}

/* 指标卡 */
.stat-card{background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.stat-card .lbl{font-size:13px;color:var(--txt-3);}
.stat-card .val{font-size:26px;font-weight:700;margin:6px 0 2px;letter-spacing:.3px;}
.stat-card .foot{font-size:12px;color:var(--txt-3);display:flex;justify-content:space-between;}
.stat-card .accent{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c-purple);}
.stat-card .tip{cursor:help;border-bottom:1px dotted var(--txt-3);}

/* 按钮 */
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;border:1px solid var(--c-line);background:#fff;color:var(--txt);cursor:pointer;font-size:13px;transition:.12s;white-space:nowrap;}
.btn:hover{border-color:var(--c-purple);color:var(--c-purple);}
.btn.primary{background:var(--c-purple);border-color:var(--c-purple);color:#fff;}
.btn.primary:hover{background:#5B21B6;color:#fff;}
.btn.danger{color:var(--danger);border-color:#FFCCC7;}
.btn.danger:hover{background:#FFF1F0;}
.btn.ok{color:var(--ok);border-color:#B7EB8F;}
.btn.ok:hover{background:#F6FFED;}
.btn.ghost{border-color:transparent;background:transparent;color:var(--c-purple);padding:4px 8px;}
.btn.sm{padding:4px 9px;font-size:12px;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;}
.toolbar .spacer{flex:1;}

/* 表格 */
.tbl-wrap{overflow-x:auto;border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-card);}
table.tbl{width:100%;border-collapse:collapse;font-size:13px;}
table.tbl th{background:#FAFAFB;text-align:left;padding:10px 12px;font-weight:600;color:var(--txt-2);border-bottom:1px solid var(--c-line);white-space:nowrap;position:sticky;top:0;}
table.tbl th.sortable{cursor:pointer;user-select:none;}
table.tbl th.sortable:hover{color:var(--c-purple);}
table.tbl th .arrow{font-size:10px;color:var(--txt-3);margin-left:4px;}
table.tbl td{padding:9px 12px;border-bottom:1px solid #F4F5F7;vertical-align:middle;}
table.tbl tbody tr:hover{background:#FBFAFE;}
table.tbl td.num,table.tbl th.num{text-align:right;font-variant-numeric:tabular-nums;}
.money{color:var(--txt);font-weight:600;font-variant-numeric:tabular-nums;}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--txt-2);}
.tbl-empty{padding:34px;text-align:center;color:var(--txt-3);font-size:13px;}

/* 分页 */
.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:10px 4px 2px;font-size:13px;color:var(--txt-2);}
.pager .pg{border:1px solid var(--c-line);border-radius:6px;background:#fff;min-width:30px;padding:4px 8px;cursor:pointer;}
.pager .pg.active{background:var(--c-purple);color:#fff;border-color:var(--c-purple);}
.pager .pg:disabled{opacity:.4;cursor:not-allowed;}

/* 状态胶囊（用 CONTRACT §6 状态色） */
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:11px;font-size:12px;line-height:18px;
  border:1px solid transparent;white-space:nowrap;}
.tag .d{width:6px;height:6px;border-radius:50%;background:currentColor;}
.tag.PENDING_CONFIRM{color:var(--s-pending);background:#FFFBE6;border-color:#FFE58F;}
.tag.CONFIRMED,.tag.AWAITING_ARRIVAL{color:var(--s-confirmed);background:#EAF2FF;border-color:#BAD4FF;}
.tag.ARRIVED{color:var(--s-arrived);background:#E6FFFB;border-color:#87E8DE;}
.tag.FULFILLED,.tag.VERIFIED,.tag.PASS,.tag.ACTIVE,.tag.SAFE{color:var(--s-verified);background:#F6FFED;border-color:#B7EB8F;}
.tag.PARTIALLY_FULFILLED,.tag.SUSPECT{color:var(--s-partial);background:#FFF7E6;border-color:#FFD591;}
.tag.CANCELLED_BY_USER,.tag.CANCELLED_BY_MERCHANT,.tag.DISABLED,.tag.PAID{color:var(--s-cancel);background:#F5F5F5;border-color:#E0E0E0;}
.tag.NO_SHOW,.tag.REJECT,.tag.BLOCK,.tag.SUSPENDED,.tag.FAILED{color:var(--s-noshow);background:#FFF1F0;border-color:#FFCCC7;}
.tag.RESCHEDULED{color:var(--s-resched);background:var(--c-purple-weak);border-color:#D3ADF7;}
.tag.EXPIRED{color:var(--s-expired);background:#F0F0F0;border-color:#D9D9D9;}
.tag.PENDING{color:var(--s-pending);background:#FFFBE6;border-color:#FFE58F;}
.tag.CONFIRMED-ST{color:#1F6FEB;}
.tag.DRAFT{color:var(--s-expired);background:#F0F0F0;border-color:#D9D9D9;}
.tag.neutral{color:var(--txt-2);background:#F5F5F5;border-color:#E0E0E0;}
.tag.purple{color:var(--c-purple);background:var(--c-purple-weak);border-color:#D3ADF7;}

/* 标签 chip */
.chip{display:inline-block;padding:1px 8px;border-radius:6px;background:var(--c-purple-weak);color:var(--c-purple);font-size:12px;margin-right:4px;}
.chip.gray{background:#F2F3F5;color:var(--txt-2);}

/* 面包屑 */
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:12px;color:var(--txt-3);}
.breadcrumb a{cursor:pointer;}
.breadcrumb .sep{color:#C9CDD4;}

/* Toast */
.toast-root{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:120;display:flex;flex-direction:column;gap:8px;align-items:center;}
.toast{background:#fff;border:1px solid var(--c-line);border-left:4px solid var(--c-purple);border-radius:8px;box-shadow:0 6px 22px rgba(0,0,0,.14);
  padding:10px 16px;font-size:13px;min-width:220px;animation:tin .2s ease;}
.toast.ok{border-left-color:var(--ok);} .toast.warn{border-left-color:var(--warn);} .toast.err{border-left-color:var(--danger);}
@keyframes tin{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:none;}}

/* Modal */
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:100;display:flex;align-items:center;justify-content:center;animation:fade .15s;}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
.modal{background:#fff;border-radius:12px;width:520px;max-width:94vw;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3);}
.modal.wide{width:760px;}
.modal .m-head{padding:16px 20px;border-bottom:1px solid var(--c-line);font-size:16px;font-weight:600;display:flex;justify-content:space-between;align-items:center;}
.modal .m-body{padding:18px 20px;overflow-y:auto;}
.modal .m-foot{padding:12px 20px;border-top:1px solid var(--c-line);display:flex;justify-content:flex-end;gap:10px;}
.modal .x{cursor:pointer;color:var(--txt-3);font-size:18px;line-height:1;}

/* Drawer */
.drawer-mask{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:100;animation:fade .15s;}
.drawer{position:fixed;top:0;right:0;bottom:0;width:560px;max-width:96vw;background:#fff;z-index:101;box-shadow:-8px 0 40px rgba(0,0,0,.2);
  display:flex;flex-direction:column;animation:slidein .2s ease;}
.drawer.wide{width:760px;}
@keyframes slidein{from{transform:translateX(30px);opacity:.6;}to{transform:none;opacity:1;}}
.drawer .d-head{padding:16px 20px;border-bottom:1px solid var(--c-line);font-size:16px;font-weight:600;display:flex;justify-content:space-between;align-items:center;}
.drawer .d-body{padding:18px 20px;overflow-y:auto;flex:1;}
.drawer .d-foot{padding:12px 20px;border-top:1px solid var(--c-line);display:flex;justify-content:flex-end;gap:10px;}

/* 描述列表 */
.dl{display:grid;grid-template-columns:110px 1fr;gap:8px 14px;font-size:13px;}
.dl dt{color:var(--txt-3);}
.dl dd{margin:0;color:var(--txt);word-break:break-all;}

/* 表单行 */
.form-row{display:flex;gap:12px;}
.form-row>.field{flex:1;}

/* 说明/口径区 */
.note{background:#FBF7FF;border:1px solid #E9DBFB;border-radius:8px;padding:10px 14px;font-size:12px;color:#5B3E8C;line-height:1.8;}
.note b{color:var(--c-purple);}
.note code{background:#F2E9FC;border-radius:4px;padding:1px 5px;font-size:11px;color:#5B21B6;}

/* 双栏（左改右变预览） */
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:1000px){.split{grid-template-columns:1fr;}}

/* 时间线 */
.timeline{position:relative;padding-left:22px;}
.timeline:before{content:"";position:absolute;left:6px;top:4px;bottom:4px;width:2px;background:var(--c-line);}
.timeline .tl-item{position:relative;padding:0 0 14px 6px;}
.timeline .tl-item:before{content:"";position:absolute;left:-19px;top:4px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--c-purple);}
.timeline .tl-item.ok:before{border-color:var(--ok);} .timeline .tl-item.warn:before{border-color:var(--warn);} .timeline .tl-item.err:before{border-color:var(--danger);}
.timeline .tl-time{font-size:12px;color:var(--txt-3);}
.timeline .tl-title{font-size:13px;color:var(--txt);}
.timeline .tl-desc{font-size:12px;color:var(--txt-2);}

/* 实时动态流 */
.feed{max-height:360px;overflow-y:auto;}
.feed .fd{display:flex;gap:10px;padding:9px 4px;border-bottom:1px dashed #F0F0F0;font-size:13px;align-items:baseline;}
.feed .fd .t{color:var(--txt-3);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums;}
.feed .fd .b{color:var(--c-purple);}
.feed .fd.new{animation:flash 1.2s ease;}
@keyframes flash{from{background:#F3EBFC;}to{background:transparent;}}

/* Canvas 图表容器 */
.chart-box{width:100%;}
canvas{max-width:100%;}

/* inline 预览手机壳 */
.mini-phone{border:10px solid #1E1533;border-radius:26px;padding:12px;background:#fff;max-width:320px;margin:0 auto;}
.mini-phone .mp-notch{height:16px;background:#1E1533;border-radius:0 0 10px 10px;margin:-12px -12px 12px;}
.mini-phone .mp-banner{height:90px;border-radius:10px;background:linear-gradient(120deg,#722ED1,#B388FF);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;}
.mini-phone .mp-block{background:#F7F8FA;border-radius:8px;height:54px;margin-top:10px;display:flex;align-items:center;justify-content:center;color:var(--txt-3);font-size:12px;}

/* 差异对比 */
.diff{font-size:12px;font-family:ui-monospace,Menlo,Consolas,monospace;}
.diff .k{color:var(--txt-3);}
.diff .before{color:#C41D7F;}
.diff .after{color:#237804;}
.diff table{width:100%;border-collapse:collapse;}
.diff td{padding:2px 6px;border-bottom:1px solid #F5F5F5;vertical-align:top;}

/* 权限矩阵 */
.perm-matrix td.pt{text-align:center;}
.perm-matrix .yes{color:var(--ok);font-weight:700;}
.perm-matrix .no{color:#D9D9D9;}

/* 关键词高亮 */
.kw{background:#FFF1F0;color:#CF1322;border-radius:3px;padding:0 3px;font-weight:600;}

/* 空态 */
.empty{padding:40px;text-align:center;color:var(--txt-3);}
.empty .big{font-size:34px;opacity:.5;margin-bottom:8px;}

/* 小工具 */
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.muted{color:var(--txt-3);}
.right{text-align:right;}
.pill{display:inline-block;padding:2px 8px;border-radius:10px;background:#F2F3F5;color:var(--txt-2);font-size:12px;}
.bar{height:8px;background:#F0F0F0;border-radius:4px;overflow:hidden;min-width:80px;}
.bar>i{display:block;height:100%;background:var(--c-purple);}
.bar>i.g{background:var(--ok);} .bar>i.r{background:var(--danger);} .bar>i.o{background:var(--s-partial);}

/* ---------------- v1.1 新增：可下钻指标卡 / 图表 ---------------- */
.stat-card.clickable{transition:.12s;}
.stat-card.clickable:hover{border-color:var(--c-purple);box-shadow:0 6px 18px rgba(114,46,209,.16);transform:translateY(-1px);}
.stat-card.clickable .lbl{display:flex;justify-content:space-between;align-items:center;}
.stat-card .chev{color:var(--c-purple);font-weight:700;font-size:16px;line-height:1;}
.stat-card .drill-hint{position:absolute;right:12px;bottom:10px;font-size:11px;color:var(--c-purple);opacity:0;transition:.12s;}
.stat-card.clickable:hover .drill-hint{opacity:.9;}
.chart-box.clickable{position:relative;}
.chart-box.clickable:hover{outline:1px dashed var(--c-purple);outline-offset:2px;border-radius:6px;cursor:pointer;}

/* ---------------- v1.1 新增：内容预览（多 Banner / 金刚区） ---------------- */
.mp-banners{display:flex;gap:8px;overflow:hidden;margin-top:10px;}
.mp-banners .bn{flex:0 0 78%;height:76px;border-radius:10px;background:linear-gradient(120deg,#722ED1,#B388FF);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:0 12px;font-size:12px;}
.mp-banners .bn b{font-size:13px;display:block;margin-bottom:3px;}
.mp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;}
.mp-grid .gi{background:#F7F8FA;border-radius:8px;padding:9px 4px;text-align:center;font-size:11px;color:var(--txt-2);}
.mp-grid .gi .ic{font-size:19px;display:block;margin-bottom:2px;}

/* ---------------- v1.1 新增：可编辑列表项 ---------------- */
.list-item{display:flex;gap:8px;align-items:center;border:1px solid var(--c-line);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:#fff;}
.list-item .grow{flex:1;min-width:0;}
.list-item .thumb{width:42px;height:42px;border-radius:6px;background:#F2F3F5;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;}
.list-item input,.list-item select{width:100%;padding:6px 8px;border:1px solid #D9DCE0;border-radius:6px;font-size:13px;outline:none;}

/* ---------------- v1.1 新增：规则引擎开关 / 关键词 chip ---------------- */
.rule-row{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px dashed #F0F0F0;font-size:13px;flex-wrap:wrap;}
.switch{position:relative;width:40px;height:22px;border-radius:11px;background:#D9D9D9;cursor:pointer;flex:none;transition:.15s;}
.switch.on{background:var(--c-purple);}
.switch i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s;}
.switch.on i{left:20px;}
.kw-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:6px;background:#FFF1F0;color:#CF1322;font-size:12px;margin:0 6px 6px 0;}
.kw-chip .x{cursor:pointer;font-weight:700;}
.perm-name{font-weight:600;color:var(--txt);}
.perm-desc{font-size:12px;color:var(--txt-3);margin-top:2px;}

/* ---------------- v1.4 新增（Rev6）：资质材料真实预览 ---------------- */
.qual-item{border:1px solid var(--c-line);border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:8px;}
.qual-thumb{width:100%;height:150px;object-fit:contain;border-radius:8px;background:#F7F8FA;border:1px solid var(--c-line);display:block;}
.qual-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--txt-3);font-size:12px;border:1px dashed #C9CDD4;background:#FAFAFB;}
.qual-meta{min-width:0;}
.qual-name{font-size:13px;font-weight:600;color:var(--txt);display:flex;align-items:center;gap:6px;flex-wrap:wrap;word-break:break-all;}

/* ---------------- v1.5 新增（Rev7 · T04）：卡项道具同步态 / 退款渠道 徽标 ---------------- */
/* 仅新增类，不改任何既有类；publishStatus 复用既有 tag 色板（neutral/PENDING/PARTIALLY_FULFILLED/ACTIVE/EXPIRED）。 */
.tag.ANDROID{color:#0958D9;background:#E6F4FF;border-color:#91CAFF;}
.tag.IOS{color:#8C4A00;background:#FFF7E6;border-color:#FFD591;}
.tag.REFUNDED{color:#531DAB;background:#F9F0FF;border-color:#D3ADF7;}
.gate-ok{color:var(--ok);font-size:12px;font-weight:600;}
.gate-reasons{font-size:11px;color:var(--danger);margin-top:3px;line-height:1.6;}

/* ---------------- v1.5 新增（Rev7.3 · T06）：开票处理 徽标 ---------------- */
/* 仅新增类，不改任何既有类；invoiceRequest 状态复用既有 tag 色板
   （PENDING/PARTIALLY_FULFILLED/ACTIVE/REJECT），此处仅补「专用发票」类型徽标。 */
.tag.SPECIAL{color:#531DAB;background:#F9F0FF;border-color:#D3ADF7;}

/* ---------------- v1.6 新增（Rev9 · T02b-1）：平台账号管控页 ---------------- */
/* 仅新增类，不改任何既有类；账号列表 / 代改绑弹窗复用既有 .card / .tbl / .field / .btn / .note。 */
.form-row{display:flex;gap:12px;}
.form-row > .field{flex:1;}
#ac-tbl-wrap{overflow-x:auto;}

/* ---------------- v1.6 新增（Rev9 · T03）：平台经营参数配置页 ---------------- */
/* 仅新增类，不改任何既有类；经营参数页复用既有 .card/.tbl/.field/.form-row/.note/.grid.c4。 */
.params-store-buf{width:96px;}

