/* ===== 曼格商城后台设计系统（对齐线框） ===== */
:root{
  --mars:#008B8C; --mars-l:#E8F6F6;
  --orange:#E95D21; --orange-l:#FFF5E8;
  --line:#d4d4d4; --ink:#333; --mut:#999; --bg:#f0f0f0;
  --ok:#2ea44f; --warn:#e6a23c; --danger:#e74c3c;
}
*{box-sizing:border-box;margin:0;padding:0;font-family:"Microsoft YaHei","PingFang SC","Helvetica Neue",sans-serif;}
html,body{height:100%;}
body{display:flex;flex-direction:column;background:#ececec;color:var(--ink);font-size:13px;}

/* 顶栏 */
.topbar{height:100px;flex-shrink:0;background:var(--mars);color:#fff;
  display:flex;align-items:center;justify-content:space-between;padding:0 22px;}
.topbar .brand{font-size:18px;font-weight:bold;display:flex;align-items:center;gap:12px;}
.topbar .brand .logo{width:30px;height:30px;background:var(--orange);border-radius:6px;overflow:hidden;display:block;}
.topbar .brand .logo img{width:100%;height:100%;object-fit:cover;display:block;}
.topbar .user{display:flex;align-items:center;gap:10px;font-size:13px;}
.topbar .ava{width:32px;height:32px;border-radius:50%;object-fit:cover;background:transparent;border:1px solid rgba(255,255,255,.6);}
.topbar .logout{background:rgba(255,255,255,.2);padding:6px 12px;border-radius:4px;cursor:pointer;}
.topbar .brand .ver{font-size:12px;font-weight:normal;opacity:.9;margin-left:4px;vertical-align:baseline;}

/* 主体 */
.body{flex:1;display:flex;min-height:0;}
.left{width:130px;flex-shrink:0;background:#fafafa;border-right:1px solid var(--line);
  overflow:auto;padding:6px 0;}
.lv1{display:flex;flex-direction:column;align-items:center;padding:18px 0;
  border-bottom:1px dashed #d9d9d9;cursor:pointer;}
.lv1:last-child{border-bottom:none;}
.lv1 .icon{font-size:48px;line-height:1;color:#9a9a9a;display:flex;align-items:center;justify-content:center;opacity:.75;}
.lv1 .lbl{margin-top:6px;font-size:13px;color:#555;text-align:center;width:90px;line-height:1.3;}
.lv1.active .icon{color:var(--mars);opacity:1;}
.lv1.active .lbl{color:var(--mars);font-weight:bold;}

.right{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg);}
.subtabs{display:flex;gap:2px;background:#fff;border-bottom:1px solid var(--line);
  padding:0 14px;overflow-x:auto;flex-shrink:0;}
.stab{padding:13px 18px;font-size:13px;color:var(--mut);cursor:pointer;white-space:nowrap;
  border-bottom:2px solid transparent;}
.stab:hover{color:var(--mars);}
.stab.active{color:var(--mars);font,weight:bold;border-bottom-color:var(--orange);}
.panel{flex:1;overflow:auto;padding:18px 22px;}

/* 线框通用 */
.wf{border:1.5px dashed #aaa;background:#fff;padding:14px;margin-bottom:14px;border-radius:6px;}
.wf-h{font-weight:bold;color:var(--mars);margin-bottom:10px;font-size:14px;display:flex;align-items:center;gap:6px;}
.wf-h::before{content:"";width:4px;height:14px;background:var(--orange);display:inline-block;border-radius:2px;}
.ph{background:#f3f3f3;border:1px dashed #c4c4c4;color:var(--mut);padding:9px;text-align:center;margin:6px 0;border-radius:4px;font-size:12px;}
.ph.sm{display:inline-block;padding:5px 12px;margin:4px 6px 4px 0;}
.btn{display:inline-block;background:var(--mars);color:#fff;padding:7px 16px;border-radius:4px;font-size:12px;margin:4px 8px 4px 0;cursor:pointer;border:none;}
.btn:hover{opacity:.9;}
.btn.o{background:var(--orange);}
.btn.g{background:#fff;color:var(--mars);border:1px solid var(--mars);}
.btn.sm{padding:4px 10px;font-size:12px;}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.field{display:flex;align-items:center;gap:10px;margin:8px 0;}
.field label{width:92px;color:var(--mut);text-align:right;flex-shrink:0;}
.field .ph{flex:1;margin:0;}
/* 块级字段：label 置顶，内容自然流式排布（优惠券适用商品/活动冲突） */
.field.col{display:block;margin:14px 0;}
.field.col > label{display:block;width:auto;text-align:left;color:var(--mut);font-size:12px;margin-bottom:8px;}

/* 表单网格：压缩宽度，多字段同行展示 */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 22px;margin:8px 0;}
.form-grid3{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:0 18px;margin:8px 0;}
.field.span2{grid-column:1 / -1;}
.img-row{display:flex;gap:22px;margin:8px 0;align-items:flex-start;}
.img-col{flex:1;min-width:0;}
.img-col .wf-h{margin-bottom:6px;}
.price-row{display:flex;flex-wrap:wrap;gap:0 18px;margin:8px 0;}
.price-row .field{flex:1;min-width:120px;}
.sku-top{display:flex;align-items:flex-end;gap:14px;margin:8px 0;}
.sku-top .sku-dim{flex:1;}
.sku-top .btn{flex-shrink:0;}
.form-grid .field{margin:0;}
.form-grid .field label{width:72px;color:#555;font-size:13px;flex-shrink:0;}
.form-grid .field input,.form-grid .field select{flex:1;min-width:0;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:13px;}
/* 拼团开团配置：两列网格 + 分组标题美化 */
.form-grid{gap:12px 20px;}
.grp-sec-h{font-size:13px;font-weight:600;color:var(--mars);margin:18px 0 10px;padding-left:10px;border-left:3px solid var(--mars);line-height:1.3;letter-spacing:.3px;}
.grp-sec-h:first-of-type{margin-top:4px;}
.form-grid .field label{width:auto;min-width:60px;max-width:132px;text-align:right;white-space:normal;line-height:1.25;}
.form-grid .field.span2{grid-column:1 / -1;}
.form-grid .field.col{display:block;}
.form-grid .field.col > label{display:block;width:auto;text-align:left;color:var(--mut);font-size:12px;margin-bottom:6px;}
.form-grid .field input,.form-grid .field select{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;outline:none;transition:.15s;background:#fcfcfc;}
.form-grid .field input:focus,.form-grid .field select:focus{border-color:var(--mars);box-shadow:0 0 0 2px var(--mars-l);background:#fff;}
.form-grid .field textarea{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit;outline:none;resize:vertical;background:#fcfcfc;}
.form-grid .field textarea:focus{border-color:var(--mars);box-shadow:0 0 0 2px var(--mars-l);background:#fff;}

/* SKU 生成器 */
.sku-builder{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fafdfd;margin:8px 0;}
.sku-row{display:flex;gap:22px;margin:8px 0;}
.sku-row .sku-dim{flex:1;}
.sku-dim{display:flex;align-items:center;gap:10px;}
.sku-dim label{width:48px;color:#555;font-size:13px;flex-shrink:0;}
.sku-dim input{flex:1;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:13px;}
.sku-tip{color:var(--orange);font-size:12px;}
.sku-tbl{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px;}
.sku-tbl th,.sku-tbl td{border:1px solid var(--line);padding:8px;text-align:left;}
.sku-tbl th{background:#f3f3f3;color:#555;font-weight:bold;}
.sku-ip{width:100%;border:1px solid #ddd;border-radius:4px;padding:6px;font-size:13px;box-sizing:border-box;}
.sku-dim-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.sku-dim-row .dim-name{width:150px;flex-shrink:0;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:13px;}
.sku-dim-row .dim-vals{flex:1;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:13px;}
.sku-dim-row .btn{flex-shrink:0;}
/* 商品分类列表：图标列加宽单行，无图标为正方形灰框 */
.cat-list .tbl td:first-child,.cat-list .tbl th:first-child{width:110px;white-space:nowrap;text-align:center;vertical-align:middle;}
.cat-list .tbl td:nth-child(2),.cat-list .tbl th:nth-child(2){white-space:nowrap;}
.cat-list .cat-ic{width:28px;height:28px;object-fit:cover;border-radius:6px;vertical-align:middle;display:inline-block;}
.cat-list .cat-ph{display:inline-block;width:28px;height:28px;background:#f3f3f3;border:1px dashed #c4c4c4;border-radius:6px;vertical-align:middle;box-sizing:border-box;}
/* 圈子文章·公众号风格图文编辑器 */
.art-edit{display:flex;flex-direction:column;max-height:86vh;background:#eef1f2;border-radius:10px;overflow:hidden;}
.art-edit-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--line);}
.art-edit-title{font-size:15px;font-weight:600;color:#222;}
.art-edit-right{display:flex;align-items:center;gap:12px;}
.art-paper{max-width:680px;margin:0 auto;width:100%;background:#fff;padding:26px 30px 48px;overflow:auto;flex:1;box-sizing:border-box;}
.art-title-in{width:100%;border:none;outline:none;font-size:22px;font-weight:700;color:#222;padding:4px 0;margin-bottom:2px;background:transparent;}
.art-title-in::placeholder{color:#bbb;font-weight:700;}
.art-author-in{width:100%;border:none;outline:none;font-size:13px;color:#999;padding:2px 0 12px;border-bottom:1px solid #f0f0f0;margin-bottom:16px;background:transparent;}
.art-author-in::placeholder{color:#ccc;}
.art-cover{margin-bottom:16px;}
.art-cover-label{font-size:12px;color:#999;margin-bottom:8px;}
.art-cover-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.art-cover-img{max-width:170px;max-height:96px;border-radius:6px;border:1px solid var(--line);object-fit:cover;display:block;}
.art-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fafdfd;width:100%;box-sizing:border-box;}
.art-editor{min-height:340px;border:1px solid #eee;border-radius:8px;background:#fff;padding:20px 22px;font-size:16px;line-height:1.8;color:#333;outline:none;width:100%;box-sizing:border-box;}
.art-editor:focus{border-color:var(--mars);}
.art-editor h2{font-size:19px;margin:14px 0 8px;color:#222;}
.art-editor p{margin:8px 0;}
.art-editor blockquote{margin:10px 0;padding:8px 14px;border-left:3px solid var(--mars);background:#f6fcfc;color:#555;border-radius:0 6px 6px 0;}
.art-editor img{max-width:100%;border-radius:8px;display:block;margin:10px auto;}
.art-editor hr{border:none;border-top:1px dashed #ccc;margin:16px 0;}
/* 文章管理列表：标题列加宽、一行显示、不溢出 */
table.art-tbl{table-layout:fixed;width:100%;}
table.art-tbl th,table.art-tbl td{overflow:hidden;}
table.art-tbl td:first-child,table.art-tbl th:first-child{width:20%;max-width:20%;text-align:left;color:#333;font-weight:600;}
table.art-tbl td:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
table.art-tbl th:nth-child(2),table.art-tbl td:nth-child(2){width:30%;white-space:nowrap;text-align:center;}
table.art-tbl th:nth-child(3),table.art-tbl td:nth-child(3){width:12%;white-space:nowrap;text-align:center;}
table.art-tbl th:nth-child(4),table.art-tbl td:nth-child(4){width:38%;white-space:nowrap;text-align:center;}
table.art-tbl td:last-child .btn{margin:2px 3px 2px 0;}
/* Banner 轮播图管理：标题列加宽、不溢出，排序/箭头按钮小号 */
table.ban-tbl{table-layout:fixed;width:100%;}
table.ban-tbl th,table.ban-tbl td{overflow:hidden;}
table.ban-tbl td:first-child,table.ban-tbl th:first-child{width:22%;min-width:130px;text-align:left;color:#333;font-weight:600;}
table.ban-tbl td:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
table.ban-tbl th:nth-child(2),table.ban-tbl td:nth-child(2){width:14%;text-align:center;}
table.ban-tbl th:nth-child(3),table.ban-tbl td:nth-child(3){width:24%;text-align:left;}
table.ban-tbl th:nth-child(4),table.ban-tbl td:nth-child(4){width:14%;white-space:nowrap;text-align:center;}
table.ban-tbl th:nth-child(5),table.ban-tbl td:nth-child(5){width:10%;white-space:nowrap;text-align:center;}
table.ban-tbl td:last-child .btn{margin:2px 3px 2px 0;}
.btn.sq{padding:2px 7px;font-size:12px;margin:0 1px;line-height:1.4;}
.lk{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;color:var(--mars);}
.sort-num{display:inline-block;min-width:18px;text-align:center;font-weight:600;color:#333;}
/* Banner 编辑器弹窗 */
.ban-edit{max-width:560px;}
.ban-h{font-weight:bold;color:var(--mars);font-size:15px;margin-bottom:14px;}
.ban-up{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.ban-dim{color:var(--mut);font-size:12px;}
.ban-prev{min-height:96px;border:1px dashed var(--line);border-radius:6px;background:#fafdfd;display:flex;align-items:center;justify-content:center;padding:8px;margin:4px 0;}
.ban-prev img{max-width:100%;max-height:160px;border-radius:4px;object-fit:contain;}
.ban-dim-warn{background:#fff6e6;border-left:3px solid var(--orange);color:#9a5a12;font-size:12px;padding:7px 10px;border-radius:0 4px 4px 0;margin:4px 0 10px;}
.ban-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}
/* 文章编辑器升级工具栏 */
.art-sep{display:inline-block;width:1px;height:20px;background:var(--line);margin:0 4px;vertical-align:middle;}
.art-sel{height:30px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px;color:#333;padding:0 6px;max-width:120px;}
.art-color-w{display:inline-flex;width:30px;height:30px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;align-items:center;justify-content:center;cursor:pointer;}
.art-color{width:160%;height:160%;border:none;padding:0;background:none;cursor:pointer;margin:-30%;}
/* 当前编辑器改用带 A 标签的按钮触发隐藏 color input，.art-color-w/.art-color 保留备用 */
.field input,.field select,.field textarea{flex:1;padding:7px 9px;border:1px solid var(--line);border-radius:4px;font-size:13px;outline:none;}
.field input:focus,.field select:focus{border-color:var(--mars);}
/* 登录卡片：账号/密码行与登录按钮等宽、居中 */
.login-card{width:380px;background:#fff;padding:34px 40px;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.2);}
.login-card .field{display:block;margin:14px 0;}
.login-card .field label{display:block;width:auto;text-align:left;margin-bottom:6px;color:var(--mut);font-size:13px;}
.login-card .field input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-size:14px;outline:none;}
.login-card .field input:focus{border-color:var(--mars);}
.note{background:var(--orange-l);border-left:3px solid var(--orange);padding:8px 12px;color:#7a3a14;font-size:12px;margin-bottom:14px;border-radius:0 4px 4px 0;}
.crumb{color:var(--mut);font-size:12px;margin-bottom:12px;}
.crumb b{color:var(--mars);}

/* 卡片 / 表格 */
.cards{display:flex;gap:14px;flex-wrap:wrap;}
.card{flex:1;min-width:160px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;text-align:center;}
.card .t{color:var(--mut);font-size:12px;}
.mm-ava{width:34px;height:34px;border-radius:50%;object-fit:cover;vertical-align:middle;background:#eef;flex-shrink:0;}
.mm-ava-d{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#008B8C,#00b3b5);color:#fff;font-size:14px;font-weight:700;}
.mm-nk{color:#008B8C;font-size:11px;background:#e9f7f7;border-radius:4px;padding:1px 6px;margin-left:4px;}
.pill{display:inline-block;background:#f3f3f3;border-radius:20px;padding:4px 12px;font-size:12px;color:#555;}
.card .v{font-size:24px;font-weight:bold;color:var(--mars);margin-top:6px;justify-content:center;}
.card .s{font-size:12px;margin-top:6px;}
.up{color:var(--danger);} .down{color:var(--ok);}
table{width:100%;border-collapse:collapse;background:#fff;font-size:12px;}
th,td{border:1px solid var(--line);padding:9px 10px;text-align:left;}
th{background:var(--mars-l);color:var(--mars);font-weight:bold;}
tr:hover td{background:#fafdfd;}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;}
.badge.on{background:var(--mars-l);color:var(--mars);}
.badge.off{background:#f3f3f3;color:var(--mut);}
.badge.pending{background:var(--orange-l);color:var(--orange);}
.badge.done{background:#e8f6ec;color:var(--ok);}
.badge.cancel{background:#f3f3f3;color:var(--mut);}
.badge.danger{background:#fde8e8;color:var(--danger);}
.tabs2{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.tabs2 .t{padding:5px 14px;border:1px solid var(--line);border-radius:16px;cursor:pointer;color:var(--mut);background:#fff;}
.tabs2 .t.active{background:var(--mars);color:#fff;border-color:var(--mars);}
.toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center;}
/* 会员任务页：任务列表与成长值发放记录首列加宽20%并居中 */
#task_list table th:first-child,#task_list table td:first-child,
#growth_log table th:first-child,#growth_log table td:first-child{width:20%;text-align:center;}
.toolbar input,.toolbar select{padding:7px 9px;border:1px solid var(--line);border-radius:4px;font-size:12px;}
.chart-box{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;}
.pill{display:inline-block;background:var(--mars-l);color:var(--mars);border-radius:4px;padding:2px 8px;font-size:11px;margin-right:6px;}
.d-spec-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.d-spec-k{color:#888;font-size:13px;min-width:54px;flex-shrink:0;}
.d-spec-row .sku-pill{cursor:pointer;transition:all .15s;margin-right:8px;}
.d-spec-row .sku-pill.on{background:var(--mars);color:#fff;font-weight:600;}
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;align-items:center;justify-content:center;z-index:99;}
.modal-mask.show{display:flex;}
.modal{background:#fff;border-radius:8px;width:520px;max-width:92%;max-height:86%;overflow:auto;padding:20px;}
.modal h3{color:var(--mars);margin-bottom:14px;}
.modal .close{float:right;cursor:pointer;color:var(--mut);}
.flex-between{display:flex;justify-content:space-between;align-items:center;}
.steps{display:flex;gap:8px;margin:10px 0 16px;}
.step{flex:1;text-align:center;padding:8px;border-radius:6px;background:#f3f3f3;color:var(--mut);font-size:12px;}
.step.active{background:var(--mars);color:#fff;}
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:10px 20px;border-radius:6px;z-index:200;opacity:0;transition:.3s;}
.toast.show{opacity:1;}
.empty{color:var(--mut);text-align:center;padding:30px;}
.chart-row{display:flex;gap:14px;flex-wrap:wrap;}
.chart-row .chart-box{flex:1;min-width:320px;}
.dash-half-row{display:flex;gap:14px;flex-wrap:wrap;}
.dash-half-row .wf{flex:1;min-width:380px;}
.dash-half-row .tbl td:nth-child(2),.dash-half-row .tbl th:nth-child(2){white-space:nowrap;min-width:160px;}
.member-row .tbl td,.member-row .tbl th{white-space:nowrap;}
.member-row .tbl td:first-child,.member-row .tbl th:first-child{width:auto !important;min-width:90px;}
/* 待办事项大卡片 */
.todo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;margin-top:4px;}
.todo-card{border-radius:14px;padding:22px;color:#fff;cursor:pointer;min-height:150px;
  display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;
  transition:transform .15s,box-shadow .15s;}
.todo-card:hover{transform:translateY(-4px);box-shadow:0 10px 22px rgba(0,0,0,.18);}
.todo-ic{font-size:46px;line-height:1;}
.todo-k{font-size:15px;font-weight:600;margin-top:12px;}
.todo-c{font-size:34px;font-weight:700;line-height:1.1;}
.todo-c span{font-size:14px;font-weight:400;margin-left:5px;}
.todo-go{font-size:13px;opacity:.92;}
.grad1{background:linear-gradient(135deg,#008B8C,#19b8a8);}
.grad2{background:linear-gradient(135deg,#E95D21,#ff8a4c);}
.grad3{background:linear-gradient(135deg,#5b6cff,#8a7bff);}
.grad4{background:linear-gradient(135deg,#f0a500,#ffce3d);}
.dash-row{display:flex;gap:14px;flex-wrap:wrap;}
.dash-row .wf{flex:1;min-width:320px;}
/* 拼团 */
.grp-card{border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:12px;background:#fff;}
#grp_teams{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:4px;}
#grp_teams .grp-card{margin-bottom:0;}
@media(max-width:1100px){#grp_teams{grid-template-columns:repeat(2,1fr);}}
@media(max-width:720px){#grp_teams{grid-template-columns:1fr;}}
.grp-top{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:10px;}
.grp-prog{margin:8px 0;}
.grp-bar{background:#f3f3f3;border-radius:10px;height:10px;overflow:hidden;}
.grp-bar-in{background:var(--mars);height:100%;border-radius:10px;transition:width .3s;}
.grp-prog-txt{font-size:12px;color:#666;margin-top:4px;}
.grp-members{display:flex;gap:6px;margin:8px 0;flex-wrap:wrap;}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--mars);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;}
.grp-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;}
.grp-cd{font-size:12px;color:var(--orange);}
.badge.on{background:#e8f6f6;color:var(--mars);padding:2px 8px;border-radius:10px;font-size:12px;}
.badge.off{background:#eef7ee;color:#52a552;padding: 2px 8px;border-radius:10px;font-size:12px;}
.detail-upload{padding:6px 0;}
.up-list{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;}
.up-thumb{position:relative;width:96px;height:140px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#f7f7f7;}
.up-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.up-thumb .up-del{position:absolute;top:2px;right:2px;width:20px;height:20px;line-height:20px;text-align:center;background:rgba(0,0,0,.55);color:#fff;border-radius:50%;cursor:pointer;font-size:14px;}
.up-add{width:96px;height:140px;border:1px dashed #c8c8c8;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#bbb;font-size:30px;cursor:pointer;background:#fafafa;}
.up-add input{display:none;}
.main-square .up-thumb,.main-square .up-add{width:96px;height:96px;}
/* 详情长图：后台仅固定小缩略图（不展开全图，前台才展开） */
.detail-up .up-add{height:96px;}
.detail-up .up-thumb{position:relative;height:96px;min-height:0;width:96px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f7f7f7;border:1px solid var(--line);border-radius:6px;}
.detail-up .up-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.detail-up .up-thumb .lg-badge{position:absolute;left:2px;bottom:2px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;line-height:1;padding:2px 4px;border-radius:3px;z-index:2;}
.adm-form .adm-add{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:10px 0;}
.adm-form .adm-add .field{display:flex;flex-direction:column;gap:4px;}
.adm-form .adm-add .field label{font-size:12px;color:#777;}
.adm-form .adm-add .field input,.adm-form .adm-add .field select{border:1px solid #ddd;border-radius:4px;padding:8px;font-size:13px;min-width:140px;}
.btn.sm{padding:6px 12px;font-size:13px;}
.fr-form .fr-row{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0;}
.fr-form .field{flex:1;min-width:150px;}
.fr-zones{margin:10px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.fr-zh,.fr-zr{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:0;border-bottom:1px solid #eee;}
.fr-zh{background:#f5f7f7;color:#555;font-size:13px;font-weight:600;}
.fr-zr:last-child{border-bottom:none;}
.fr-zr .fr-zname{padding:8px 10px;font-size:13px;color:#333;border-right:1px solid #eee;}
.fr-zr input{border:none;border-right:1px solid #eee;padding:8px 10px;font-size:13px;min-width:0;}
.fr-zh span,.fr-zr span{padding:8px 10px;font-size:13px;border-right:1px solid #e5e5e5;text-align:left;}
.fr-zh span:last-child,.fr-zr input:last-child{border-right:none;}
.fr-zr input:focus{outline:1px solid var(--mars);}

/* 美化数据表格 */
.tbl{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:13px;
  border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(0,139,140,.06);}
.tbl th,.tbl td{border:none;border-bottom:1px solid #eef1f1;padding:11px 12px;text-align:left;color:#333;}
.tbl thead th{background:linear-gradient(180deg,#f3fbfb,#eaf7f7);color:var(--mars);font-weight:600;
  font-size:12.5px;letter-spacing:.5px;border-bottom:2px solid var(--mars-l);}
.tbl tbody tr{transition:background .15s;}
.tbl tbody tr:hover td{background:#f6fcfc;}
.tbl tbody tr:nth-child(even) td{background:#fcfefd;}
.tbl tbody tr:nth-child(even):hover td{background:#f6fcfc;}
.tbl tbody tr:last-child td{border-bottom:none;}
.tbl td:first-child,.tbl th:first-child{text-align:center;width:54px;color:#999;font-weight:600;}
.tbl.dist-tbl td:first-child,.tbl.dist-tbl th:first-child{width:20%;text-align:center;color:#333;font-weight:600;}
.addr-tbl td:first-child,.addr-tbl th:first-child{width:15% !important;text-align:center;color:#333;font-weight:600;}
.tbl td:last-child,.tbl th:last-child{white-space:nowrap;}
.tbl .empty{text-align:center;color:#aaa;padding:30px 0;}
/* 删除按钮 */
.btn.danger{background:#fff;color:#e23b3b;border:1px solid #e23b3b;}
.btn.danger:hover{background:#e23b3b;color:#fff;}
/* 删除确认弹窗 */
.cfm{max-width:320px;}
.cfm-t{font-size:15px;font-weight:600;color:#e23b3b;margin-bottom:10px;}
.cfm-b{font-size:13px;color:#555;line-height:1.6;margin-bottom:16px;}
.cfm-actions{text-align:right;}
.cfm-actions .btn{margin-left:8px;}
/* 库存管理：双表并排 + 商品名单行 */
.inv-wrap{display:flex;gap:14px;margin-top:12px;}
.inv-col{flex:1;min-width:0;}
.inv-col .tbl{font-size:12.5px;}
.inv-col .tbl th,.inv-col .tbl td{padding:9px 10px;}
.nowrap{white-space:nowrap;}

/* ===== 新增商品页卡片化 ===== */
.sec{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin:12px 0;
  box-shadow:0 1px 4px rgba(0,0,0,.03);}
.sec-h{font-size:15px;font-weight:600;color:#333;margin-bottom:14px;display:flex;align-items:center;gap:9px;}
.sec-no{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;
  background:var(--mars);color:#fff;border-radius:6px;font-size:13px;font-weight:bold;flex-shrink:0;}
.sec-tip{margin-top:10px;color:var(--mut);font-size:12px;background:#fafafa;border:1px solid #f0f0f0;border-radius:6px;padding:8px 10px;}
.wf-sub{font-size:13px;color:#555;margin-bottom:6px;font-weight:500;}
.req{color:var(--danger);margin-left:2px;}
/* 卡片内字段统一为纵向排列 */
.sec .field{display:block;margin:0;}
.sec .field label{display:block;width:auto;text-align:left;color:#666;font-size:12px;margin-bottom:5px;}
.sec .field input,.sec .field select{width:100%;border:1px solid #ddd;border-radius:6px;padding:9px 10px;font-size:13px;outline:none;transition:.15s;}
.sec .field input:focus,.sec .field select:focus{border-color:var(--mars);box-shadow:0 0 0 2px var(--mars-l);}
/* 上架设置：单选卡片 + 开关 */
.radio-row{display:flex;gap:14px;flex-wrap:wrap;margin:4px 0 14px;}
.radio{display:inline-flex;align-items:center;gap:7px;cursor:pointer;padding:9px 16px;border:1px solid #ddd;
  border-radius:8px;font-size:13px;color:#555;background:#fff;transition:.15s;}
.radio input{accent-color:var(--mars);}
.radio:has(input:checked){border-color:var(--mars);background:var(--mars-l);color:var(--mars);font-weight:600;}
.field.line{display:flex;align-items:center;gap:10px;margin-top:4px;}
.field.line label{width:auto;margin:0;color:#666;font-size:13px;}
.field.line .hint{color:var(--mut);font-size:12px;}
.switch{position:relative;display:inline-block;width:42px;height:22px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;}
.switch .slider{position:absolute;cursor:pointer;inset:0;background:#cbd5e1;border-radius:22px;transition:.2s;}
.switch .slider::before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.35);}
.switch input:checked + .slider{background:var(--mars);}
.switch input:checked + .slider::before{transform:translateX(20px);}
/* 修复 .field.line label{width:auto} 抢宽度导致开关塌陷不可见 */
.field.line label.switch{width:42px;height:22px;display:inline-block;flex-shrink:0;}
.field.line{gap:12px;}
/* 底部提交栏 */
.submit-bar{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);}
/* 电子面单卡片 */
.wb-wrap{max-width:340px;margin:0 auto;background:#fff;border-radius:12px;overflow:hidden;font-size:13px;color:#222;box-shadow:0 10px 34px rgba(0,0,0,.22);}
.wb-head{background:linear-gradient(135deg,var(--mars),#00a8a9);color:#fff;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;}
.wb-co{font-weight:800;font-size:15px;letter-spacing:2px;}
.wb-no{font-family:"SFMono-Regular",Consolas,monospace;font-size:16px;letter-spacing:2px;}
.wb-body{padding:15px 16px;}
.wb-sec{display:flex;gap:14px;align-items:flex-start;}
.wb-info{flex:1;min-width:0;}
.wb-line{margin:6px 0;line-height:1.5;}
.wb-line b{color:var(--mars);display:inline-block;width:40px;font-weight:600;}
.wb-addr{color:#555;}
.wb-qr{width:86px;height:86px;border:2px dashed var(--mars);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--mars);font-size:13px;background:#f3fbfb;flex-shrink:0;letter-spacing:1px;}
/* 商品分类列表-排序可编辑 */
.cat-sort{width:64px;padding:5px 6px;border:1px solid #ddd;border-radius:5px;font-size:13px;text-align:center;}
/* 品牌管理列表-第一列加宽单行显示 */
.brand-list table{table-layout:fixed;width:100%;}
.brand-list td:first-child,.brand-list th:first-child{width:20%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.brand-list td:nth-child(2){white-space:normal;}
.brand-list td:nth-child(3){white-space:nowrap;text-align:right;width:120px;}
/* 品牌多类目勾选（含二级类目缩进） */
.cat-chks{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:6px 18px;background:#fcfdfd;}
.cat-chk{display:flex;align-items:center;gap:5px;font-size:13px;line-height:1.9;white-space:nowrap;cursor:pointer;}
.cat-chk input{accent-color:var(--mars);}
/* 旅游线路列表：第一列（线路名称）加宽、单行显示 */
.tour-list .tbl{table-layout:fixed;}
.tour-list .tbl td:first-child,.tour-list .tbl th:first-child{width:20%;min-width:160px;text-align:left;color:#222;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tour-list .tbl td:nth-child(2),.tour-list .tbl th:nth-child(2){white-space:nowrap;}
/* 物流配置-运费模板列表：第一列（模板名称）固定 15% 宽度 */
.fr-list .tbl td:first-child,.fr-list .tbl th:first-child{width:15%;}
/* 内容管理-公告列表：第一列（内容）固定 20% 宽度 */
.ann-list .tbl td:first-child,.ann-list .tbl th:first-child{width:30%;}
/* 公告编辑弹窗（美化结构） */
.ann-edit{background:#fff;border-radius:14px;overflow:hidden;max-width:560px;box-shadow:0 12px 40px rgba(0,0,0,.18);}
.ann-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:linear-gradient(135deg,#ff7a59,#ff5b7f);color:#fff;}
.ann-bar-title{font-size:15px;font-weight:600;letter-spacing:.5px;}
.ann-bar-right{display:flex;align-items:center;gap:10px;}
.ann-bar-right .btn{background:#fff;color:#666;border:none;padding:6px 16px;font-size:13px;border-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.08);}
.ann-bar-right .btn:hover{background:#f7f7f7;}
.ann-bar-right .btn.o{background:#fff;color:#ff5b7f;font-weight:600;}
.ann-bar-right .btn.o:hover{background:#fff5f3;}
.ann-radios{display:flex;gap:10px;}
.ann-radios .radio{margin:0;}
.ann-body{padding:16px 18px 20px;}
.ann-field{margin-bottom:14px;}
.ann-label{display:block;font-size:13px;color:#666;margin-bottom:6px;font-weight:500;}
.ann-text{width:100%;min-height:140px;box-sizing:border-box;border:1px solid #e3e6ee;border-radius:8px;padding:10px 12px;font-size:14px;line-height:1.6;resize:vertical;font-family:inherit;}
.ann-row{display:flex;gap:14px;}
.ann-row .ann-field{flex:1;margin-bottom:0;}
.ann-input{width:100%;box-sizing:border-box;border:1px solid #e3e6ee;border-radius:8px;padding:9px 10px;font-size:14px;background:#fff;color:#333;}
.ann-input:focus,.ann-text:focus{outline:none;border-color:#ff7a59;box-shadow:0 0 0 3px rgba(255,122,89,.14);}
/* 新增商品-商品标签（单选，显示完整标签原图） */
.tag-row{display:flex;align-items:center;gap:12px;margin-top:12px;}
.tag-lbl{font-size:13px;color:#666;flex-shrink:0;}
.tag-picks{display:flex;gap:18px;}
.tag-pick{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;color:#333;}
.tag-pick input{accent-color:var(--mars);}
.tag-ico{height:38px;width:auto;vertical-align:middle;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.08);}
.wb-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed #e0e0e0;margin-top:14px;padding-top:11px;color:#999;font-size:12px;}
.wb-foot .amt{color:var(--mars);font-weight:700;font-size:14px;}
.wb-bar{max-width:340px;margin:14px auto 0;text-align:center;}
.wb-bar .btn{margin:0 4px;}

/* ===== 会员等级卡片 ===== */
.lv-empty-tip{color:#999;padding:40px 0;text-align:center;}
.lv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:8px;}
.lv-card{--lv:#008B8C;border:1px solid #e8e8e8;border-top:3px solid var(--lv);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.05);display:flex;flex-direction:column;}
.lv-head{display:flex;align-items:center;gap:8px;padding:14px 16px;background:var(--lv);color:#fff;}
.lv-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.85);}
.lv-name{font-weight:700;font-size:15px;}
.lv-meta{display:flex;padding:12px 16px;border-bottom:1px solid #f0f0f0;}
.lv-item{flex:1;display:flex;flex-direction:column;gap:2px;}
.lv-k{font-size:12px;color:#999;}
.lv-v{font-size:16px;font-weight:700;color:var(--lv);}
.lv-ben{list-style:none;margin:0;padding:12px 16px;flex:1;display:flex;flex-direction:column;gap:6px;}
.lv-ben li{font-size:13px;color:#444;padding-left:16px;position:relative;}
.lv-ben li::before{content:'';position:absolute;left:2px;top:7px;width:6px;height:6px;border-radius:50%;background:var(--lv);}
.lv-ben .lv-none{color:#bbb;padding-left:0;}
.lv-ben .lv-none::before{display:none;}
.lv-actions{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #f0f0f0;}
.lv-actions .btn{flex:1;text-align:center;}
/* 新增/编辑弹窗：色板与权益编辑器 */
.lv-palette{display:flex;flex-wrap:wrap;gap:8px;}
.lv-swatch{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:.15s;}
.lv-swatch.on{border-color:#333;transform:scale(1.12);box-shadow:0 0 0 2px #fff inset;}
.lv-benefits{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;}
.lv-brow{display:flex;gap:6px;align-items:center;}
.lv-brow input{flex:1;}
.lv-hint{color:#999;font-size:12px;margin-left:4px;}

/* ===== 会员资料/标签弹窗美化 ===== */
.mm-card{font-size:13px;color:#222;}
.mm-top{display:flex;align-items:center;gap:12px;padding:2px 2px 14px;border-bottom:1px solid var(--line);}
.mm-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#008B8C,#00b3b5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;flex-shrink:0;}
.mm-id{min-width:0;}
.mm-name{font-size:17px;font-weight:700;color:#1a1a1a;}
.mm-level{display:inline-block;margin-top:5px;padding:2px 11px;border-radius:12px;background:#e9f7f7;color:#008B8C;font-size:12px;font-weight:600;}
.mm-stats{display:flex;gap:10px;margin:14px 0;}
.mm-stat{flex:1;background:#f6f8f9;border-radius:10px;padding:11px 6px;text-align:center;}
.mm-num{font-size:16px;font-weight:700;color:#008B8C;word-break:break-all;line-height:1.25;}
.mm-lab{font-size:12px;color:#888;margin-top:4px;}
.mm-form{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:4px;}
.mm-field{display:flex;flex-direction:column;gap:5px;}
.mm-field label{font-size:12px;color:#777;}
.mm-field input{height:34px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font-size:13px;outline:none;transition:border-color .15s;}
.mm-field input:focus{border-color:var(--mars);}
.mm-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}

/* ===== 优惠券 ===== */
.req{color:var(--danger);font-weight:700;margin-left:2px;}
.btn.r{background:#fff;color:var(--danger);border:1px solid var(--danger);}
/* 名称列：加宽 + 单行不换行 */
.cp-list .tbl td:nth-child(2){min-width:210px;}
.cname{display:inline-block;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;font-weight:600;color:#222;}
.cp-search{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:6px;padding:9px 10px;font-size:13px;outline:none;margin-bottom:8px;}
.cp-search:focus{border-color:var(--mars);}
.cp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;min-height:0;}
.cp-chip{display:inline-flex;align-items:center;gap:5px;background:var(--mars-l);color:var(--mars);border-radius:14px;padding:3px 10px;font-size:12px;}
.cp-chip .x{cursor:pointer;font-weight:700;opacity:.7;}
.cp-chip .x:hover{opacity:1;}
.cp-chip-all{display:inline-block;background:#f3f3f3;color:var(--mut);border-radius:14px;padding:3px 10px;font-size:12px;}
.cp-prod-list{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px 4px;}
.cp-pline{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:13px;cursor:pointer;border:none;background:none;}
.cp-pline.on{color:var(--mars);}
.cp-pname{white-space:nowrap;overflow:visible;}
.cp-top{grid-template-columns:repeat(4,1fr);}
.cp-empty{color:var(--mut);text-align:center;padding:20px 0;font-size:12px;}
.cp-conflict{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;}
.cp-cbox{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#444;cursor:pointer;}

/* ===== 拼团活动列表 ===== */
.grp-list .tbl td:nth-child(2){min-width:200px;}
.gname{display:inline-block;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;font-weight:600;color:#222;}

/* ===== 秒杀活动预览（商品详情式） ===== */
.sec-pick{margin:10px 0;font-size:13px;color:#555;}
.pdp{display:flex;gap:20px;align-items:flex-start;}
.pdp-img{flex:0 0 280px;height:280px;border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f6f9f9;}
.pdp-img img{width:100%;height:100%;object-fit:cover;}
.pdp-noimg{color:var(--mut);font-size:13px;}
.pdp-info{flex:1;min-width:0;}
.pdp-title{font-size:20px;font-weight:700;color:#222;margin-bottom:6px;}
.pdp-sub{color:var(--mut);font-size:13px;margin-bottom:14px;}
.pdp-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.pdp-op{color:#999;text-decoration:line-through;font-size:15px;}
.pdp-sp{color:var(--orange);font-size:30px;font-weight:800;}
.pdp-tag{background:var(--orange);color:#fff;font-size:12px;padding:2px 8px;border-radius:4px;}
.pdp-stock{margin-bottom:14px;}
.pdp-bar{height:10px;border-radius:6px;background:#ffe3d3;overflow:hidden;}
.pdp-bar-in{height:100%;background:linear-gradient(90deg,#ff8a4c,var(--orange));}
.pdp-stock-txt{font-size:12px;color:var(--mut);margin-top:5px;}
.pdp-cd{font-size:14px;color:var(--mars);font-weight:600;margin-bottom:10px;}
.pdp-limit{font-size:13px;color:#555;margin-bottom:10px;}
.pdp-desc{font-size:13px;color:#666;line-height:1.6;background:#f6f9f9;border-radius:6px;padding:10px 12px;margin-bottom:16px;}
.pdp-btns .btn{font-size:16px;padding:12px 40px;}
@media(max-width:640px){.pdp{flex-direction:column;}.pdp-img{flex:0 0 auto;width:100%;height:220px;}}
/* 秒杀配置：图片上传区 */
.up-zone{display:flex;flex-direction:column;gap:6px;align-items:flex-start;}
.up-zone input[type=file]{font-size:13px;color:#555;max-width:300px;}
.up-pre{display:flex;gap:6px;flex-wrap:wrap;}
.up-pre img{max-width:180px;max-height:140px;border:1px solid var(--line);border-radius:6px;display:block;}
.up-tip{font-size:12px;color:var(--mut);}
.up-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;}
/* 秒杀配置：标量字段 2 列网格布局 */
.sec-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:10px 0;}
.sec-form-grid .field{margin:0;}
.sec-form-grid .field label{width:74px;color:#555;font-size:13px;flex-shrink:0;}
.sec-form-grid .field input,.sec-form-grid .field select{flex:1;min-width:0;border:1px solid var(--line);border-radius:4px;padding:7px 9px;font-size:13px;}
/* 秒杀：轮播主图缩略图横向排列（多图不竖排） */
.sec-uprow{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;}
/* 秒杀：主图正方形线框（仅正方形）/ 详情不限高长图 */
.up-thumb.sq{width:64px;height:64px;}
.up-add.sq{width:64px;height:64px;font-size:12px;}
.up-thumb.sq img{object-fit:cover;}
/* 类目图标选择器：10 个卡通矢量图标网格 */
.icon-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:4px;}
.icon-cell{border:1px solid var(--line);border-radius:8px;padding:12px 4px 8px;text-align:center;cursor:pointer;background:#fafafa;transition:.15s;}
.icon-cell:hover{border-color:var(--mars);background:#f3fbfa;transform:translateY(-2px);box-shadow:0 3px 10px rgba(0,139,140,.12);}
.icon-cell img{width:46px;height:46px;display:block;margin:0 auto 4px;}
.icon-cell span{font-size:12px;color:#555;}
/* 图标选择器内：5 个一级类目可选标签 */
.ic-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px;}
.ic-chip{border:1px solid var(--line);border-radius:16px;padding:6px 16px;font-size:13px;cursor:pointer;background:#fff;color:#555;transition:.15s;}
.ic-chip:hover{border-color:var(--mars);color:var(--mars);}
.ic-chip.on{background:var(--mars);border-color:var(--mars);color:#fff;}
.ic-sep{font-size:13px;color:#666;margin-bottom:6px;}
/* 商品属性模板：动态属性行 */
.attr-rows{display:flex;flex-direction:column;gap:8px;margin:6px 0;}
.attr-row{display:flex;gap:8px;align-items:center;}
.attr-row input{flex:1;padding:7px 10px;border:1px solid var(--line);border-radius:4px;font-size:13px;min-width:0;}
.attr-row .btn.sm{flex:0 0 auto;}
/* 系统设置 LOGO / 登录背景：正方形线框（与秒杀同款，但尺寸缩小一半 = 80px） */
#logo_preview .up-thumb,#logo_preview .up-add,
#login_bg_preview .up-thumb,#login_bg_preview .up-add{width:80px;height:80px;}
.sec-detail-list{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;width:100%;}
.up-thumb.buy,.up-add.buy{width:300px;max-width:100%;aspect-ratio:5/2;border-radius:6px;}
.up-thumb.buy img{width:100%;height:100%;object-fit:cover;display:block;border-radius:6px;}
.up-add.buy{display:flex;align-items:center;justify-content:center;color:#bbb;font-size:26px;border:1px dashed #c8c8c8;background:#fafafa;cursor:pointer;}
.up-add.buy input{display:none;}
/* 活动亮点 + 活动详情（预览页） */
.pdp-hl{margin-top:16px;background:#fff7f2;border:1px solid #ffd9c2;border-radius:8px;padding:12px 14px;}
.pdp-hl-h{font-size:13px;font-weight:700;color:var(--orange);margin-bottom:6px;}
.pdp-hl-b{font-size:14px;color:#444;line-height:1.6;white-space:pre-wrap;}
.pdp-detail{margin-top:16px;}
.pdp-detail-h{font-size:14px;font-weight:700;color:#222;margin-bottom:8px;}
.pdp-detail img{width:100%;border-radius:8px;border:1px solid var(--line);display:block;}
/* ===== 后台秒杀详情：前台样式预览 ===== */
.sec-prev{position:relative;max-width:480px;margin:0 auto;background:#fff;border-radius:12px;overflow:hidden;padding-bottom:76px;}
.back-btn{display:inline-block;cursor:pointer;color:var(--mars);font-size:13px;padding:6px 4px 10px;}
.sec-slider{position:relative;width:100%;height:300px;overflow:hidden;background:#f2f2f2;}
.sec-slides{display:flex;height:100%;transition:transform .35s ease;}
.sec-slide{flex:0 0 100%;width:100%;height:100%;}
.sec-slide img{width:100%;height:300px;object-fit:cover;display:block;}
.sec-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:6px;z-index:2;}
.sec-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.6);transition:.2s;}
.sec-dot.on{background:var(--orange);width:16px;border-radius:4px;}
.sec-name{font-size:22px;font-weight:bold;color:#222;padding:14px 14px 6px;}
.sec-price-bar{display:flex;margin:6px 10px 0;border-radius:12px;overflow:hidden;}
.sec-price-main{flex:2;background:linear-gradient(135deg,#E95D21,#f0a44b);color:#fff;padding:10px 14px;display:flex;flex-direction:column;justify-content:center;}
.sec-price-label{font-size:11px;opacity:.9;}
.sec-price-line{display:flex;align-items:baseline;gap:2ch;margin-top:3px;}
.sec-price-now{font-size:26px;font-weight:bold;line-height:1.05;}
.sec-price-orig{font-size:13px;color:#fff;opacity:.9;text-decoration:line-through;white-space:nowrap;}
.sec-orig-k{font-size:11px;margin-right:4px;opacity:.9;}
.sec-price-side{flex:1;background:linear-gradient(135deg,#0a6b66,#008B8C);color:#fff;padding:8px 10px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;}
.sec-side-row{margin:3px 0;max-width:100%;}
.sec-side-k{font-size:10px;opacity:.85;}
.sec-side-v{font-size:12px;font-weight:bold;margin-top:2px;max-width:100%;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.sec-progress{margin:10px 10px 0;padding:12px;background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.sec-progress-track{width:100%;height:10px;background:#ffe8db;border-radius:5px;overflow:hidden;}
.sec-progress-bar{height:100%;background:linear-gradient(90deg,#ff7a45,#E95D21);border-radius:5px;transition:width .3s;}
.sec-progress-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:13px;color:#666;}
.sec-progress-row strong{color:var(--orange);}
.sec-countdown{color:var(--mars);font-weight:bold;}
.sec-highlights{height:100px;overflow:auto;margin:10px;padding:12px;background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);font-size:14px;color:#555;line-height:1.8;white-space:pre-wrap;text-align:center;}
.sec-sep{display:flex;align-items:center;margin:14px 10px 10px;color:#999;font-size:13px;}
.sec-sep::before,.sec-sep::after{content:"";flex:1;height:1px;background:#eee;}
.sec-sep span{padding:0 10px;}
.sec-buys{display:flex;justify-content:center;padding:0 10px 4px;}
.sec-buys img{width:100%;max-width:750px;height:300px;object-fit:cover;border-radius:10px;display:block;}
.sec-detail-text{margin:0 10px;font-size:14px;color:#333;text-align:center;}
.sec-dimg{display:block;width:calc(100% - 20px);margin:8px 10px;border-radius:10px;}
.sec-actions{position:absolute;left:0;right:0;bottom:0;z-index:140;display:flex;gap:10px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -2px 10px rgba(0,0,0,.06);}
.sec-actions .btn{flex:1;text-align:center;padding:8.4px 0;border-radius:24px;font-size:15px;}
/* 页面装修：区块编辑卡片 */
.dec-block{border:1px solid var(--line);border-radius:8px;padding:12px;margin:10px 0;background:#fafafa;}
.dec-block-h{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:13px;color:var(--mars);font-weight:600;}
.dec-block-h select{padding:5px 8px;border:1px solid var(--line);border-radius:4px;font-size:12px;}
/* 消息模板：col 布局内 textarea 占满宽度 */
.field.col textarea{width:100%;min-height:60px;}
/* 商城广告位编辑 */
.mall-ad-edit{border:1px solid var(--line);border-radius:10px;padding:14px;margin:10px 0;background:#fafafa;}
.mae-row{display:flex;align-items:center;gap:14px;margin-bottom:10px;}
.mae-thumb{width:72px;height:72px;border-radius:10px;border:1px dashed #c8c8c8;background-size:cover;background-position:center;background-color:#f0f0f0;flex-shrink:0;}
.mae-thumb.has{border-style:solid;border-color:var(--mars);}
.mae-fields{flex:1;}
.mae-fields .field{margin-bottom:8px;}

/* ===== 商品·课程信息区块 ===== */
.sec-h2{font-size:13px;font-weight:600;color:#333;margin:16px 0 8px;display:flex;align-items:center;gap:8px;}
.sec-h2::before{content:"";width:3px;height:12px;background:var(--orange);border-radius:2px;display:inline-block;flex-shrink:0;}
.sec-h2 .hint{font-weight:normal;color:var(--mut);font-size:12px;}
.chapter-editor{display:flex;flex-direction:column;gap:8px;}
.chapter-editor .ch-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fafbfb;
  border:1px solid #e6ecee;border-radius:6px;overflow-x:auto;transition:border-color .15s;}
.chapter-editor .ch-row:hover{border-color:var(--mars);}
.chapter-editor .ch-idx{width:22px;height:22px;border-radius:50%;background:var(--mars-l);color:var(--mars);
  font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.chapter-editor .ch-title{flex:1;min-width:120px;height:30px;border:1px solid var(--line);border-radius:4px;
  padding:0 8px;font-size:12px;outline:none;background:#fff;}
.chapter-editor .ch-title:focus{border-color:var(--mars);}
.chapter-editor .ch-media{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.chapter-editor .ch-media .btn{margin:0;white-space:nowrap;}
.chapter-editor .ch-url{max-width:110px;font-size:11px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chapter-editor .ch-dur{width:74px;height:30px;border:1px solid var(--line);border-radius:4px;padding:0 6px;
  font-size:12px;flex-shrink:0;outline:none;background:#fff;}
.chapter-editor .ch-free{font-size:12px;color:var(--mut);white-space:nowrap;display:flex;align-items:center;gap:4px;flex-shrink:0;}
.chapter-editor .ch-free input{accent-color:var(--mars);}
.chapter-editor .ch-ops{display:flex;gap:4px;flex-shrink:0;}
.chapter-editor .ch-ops .btn{margin:0;padding:4px 8px;}
.ch-addbar{display:flex;align-items:center;gap:10px;margin-top:8px;}
.ch-addbar .btn{margin:0;}
.ch-addbar .hint{color:var(--mut);font-size:12px;}
.cd-preview{margin:6px 0;}
.cd-preview img{height:130px;width:auto;max-width:100%;object-fit:contain;border-radius:8px;display:block;border:1px solid var(--line);}
.up-add.cd-up{width:180px;height:72px;font-size:13px;}
.up-add.cd-up:hover{border-color:var(--mars);color:var(--mars);}
/* 课程封面预览：与前台 hero 同比例（370:200 ≈ 750×400 横图） */
.main-square.course-cover .up-thumb,.main-square.course-cover .up-add{width:180px;height:97px;}
.main-square.course-cover .up-thumb img{object-fit:cover;}
