/* 壶朋茶友 · 通用原型样式 */
*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}
body{font-family:"PingFang SC","Microsoft YaHei",sans-serif;background:#FFFFFF;color:#1F1B14;min-height:100vh;padding:0;position:relative}

/* ===== 小程序外壳 ===== */
.phone{width:375px;height:812px;background:#F4EFE6;border-radius:36px;overflow:hidden;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 8px #1A1610;border:1px solid #2C2418}
.status-bar{height:44px;background:#FBF6EC;display:flex;align-items:flex-end;justify-content:space-between;padding:0 22px 8px;font-size:13px;font-weight:600;color:#2C2418}
.status-bar .right{display:flex;gap:5px;align-items:center}
.status-bar .signal{letter-spacing:-1px}
.app-header{background:#3B5A3A;color:#FBF6EC;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
.app-header .title{font-size:15px;font-weight:500;flex:1;text-align:center}
.app-header .icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer}
.app-body{height:calc(100% - 44px - 48px);overflow-y:auto;background:#F4EFE6;position:relative}
.app-body::-webkit-scrollbar{display:none}
.tabbar{position:absolute;bottom:0;left:0;right:0;height:64px;background:#FBF6EC;border-top:1px solid #E8E0CC;display:flex;align-items:center;justify-content:space-around;padding-bottom:8px}
.tabbar .item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:#7A6E52;cursor:pointer}
.tabbar .item.active{color:#3B5A3A}
.tabbar .item .ico{font-size:22px;line-height:1}
.tabbar .item.active .ico{color:#3B5A3A}

/* ===== 后台外壳 ===== */
.web-frame{width:1280px;height:800px;background:#F5F2EB;border-radius:8px;overflow:hidden;display:flex;box-shadow:0 20px 60px rgba(0,0,0,.5);position:relative;border:1px solid #2C2418}
.web-sidebar{width:220px;background:#1F1B14;color:#D8CDB0;display:flex;flex-direction:column}
.web-sidebar .logo{padding:18px 20px;font-size:15px;font-weight:600;color:#FBF6EC;border-bottom:1px solid #2C2418;display:flex;align-items:center;gap:8px}
.web-sidebar .logo .dot{width:10px;height:10px;border-radius:50%;background:#C99A5C}
.web-sidebar nav{flex:1;padding:12px 0;overflow-y:auto}
.web-sidebar nav::-webkit-scrollbar{width:4px}
.web-sidebar nav::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.web-sidebar .group{padding:14px 20px 6px;font-size:10px;color:#7A6E52;text-transform:uppercase;letter-spacing:1px}
.web-sidebar a{display:flex;align-items:center;gap:10px;padding:9px 20px;color:#B8AC8C;text-decoration:none;font-size:13px;cursor:pointer;border-left:3px solid transparent}
.web-sidebar a:hover{background:#2C2418;color:#FBF6EC}
.web-sidebar a.active{background:#3B5A3A;color:#FBF6EC;border-left-color:#C99A5C}
.web-sidebar a .ico{width:18px;text-align:center;font-size:14px}
.web-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.web-topbar{height:56px;background:#FFF;border-bottom:1px solid #E8E0CC;display:flex;align-items:center;justify-content:space-between;padding:0 24px}
.web-topbar .crumb{font-size:13px;color:#7A6E52}
.web-topbar .crumb strong{color:#2C2418;margin-left:4px}
.web-topbar .user{display:flex;align-items:center;gap:10px;font-size:13px}
.web-topbar .avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#3B5A3A,#7A4A2A);color:#FBF6EC;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}
.web-content{flex:1;padding:20px 24px;overflow-y:auto;background:#F5F2EB}
.web-content::-webkit-scrollbar{width:4px}
.web-content::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.web-content::-webkit-scrollbar-thumb:hover{background:#4a6d49}
.web-content::-webkit-scrollbar-track{background:transparent}
.web-content{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}

/* ===== 通用组件 ===== */
.page-title{font-size:18px;color:#2C2418;margin-bottom:4px;font-weight:600}
.page-sub{font-size:12px;color:#7A6E52;margin-bottom:16px}
.card{background:#FFF;border-radius:8px;padding:14px;border:1px solid #E8E0CC;margin-bottom:12px}
.card-title{font-size:14px;font-weight:600;color:#2C2418;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.tag{display:inline-block;padding:2px 6px;border-radius:3px;font-size:10px;font-weight:500;margin-right:3px}
.tag-孤{background:#FBE7BC;color:#7A4A2A}
.tag-精{background:#C99A5C;color:#FFF}
.tag-惠{background:#E8D4B0;color:#7A4A2A}
.tag-特{background:#7A4A2A;color:#FBE7BC}
.tag-爆{background:#C0392B;color:#FFF}
.tag-买{background:#E74C3C;color:#FFF}
.tag-首{background:#9B59B6;color:#FFF}
.tag-志{background:#3B5A3A;color:#FBE7BC}
.tag-default{background:#E0D6BF;color:#5A4E36}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:6px 14px;border-radius:6px;font-size:12px;cursor:pointer;border:none;transition:all .15s}
.btn-primary{background:#3B5A3A;color:#FBF6EC}
.btn-primary:hover{background:#2D4227}
.btn-warn{background:#C99A5C;color:#FFF}
.btn-ghost{background:#FFF;color:#3B5A3A;border:1px solid #3B5A3A}
.btn-danger{background:#C0392B;color:#FFF}

.input,select,textarea{width:100%;padding:7px 10px;border:1px solid #E0D6BF;border-radius:5px;font-size:12px;background:#FFF;color:#2C2418;font-family:inherit}
.input:focus,select:focus,textarea:focus{outline:none;border-color:#3B5A3A}
.form-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.form-row .lbl{width:90px;font-size:12px;color:#5A4E36;flex-shrink:0}
.form-row .lbl.req::after{content:" *";color:#C0392B}
.form-row .ctrl{flex:1}

table{width:100%;border-collapse:collapse;font-size:12px;background:#FFF}
table th{background:#3B5A3A;color:#FBF6EC;padding:9px 8px;text-align:left;font-weight:500;font-size:12px}
table td{padding:9px 8px;border-bottom:1px solid #F0EAD8;color:#2C2418}
table tr:hover td{background:#FBF6EC}

/* 移动端特有 */
.m-banner{height:160px;background:linear-gradient(135deg,#3B5A3A 0%,#7A4A2A 100%);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#FBF6EC;flex-direction:column}
.m-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(201,154,92,.3),transparent 60%)}
.m-banner .bn-title{font-size:22px;font-weight:600;letter-spacing:2px;position:relative;z-index:1}
.m-banner .bn-sub{font-size:12px;opacity:.85;margin-top:4px;position:relative;z-index:1}
.m-notice{background:#FBE7BC;color:#7A4A2A;padding:6px 12px;font-size:11px;display:flex;align-items:center;gap:6px;overflow:hidden}
.m-notice .ticker{white-space:nowrap;animation:ticker 12s linear infinite}
@keyframes ticker{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}
.m-section{background:#FFF;margin:10px;border-radius:8px;overflow:hidden}
.m-section .hd{padding:10px 12px;border-bottom:1px solid #F0EAD8;display:flex;align-items:center;justify-content:space-between}
.m-section .hd .name{font-size:14px;font-weight:600;color:#2C2418;display:flex;align-items:center;gap:6px}
.m-section .hd .more{font-size:11px;color:#7A6E52}
.m-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px}
.m-goods{background:#FBF6EC;border-radius:6px;overflow:hidden;cursor:pointer;position:relative;border:1px solid #F0EAD8}
.m-goods .img{aspect-ratio:1;background:linear-gradient(135deg,#7A4A2A,#3D2317);display:flex;align-items:center;justify-content:center;color:#FBE7BC;font-size:11px}
.m-goods .corner{position:absolute;top:0;left:0;padding:2px 6px;font-size:9px;font-weight:600}
.m-goods .info{padding:6px 8px}
.m-goods .name{font-size:11px;color:#2C2418;line-height:1.3;height:30px;overflow:hidden}
.m-goods .spec{font-size:10px;color:#7A6E52;margin-top:2px}
.m-goods .price{color:#C0392B;font-size:13px;font-weight:600;margin-top:4px}
.m-goods .price small{font-size:10px;font-weight:400}
.m-goods .price del{color:#999;font-size:10px;margin-left:4px;font-weight:400}

.fab-row{padding:10px 14px;background:#FFF;display:flex;gap:8px;border-top:1px solid #F0EAD8}

/* 按钮组 */
.seg{display:flex;background:#F0EAD8;border-radius:6px;padding:2px;margin:10px 14px}
.seg .s{flex:1;text-align:center;padding:6px;font-size:12px;color:#7A6E52;border-radius:4px;cursor:pointer}
.seg .s.active{background:#3B5A3A;color:#FBF6EC}

/* 状态徽章 */
.status{padding:2px 8px;border-radius:10px;font-size:10px;display:inline-block}
.status-pending{background:#F0EAD8;color:#7A6E52}
.status-paid{background:#FBE7BC;color:#7A4A2A}
.status-shipped{background:#C4D4A0;color:#3B5A3A}
.status-done{background:#3B5A3A;color:#FBF6EC}
.status-cancel{background:#F0EAD8;color:#999}

/* 数据卡片 */
.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.metric{background:#FFF;padding:14px;border-radius:8px;border:1px solid #E8E0CC}
.metric .lbl{font-size:11px;color:#7A6E52}
.metric .val{font-size:22px;font-weight:600;color:#2C2418;margin-top:4px}
.metric .delta{font-size:10px;margin-top:2px}
.metric .delta.up{color:#3B5A3A}
.metric .delta.down{color:#C0392B}

.charts-row{display:grid;grid-template-columns:1.5fr 1fr;gap:12px;margin-bottom:16px}
.chart-box{background:#FFF;padding:14px;border-radius:8px;border:1px solid #E8E0CC;height:240px}
.chart-box h4{font-size:13px;color:#2C2418;margin-bottom:10px}
.bar-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:11px}
.bar-row .lab{width:90px;color:#5A4E36}
.bar-row .bar{flex:1;height:14px;background:#F0EAD8;border-radius:3px;position:relative;overflow:hidden}
.bar-row .fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#3B5A3A,#7A4A2A);border-radius:3px}
.bar-row .val{width:50px;text-align:right;color:#2C2418;font-weight:500}

/* 角色标识条 */
.role-bar{background:linear-gradient(90deg,#3B5A3A,#7A4A2A);color:#FBF6EC;padding:6px 12px;font-size:11px;text-align:center;letter-spacing:1px}

/* 列表项 */
.list-row{display:flex;align-items:center;padding:11px 14px;background:#FFF;border-bottom:1px solid #F0EAD8;cursor:pointer;gap:10px}
.list-row .ico{width:32px;height:32px;border-radius:6px;background:#F0EAD8;display:flex;align-items:center;justify-content:center;font-size:14px;color:#3B5A3A}
.list-row .text{flex:1;font-size:13px;color:#2C2418}
.list-row .arrow{color:#B8AC8C;font-size:14px}
.list-row .extra{font-size:11px;color:#7A6E52}

/* 详情相关 */
.detail-img{width:100%;aspect-ratio:1;background:linear-gradient(135deg,#7A4A2A,#3D2317);display:flex;align-items:center;justify-content:center;color:#FBE7BC;font-size:14px}
.spec-row{padding:10px 14px;background:#FBF6EC;display:flex;align-items:center;justify-content:space-between;font-size:12px}
.price-block{padding:12px 14px;background:linear-gradient(90deg,#C0392B,#E74C3C);color:#FFF}
.price-block .now{font-size:22px;font-weight:600}
.price-block .now small{font-size:12px}
.price-block del{color:rgba(255,255,255,.7);margin-left:6px;font-size:12px}
.price-block .coupon{background:rgba(255,255,255,.2);padding:2px 6px;border-radius:3px;font-size:10px;margin-left:6px}

/* ===== 后台管理样式（浅色主题） ===== */
.web-frame{display:flex;width:calc(100vw - 40px);max-width:1280px;height:calc(100vh - 40px);max-height:860px;background:#FFFFFF;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #E5E5E5;margin:20px auto;position:relative}
.web-sidebar{width:200px;background:#F5F5F5;padding:20px 0;overflow-y:auto;border-right:1px solid #E5E5E5;flex-shrink:0}
.web-sidebar .logo{display:flex;align-items:center;gap:10px;padding:0 20px 20px;font-weight:600;font-size:15px;color:#1F1B14;border-bottom:1px solid #E5E5E5;margin-bottom:14px}
.web-sidebar .logo .dot{width:10px;height:10px;background:#C99A5C;border-radius:50%;box-shadow:0 0 8px rgba(201,154,92,.5)}
.web-sidebar nav a{display:flex;align-items:center;gap:10px;padding:9px 20px;color:rgba(0,0,0,.65);text-decoration:none;font-size:13px;transition:.2s;border-left:3px solid transparent}
.web-sidebar nav a:hover{background:rgba(201,154,92,.08);color:#1F1B14}
.web-sidebar nav a.active{background:rgba(201,154,92,.12);color:#C99A5C;border-left-color:#C99A5C;font-weight:600}
.web-sidebar nav .group{font-size:11px;color:rgba(0,0,0,.45);padding:14px 20px 6px;text-transform:uppercase;letter-spacing:1px;font-weight:500}
.web-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#FFFFFF}
.web-topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:#FFFFFF;border-bottom:1px solid #E5E5E5}
.web-topbar .title{font-size:16px;font-weight:600;color:#1F1B14}
.web-topbar .user-info{display:flex;align-items:center;gap:12px;font-size:13px;color:rgba(0,0,0,.7);margin-left:auto}
.web-topbar .user-info .role{background:rgba(201,154,92,.15);color:#C99A5C;padding:2px 8px;border-radius:10px;font-size:11px}
.web-topbar .user-info .avatar{width:28px;height:28px;background:#C99A5C;color:#1F1B14;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px}
.web-topbar .user-info .name{color:#1F1B14}
.web-topbar .user-info .logout{color:rgba(0,0,0,.5);text-decoration:none;font-size:12px;margin-left:8px}
.web-topbar .user-info .logout:hover{color:#C99A5C}
.web-content{flex:1;overflow-y:auto;padding:24px;background:#F8F9FA}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.metric-card{background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;padding:18px 20px;position:relative;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.metric-card .label{font-size:12px;color:rgba(0,0,0,.5);margin-bottom:6px}
.metric-card .value{font-size:24px;font-weight:700;color:#1F1B14}
.metric-card .delta{font-size:11px;margin-top:4px;color:#9BAB7E}
.metric-card .delta.down{color:#C77A5C}
.metric-card .ico{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:32px;opacity:.15}
.data-table{width:100%;background:#FFFFFF;border-radius:10px;overflow:hidden;border-collapse:collapse;border:1px solid #E5E5E5}
.data-table th{background:#F5F5F5;color:rgba(0,0,0,.7);font-size:12px;font-weight:600;padding:12px 16px;text-align:left;border-bottom:1px solid #E5E5E5}
.data-table td{padding:12px 16px;font-size:13px;color:#1F1B14;border-bottom:1px solid #EFEFEF}
.data-table tr:hover td{background:rgba(201,154,92,.06)}
.data-table .empty{padding:60px 20px;text-align:center;color:rgba(0,0,0,.4)}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}
.badge-success{background:rgba(155,171,126,.15);color:#6F8050}
.badge-warning{background:rgba(201,154,92,.15);color:#A07A45}
.badge-info{background:rgba(122,143,186,.15);color:#5A6E94}
.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.toolbar .filters{display:flex;gap:8px;flex:1;align-items:center;flex-wrap:wrap}
.toolbar .filters > input,.toolbar .filters > input[type="text"],.toolbar .filters > input[type="search"]{flex:1;min-width:160px;max-width:340px;width:auto;background:#FFFFFF;border:1px solid #D9D9D9;color:#1F1B14;padding:8px 12px;border-radius:6px;font-size:13px;outline:none}
.toolbar .filters > input:focus,.toolbar .filters > select:focus{border-color:#C99A5C}
.toolbar .filters > input::placeholder{color:rgba(0,0,0,.35)}
.toolbar .filters > select{flex-shrink:0;width:auto;background:#FFFFFF;border:1px solid #D9D9D9;color:#1F1B14;padding:8px 12px;border-radius:6px;font-size:13px;outline:none;min-width:120px}
.toolbar button.search-btn{background:#C99A5C;color:#1F1B14;border:none;padding:8px 18px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0;white-space:nowrap}
.toolbar > button.search-btn:hover{background:#D9AB6C}
.toolbar .add-btn{margin-left:auto;background:#3B5A3A;color:#FFFFFF;border:none;padding:8px 18px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0}
.toolbar .add-btn:hover{background:#2D4227}
.toolbar .add-btn:disabled{background:#D9D9D9;color:#999;cursor:not-allowed}
.toolbar .add-btn.danger{background:#FFFFFF;color:#C77A5C;border:1px solid #C77A5C}
.toolbar .add-btn.danger:hover{background:#FDF6F3;color:#B85C3F;border-color:#B85C3F}
.toolbar .add-btn.danger:disabled{background:#FFFFFF;color:#E8B4A8;border-color:#F5D4CC;cursor:not-allowed}
button.ghost{background:#FFFFFF;color:#5A4A33;border:1px solid #D9D9D9;padding:8px 18px;border-radius:6px;font-size:13px;line-height:1.45;cursor:pointer;flex-shrink:0;white-space:nowrap;transition:all .15s}
button.ghost:hover{border-color:#C99A5C;color:#C99A5C;background:#FFFDF8}
button.ghost:active{background:#FBF7EF}
.pagination{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;font-size:13px;color:rgba(0,0,0,.55)}
.pagination button{background:#FFFFFF;border:1px solid #D9D9D9;color:#1F1B14;padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer}
.pagination button:hover{border-color:#C99A5C;color:#C99A5C}
.pagination button.active{background:#C99A5C;color:#1F1B14;border-color:#C99A5C}
.toast{position:fixed;top:20px;right:20px;background:#FFFFFF;color:#1F1B14;padding:12px 20px;border-radius:8px;font-size:13px;border-left:4px solid #C99A5C;opacity:0;transform:translateX(20px);transition:.3s;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,.12)}
.toast.show{opacity:1;transform:translateX(0)}
.toast-success{border-left-color:#9BAB7E}
.toast-error{border-left-color:#C77A5C}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.info-card{background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;padding:18px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.info-card .card-title{font-size:14px;font-weight:600;color:#1F1B14;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.info-card .row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;color:rgba(0,0,0,.7);border-bottom:1px solid #EFEFEF}
.info-card .row:last-child{border-bottom:none}
.info-card .row strong{color:#1F1B14}
.loading{padding:40px;text-align:center;color:rgba(0,0,0,.4);font-size:13px}
.empty-state{padding:60px 20px;text-align:center;color:rgba(0,0,0,.4)}
.empty-state .ico{font-size:48px;opacity:.3;margin-bottom:12px}
.chart-card{background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;padding:20px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.chart-card .chart-title{font-size:14px;font-weight:600;color:#1F1B14;margin-bottom:16px}
.chart-svg{width:100%;height:200px}

/* 登录页（浅色） */
.login-page{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;width:calc(100vw - 40px);max-width:980px;height:600px;background:#FFFFFF;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #E5E5E5}
.login-page .hero{flex:1;background:linear-gradient(135deg,#3B5A3A 0%,#5C7A3E 100%);padding:48px;display:flex;flex-direction:column;justify-content:space-between;color:#FBF6EC}
.login-page .hero .brand{font-size:24px;font-weight:600;display:flex;align-items:center;gap:10px}
.login-page .hero h1{font-size:32px;line-height:1.4;font-weight:600;margin-top:20px}
.login-page .hero .desc{font-size:13px;opacity:.85;line-height:1.8;margin-top:14px}
.login-page .hero .footer{font-size:12px;opacity:.6}
.login-page .form-panel{width:380px;padding:48px;display:flex;flex-direction:column;justify-content:center;background:#FFFFFF}
.login-page .form-panel h2{font-size:20px;color:#1F1B14;margin-bottom:8px}
.login-page .form-panel .sub{font-size:13px;color:rgba(0,0,0,.5);margin-bottom:32px}
.login-page .field{margin-bottom:18px}
.login-page .field label{display:block;font-size:12px;color:rgba(0,0,0,.65);margin-bottom:6px}
.login-page .field input{width:100%;background:#FFFFFF;border:1px solid #D9D9D9;color:#1F1B14;padding:11px 14px;border-radius:6px;font-size:14px;outline:none}
.login-page .field input:focus{border-color:#C99A5C}
.login-page .submit{width:100%;background:#C99A5C;color:#1F1B14;border:none;padding:12px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;margin-top:10px}
.login-page .submit:hover{background:#D9AB6C}
.login-page .submit:disabled{opacity:.6;cursor:not-allowed}
.login-page .row{display:flex;justify-content:space-between;font-size:12px;color:rgba(0,0,0,.5);margin-top:14px}
.login-page .hint{background:rgba(201,154,92,.08);border:1px solid rgba(201,154,92,.2);border-radius:6px;padding:10px;margin-top:18px;font-size:12px;color:#A07A45}

/* ===== 多 Tab 主框架（admin-00-tabs.html）===== */
.tabs-frame{display:flex;flex-direction:column;width:100vw;height:100vh;background:#FFFFFF;overflow:hidden;margin:0;padding:0}
.tabs-topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#FFFFFF;border-bottom:1px solid #E5E5E5;flex-shrink:0}
.tabs-topbar .tabs-title{font-size:15px;font-weight:600;color:#1F1B14}
.tabs-topbar .tabs-user{display:flex;align-items:center;gap:12px;font-size:13px;color:rgba(0,0,0,.7)}
.tabs-topbar .tabs-user .name{color:#1F1B14}
.tabs-topbar .tabs-user .logout{color:rgba(0,0,0,.5);text-decoration:none;font-size:12px;cursor:pointer}
.tabs-topbar .tabs-user .logout:hover{color:#C99A5C}
.tabs-body{display:flex;flex:1;overflow:hidden;min-height:0}
.tabs-sidebar{width:200px;background:#F5F5F5;border-right:1px solid #E5E5E5;overflow-y:auto;flex-shrink:0;padding:16px 0}
.tabs-sidebar::-webkit-scrollbar{width:4px}
.tabs-sidebar::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.tabs-sidebar::-webkit-scrollbar-thumb:hover{background:#4a6d49}
.tabs-sidebar::-webkit-scrollbar-track{background:transparent}
.tabs-sidebar{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}
.tabs-sidebar .tabs-group{font-size:11px;color:rgba(0,0,0,.45);padding:14px 16px 6px;text-transform:uppercase;letter-spacing:1px;font-weight:500}
.tabs-sidebar .tabs-group:first-child{padding-top:0}
.tabs-sidebar .tabs-nav-item{display:flex;align-items:center;gap:10px;padding:9px 16px;margin:0 8px 4px;color:rgba(0,0,0,.7);text-decoration:none;font-size:13px;transition:.2s;border-left:3px solid transparent;border-radius:0;cursor:pointer;line-height:1.4}
.tabs-sidebar .tabs-nav-item:hover{background:rgba(201,154,92,.08);color:#1F1B14}
.tabs-sidebar .tabs-nav-item.active{background:rgba(201,154,92,.12);color:#C99A5C;border-left-color:#C99A5C;font-weight:600}
.tabs-sidebar .tabs-nav-item.pinned{position:relative}
.tabs-sidebar .tabs-nav-item.pinned::after{content:"📌";position:absolute;right:10px;font-size:10px;opacity:.5}
.tabs-sidebar .tabs-nav-item .ico{width:20px;text-align:center;font-size:14px;flex-shrink:0}
.tabs-sidebar .tabs-nav-item .lbl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabs-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#FFFFFF;min-width:0}
/* 多页签栏：更醒目的视觉，让"页签栏"一眼可识别 */
.tabs-bar{display:flex;align-items:center;gap:6px;background:linear-gradient(180deg,#F0EDE6 0%,#FAFAFA 100%);border-bottom:2px solid #C99A5C;padding:10px 12px 8px 90px;min-height:54px;overflow-x:auto;position:relative;flex-shrink:0}
/* "已打开页签"标签：tabs-bar 内部左侧，金色背景 */
.tabs-bar::before{content:"已打开页签";position:absolute;left:12px;top:50%;transform:translateY(-50%);background:#C99A5C;color:#FFFFFF;font-size:11px;padding:3px 10px;border-radius:10px;font-weight:600;letter-spacing:.5px;line-height:1.2;white-space:nowrap}
.tabs-bar-empty{flex:1;text-align:center;color:rgba(0,0,0,.4);font-size:12px;padding:0 12px}
.tabs-bar::-webkit-scrollbar{height:4px}
.tabs-bar::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.tabs-bar::-webkit-scrollbar-track{background:transparent}
.tabs-bar{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}
.tabs-bar .tab{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;margin-right:4px;background:#FFFFFF;border:1px solid #E5E5E5;border-radius:6px;font-size:13px;color:rgba(0,0,0,.7);cursor:pointer;user-select:none;max-width:200px;transition:.15s;flex-shrink:0;position:relative}
.tabs-bar .tab:hover{border-color:#C99A5C;color:#1F1B14}
.tabs-bar .tab.active{background:#FFFFFF;color:#C99A5C;border-color:#C99A5C;font-weight:600;box-shadow:0 2px 6px rgba(201,154,92,.2);border-bottom-width:2px}
.tabs-bar .tab.pinned{border-style:dashed;color:#C99A5C}
.tabs-bar .tab.pinned::before{content:"📌";font-size:11px;margin-right:4px}
.tabs-bar .tab .tab-icon{font-size:14px}
.tabs-bar .tab .tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabs-bar .tab .tab-close{margin-left:2px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:rgba(0,0,0,.4);font-size:14px;line-height:1;cursor:pointer}
.tabs-bar .tab .tab-close:hover{background:rgba(199,122,92,.15);color:#C77A5C}
.tabs-bar .tab-close-all{margin-left:auto;padding:6px 12px;background:transparent;border:1px solid #E5E5E5;border-radius:6px;font-size:12px;color:rgba(0,0,0,.65);cursor:pointer;white-space:nowrap;flex-shrink:0}
.tabs-bar .tab-close-all:hover{border-color:#C77A5C;color:#C77A5C}
.tabs-content{flex:1;overflow:hidden;background:#F8F9FA;position:relative}
.tabs-content iframe{width:100%;height:100%;border:none;background:#FFFFFF;display:block}
.tabs-content .tabs-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,.35);font-size:14px;pointer-events:none}

/* embedded 模式：admin-XX.html 在 iframe 里加载时隐藏 sidebar/topbar */
.web-frame.embedded{display:block;width:100%;height:100%;max-width:none;max-height:none;box-shadow:none;border:none;border-radius:0;background:#F4EFE6;margin:0}
.web-frame.embedded .web-sidebar,.web-frame.embedded .web-topbar{display:none}
.web-frame.embedded .web-main{display:block;width:100%;height:auto}
.web-frame.embedded .web-content{height:auto;min-height:100%;background:#F4EFE6;border-radius:0;padding:12px;overflow:visible;width:100%;max-width:none}
/* embedded 模式下 dashboard 卡片撑满浏览器宽度 */
.web-frame.embedded .metric-grid{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.web-frame.embedded .chart-card{width:100%;margin-bottom:12px;padding:16px}
.web-frame.embedded .data-table{width:100%}
.web-frame.embedded .info-card{width:100%}
.web-frame.embedded .toolbar{width:100%}

/* ===== 弹窗（Modal / Dialog）=====.product-modal */
.dialog-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.dialog-box{background:#FFFFFF;border-radius:12px;width:880px;max-width:92vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.2);animation:slideUp .25s}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.dialog-box .dlg-hd,.dialog-box .dialog-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid #E5E5E5;flex-shrink:0}
.dialog-box .dlg-hd h3,.dialog-box .dialog-hd h3{margin:0;font-size:16px;font-weight:600;color:#1F1B14}
.dialog-box .dlg-hd .close,.dialog-box .dialog-hd .close,.dialog-box .dialog-close{cursor:pointer;font-size:22px;color:rgba(0,0,0,.4);background:none;border:none;line-height:1;padding:4px 8px}
.dialog-box .dlg-hd .close:hover,.dialog-box .dialog-hd .close:hover,.dialog-box .dialog-close:hover{color:#C77A5C}
.dialog-box .dlg-bd,.dialog-box .dialog-bd{flex:1;overflow-y:auto;padding:20px 24px}
.dialog-box .dlg-bd::-webkit-scrollbar,.dialog-box .dialog-bd::-webkit-scrollbar{width:4px}
.dialog-box .dlg-bd::-webkit-scrollbar-thumb,.dialog-box .dialog-bd::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.dialog-box .dlg-bd::-webkit-scrollbar-thumb:hover,.dialog-box .dialog-bd::-webkit-scrollbar-thumb:hover{background:#4a6d49}
.dialog-box .dlg-bd::-webkit-scrollbar-track,.dialog-box .dialog-bd::-webkit-scrollbar-track{background:transparent}
.dialog-box .dlg-bd,.dialog-box .dialog-bd{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}
.dialog-box .dlg-ft,.dialog-box .dialog-ft{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid #E5E5E5;flex-shrink:0}

/* 弹窗内表单网格（2 列） */
.dlg-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.dlg-form .full{grid-column:1/-1}
.dlg-field{display:flex;flex-direction:column;gap:6px}
.dlg-field > label{font-size:12px;color:rgba(0,0,0,.65);font-weight:500}
.dlg-field > label.req::after{content:" *";color:#C0392B}
.dlg-field > .ctrl input,
.dlg-field > .ctrl select,
.dlg-field > .ctrl textarea{width:100%;padding:8px 10px;border:1px solid #D9D9D9;border-radius:6px;font-size:13px;background:#FFF;color:#1F1B14;outline:none;font-family:inherit}
.dlg-field > .ctrl input:focus,
.dlg-field > .ctrl select:focus,
.dlg-field > .ctrl textarea:focus{border-color:#C99A5C}
.dlg-field > .ctrl textarea{min-height:80px;resize:vertical}
.dlg-field > .ctrl .hint{font-size:11px;color:rgba(0,0,0,.5);margin-top:2px}
.dlg-field > .ctrl .err{font-size:11px;color:#C0392B;margin-top:2px;display:none}
.dlg-field.has-error input,.dlg-field.has-error select,.dlg-field.has-error textarea{border-color:#C0392B}
.dlg-field.has-error .err{display:block}

/* 复选/开关 */
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.switch input{position:absolute;opacity:0;pointer-events:none}
.switch .track{width:36px;height:20px;background:#D9D9D9;border-radius:10px;position:relative;transition:.2s}
.switch .track::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;background:#FFF;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch input:checked + .track{background:#3B5A3A}
.switch input:checked + .track::after{left:18px}
.switch .lbl{font-size:13px;color:#1F1B14}

/* 图片上传 */
.image-uploader{border:1px dashed #D9D9D9;border-radius:8px;padding:12px;background:#FAFAFA}
.image-uploader .img-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-bottom:8px}
.image-uploader .img-item{position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;border:2px solid transparent;background:#FFF}
.image-uploader .img-item img{width:100%;height:100%;object-fit:cover;display:block}
.image-uploader .img-item.is-main{border-color:#C99A5C;box-shadow:0 0 0 2px rgba(201,154,92,.2)}
.image-uploader .img-item .badge-main{position:absolute;top:4px;left:4px;background:#C99A5C;color:#1F1B14;font-size:10px;padding:2px 6px;border-radius:3px;font-weight:600}
.image-uploader .img-item .actions{position:absolute;top:0;right:0;display:flex;gap:2px;padding:4px}
.image-uploader .img-item .actions button{background:rgba(0,0,0,.5);color:#FFF;border:none;width:22px;height:22px;border-radius:3px;font-size:12px;cursor:pointer;line-height:1}
.image-uploader .img-item .actions button:hover{background:#C77A5C}
.image-uploader .upload-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:1px dashed #C99A5C;border-radius:6px;background:#FFF;color:#C99A5C;cursor:pointer;font-size:13px}
.image-uploader .upload-btn:hover{background:rgba(201,154,92,.08)}
.image-uploader .upload-btn input{display:none}
.image-uploader .upload-btn .progress{position:absolute;bottom:0;left:0;height:3px;background:#C99A5C;border-radius:0 0 6px 6px;transition:width .2s}

/* 规格子表 */
.spec-table{width:100%;border-collapse:collapse;background:#FFF;border:1px solid #E5E5E5;border-radius:6px;overflow:hidden}
.spec-table th{background:#F5F5F5;color:rgba(0,0,0,.7);font-size:12px;font-weight:600;padding:8px 10px;text-align:left;border-bottom:1px solid #E5E5E5}
.spec-table td{padding:6px 10px;border-bottom:1px solid #F0F0F0;font-size:13px;vertical-align:middle}
.spec-table td input,.spec-table td select{width:100%;padding:6px 8px;border:1px solid #E0D6BF;border-radius:4px;font-size:13px;background:#FFF;color:#1F1B14;outline:none}
.spec-table td input:focus,.spec-table td select:focus{border-color:#C99A5C}
.spec-table .del-btn{background:transparent;color:#C0392B;border:none;cursor:pointer;font-size:14px;padding:2px 6px}
.spec-table .del-btn:hover{color:#E74C3C}
.spec-add-btn{margin-top:8px;background:transparent;color:#3B5A3A;border:1px dashed #3B5A3A;padding:6px 14px;border-radius:5px;cursor:pointer;font-size:13px}
.spec-add-btn:hover{background:rgba(59,90,58,.06)}

.dlg-section{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #F0F0F0}
.dlg-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.dlg-section .sec-title{font-size:13px;font-weight:600;color:#1F1B14;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.dlg-section .sec-title::before{content:"";width:3px;height:14px;background:#C99A5C;border-radius:2px}

/* 详情图与主图分开预览 */
.image-uploader.is-main-only .img-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}

/* ===== 系统设置页（admin-16-system-config.html）===== */
.syscfg-page{display:flex;flex-direction:column;min-height:100%}
.syscfg-hd{padding:20px 28px 14px;border-bottom:1px solid #E5E5E5;background:#FFFFFF;flex-shrink:0}
.syscfg-title{font-size:18px;font-weight:600;color:#1F1B14;display:flex;align-items:center;gap:8px}
.syscfg-sub{font-size:12px;color:rgba(0,0,0,.5);margin-top:4px;margin-left:28px}
.syscfg-body{display:flex;flex:1;min-height:0}
.syscfg-menu{width:200px;background:#FFFFFF;border-right:1px solid #E5E5E5;padding:14px 0;flex-shrink:0;overflow-y:auto}
.syscfg-menu::-webkit-scrollbar{width:4px}
.syscfg-menu::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.syscfg-menu::-webkit-scrollbar-thumb:hover{background:#4a6d49}
.syscfg-menu::-webkit-scrollbar-track{background:transparent}
.syscfg-menu{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}
.syscfg-menu .syscfg-menu-item{display:flex;align-items:center;gap:10px;padding:10px 20px;color:rgba(0,0,0,.7);text-decoration:none;font-size:13px;cursor:pointer;transition:.15s;border-left:3px solid transparent}
.syscfg-menu .syscfg-menu-item:hover{background:rgba(201,154,92,.08);color:#1F1B14}
.syscfg-menu .syscfg-menu-item.active{background:rgba(201,154,92,.12);color:#C99A5C;border-left-color:#C99A5C;font-weight:600}
.syscfg-menu .syscfg-menu-item .ico{width:18px;text-align:center;font-size:14px}
.syscfg-content{flex:1;padding:24px 28px;overflow-y:auto;background:#F8F9FA}
.syscfg-content::-webkit-scrollbar{width:4px}
.syscfg-content::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.syscfg-content::-webkit-scrollbar-thumb:hover{background:#4a6d49}
.syscfg-content::-webkit-scrollbar-track{background:transparent}
.syscfg-content{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}

/* 字典卡片 */
.dict-card{background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.04);overflow:hidden}
.dict-card-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #F0F0F0}
.dict-card-hd h3{margin:0;font-size:15px;font-weight:600;color:#1F1B14}
.dict-card-tag{background:rgba(201,154,92,.1);color:#A07A45;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:500}
.dict-card-bd{padding:18px 20px}
.dict-row{display:flex;align-items:flex-start;gap:16px}
.dict-lbl{width:110px;padding-top:8px;font-size:13px;color:rgba(0,0,0,.7);flex-shrink:0}
.dict-ctrl{flex:1}
.dict-ctrl textarea{width:100%;padding:8px 12px;border:1px solid #D9D9D9;border-radius:6px;font-size:13px;color:#1F1B14;font-family:inherit;background:#FAFAFA;resize:vertical;min-height:48px;outline:none;line-height:1.6}
.dict-ctrl textarea:focus{border-color:#C99A5C;background:#FFF}
.dict-ctrl textarea:disabled{background:#F5F5F5;color:rgba(0,0,0,.55);cursor:not-allowed}
.dict-hint{margin-top:6px;font-size:11px;color:rgba(0,0,0,.5);line-height:1.6}
.dict-actions{margin-top:14px;padding-left:126px;display:flex;align-items:center;gap:10px}
.dict-readonly-hint{font-size:12px;color:rgba(0,0,0,.45);font-style:italic}

/* 占位页面 */
.syscfg-pending{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;text-align:center;color:rgba(0,0,0,.5)}
.syscfg-pending .ico{font-size:48px;opacity:.3;margin-bottom:12px}
.syscfg-pending h3{margin:0 0 8px;font-size:15px;color:rgba(0,0,0,.7);font-weight:500}
.syscfg-pending p{margin:0;font-size:13px;color:rgba(0,0,0,.45)}

/* 系统设置 - 字典卡片 */
.syscfg-card{background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.syscfg-card-hd{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid #EFEFEF}
.syscfg-card-hd h3{margin:0;font-size:15px;font-weight:600;color:#1F1B14}
.syscfg-card-bd{padding:18px 22px 22px}

/* 字典列表 */
.dict-table{width:100%;border-collapse:collapse;font-size:13px}
.dict-table thead th{background:#FAFAFA;color:rgba(0,0,0,.7);font-weight:600;text-align:left;padding:10px 14px;border-bottom:1px solid #E5E5E5;font-size:12px}
.dict-table tbody td{padding:12px 14px;border-bottom:1px solid #F0F0F0;color:#1F1B14}
.dict-table tbody tr:hover{background:#FAFBFC}
.dict-table tbody tr:last-child td{border-bottom:none}
.dict-table .empty-cell{text-align:center;color:rgba(0,0,0,.4);padding:40px 0;font-size:13px}

/* 字典项内的按钮排版 */
.dict-table td .btn{margin-right:6px}
.dict-table td .btn:last-child{margin-right:0}

/* Badge */
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;line-height:16px}
.badge-on{background:#E8F5EE;color:#2A7D43}
.badge-off{background:#F5E8E8;color:#A04040}
.badge-info{background:#EEF2F7;color:#5A6878;font-weight:400}
/* 中性/停用态（原缺失：admin-shell 的 statusBadge(0)、admin-03/06/09/10/11/13/17/18 一直在用；badge-gray 为历史别名） */
.badge-default,.badge-gray{background:rgba(0,0,0,.06);color:rgba(0,0,0,.45)}

/* 小按钮 */
.btn-mini{padding:4px 10px;font-size:12px;border-radius:4px;border:1px solid #DDD;background:#FFF;cursor:pointer;color:#333;transition:.15s}
.btn-mini:hover{background:#F5F5F5;border-color:#CCC}
.btn-mini.btn-primary{background:#C99A5C;color:#FFF;border-color:#C99A5C}
.btn-mini.btn-primary:hover{background:#B8874D}
.btn-mini.btn-warn{background:#FFF;color:#B8874D;border-color:#C99A5C}
.btn-mini.btn-warn:hover{background:#FDF6EE}
.btn-mini.btn-danger{background:#FFF;color:#C0392B;border-color:#E8B4B4}
.btn-mini.btn-danger:hover{background:#FDF1F1}

/* 表单行（弹窗内）—— 横向布局：label 在左 + 输入框在右 */
.dialog-bd .form-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.dialog-bd .form-row label{display:block;width:90px;flex-shrink:0;margin-bottom:0;font-size:13px;color:rgba(0,0,0,.75);font-weight:500;text-align:right;white-space:nowrap}
.dialog-bd .form-row .required{color:#C0392B;margin-left:2px}
.dialog-bd .form-row input,.dialog-bd .form-row select,.dialog-bd .form-row textarea{flex:1;width:auto;min-width:0;padding:8px 10px;border:1px solid #DDD;border-radius:5px;font-size:13px;box-sizing:border-box;background:#FFF;color:#1F1B14}
.dialog-bd .form-row input:focus,.dialog-bd .form-row select:focus,.dialog-bd .form-row textarea:focus{outline:none;border-color:#C99A5C;box-shadow:0 0 0 2px rgba(201,154,92,.12)}
.dialog-bd .form-row .hint{font-size:11px;color:rgba(0,0,0,.45);margin-top:4px;display:block;margin-left:102px}

/* 税率单值编辑表单 */
.tax-rate-form{max-width:520px}
.tax-rate-form .form-row label{display:inline-block;width:100px;font-size:13px;color:rgba(0,0,0,.75);font-weight:500}
.tax-rate-form .form-row input[type=text]{display:inline-block;width:200px;padding:8px 10px;border:1px solid #DDD;border-radius:5px;font-size:13px;margin-right:12px}
.tax-rate-form .form-row .hint{font-size:12px;color:rgba(0,0,0,.45)}
.tax-rate-form .form-actions{margin-top:18px;padding-left:100px}
.tax-rate-form .form-actions .btn{padding:8px 22px;font-size:13px}

/* 弹窗尺寸 */
.dialog-sm{width:480px;max-width:90vw}
.dialog-lg{width:920px;max-width:95vw}
.dialog-bd,.dlg-bd{padding:20px 24px}
.dialog-ft,.dlg-ft{padding:12px 24px;border-top:1px solid #EEE;display:flex;justify-content:flex-end;gap:10px;background:#FAFAFA;border-radius:0 0 10px 10px}
.dialog-ft .btn,.dlg-ft .btn{padding:8px 20px;font-size:13px}

/* ===== 首页栏目管理布局 ===== */
.channel-layout{display:grid;grid-template-columns:280px 1fr;gap:16px;height:calc(100vh - 200px);min-height:500px}
.channel-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-right:4px}
/* 栏目卡片列表：自定义窄竖滚动条（与左侧侧栏一致） */
.channel-list::-webkit-scrollbar{width:4px}
.channel-list::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.channel-list::-webkit-scrollbar-thumb:hover{background:#4a6d49}
.channel-list::-webkit-scrollbar-track{background:transparent}
.channel-list{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}
.channel-detail{display:flex;flex-direction:column;background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;overflow:hidden;min-width:0}
.channel-card{background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;padding:14px 16px;cursor:pointer;transition:.15s}
.channel-card:hover{border-color:#C99A5C;box-shadow:0 2px 6px rgba(201,154,92,.15)}
.channel-card.active{border-color:#C99A5C;background:linear-gradient(135deg,rgba(201,154,92,.08),rgba(201,154,92,.02));box-shadow:0 2px 8px rgba(201,154,92,.2)}
.channel-card-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.channel-name{font-size:14px;font-weight:600;color:#1F1B14}
.channel-desc{font-size:12px;color:rgba(0,0,0,.55);line-height:1.6;margin:6px 0;min-height:18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.channel-meta{font-size:11px;color:rgba(0,0,0,.45);display:flex;align-items:center;gap:6px;margin-bottom:10px}
.channel-meta .dot{opacity:.4}
.channel-meta .product-count{color:#C77A5C;font-weight:600}
.channel-actions{display:flex;gap:6px}
.channel-detail-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #E5E5E5;background:#FAFAFA}
.channel-detail-hd h3{margin:0;font-size:16px;font-weight:600;color:#1F1B14}
.channel-detail-hd .channel-desc-text{margin:4px 0 0;font-size:12px;color:rgba(0,0,0,.55);max-width:600px}
.channel-detail-actions{display:flex;gap:8px}
.channel-detail-bd{flex:1;overflow:auto;padding:0}
.channel-detail-bd .data-table{border:none;border-radius:0;min-width:860px;table-layout:auto}
.channel-detail-bd .data-table th{background:#F8F8F8;white-space:nowrap;padding:12px 12px}
.channel-detail-bd .data-table td{white-space:nowrap;padding:10px 12px}
/* 栏目商品表格列宽：防止列被压成竖排 */
.channel-detail-bd .data-table th:nth-child(1),.channel-detail-bd .data-table td:nth-child(1){width:40px;text-align:center}
.channel-detail-bd .data-table th:nth-child(2),.channel-detail-bd .data-table td:nth-child(2){width:60px;text-align:center}
.channel-detail-bd .data-table th:nth-child(3),.channel-detail-bd .data-table td:nth-child(3){min-width:160px}
.channel-detail-bd .data-table th:nth-child(4),.channel-detail-bd .data-table td:nth-child(4){min-width:90px}
.channel-detail-bd .data-table th:nth-child(5),.channel-detail-bd .data-table td:nth-child(5){min-width:90px}
.channel-detail-bd .data-table th:nth-child(6),.channel-detail-bd .data-table td:nth-child(6){min-width:130px;text-align:right}
.channel-detail-bd .data-table th:nth-child(7),.channel-detail-bd .data-table td:nth-child(7){min-width:70px;text-align:right}
.channel-detail-bd .data-table th:nth-child(8),.channel-detail-bd .data-table td:nth-child(8){min-width:70px;text-align:right}
.channel-detail-bd .data-table th:nth-child(9),.channel-detail-bd .data-table td:nth-child(9){width:100px;text-align:center}
.channel-detail-bd .data-table th:nth-child(10),.channel-detail-bd .data-table td:nth-child(10){width:130px;text-align:center}
/* 详情面板横向滚动条（统一深绿色细竖条） */
.channel-detail-bd::-webkit-scrollbar{width:4px;height:4px}
.channel-detail-bd::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.channel-detail-bd::-webkit-scrollbar-thumb:hover{background:#4a6d49}
.channel-detail-bd::-webkit-scrollbar-track{background:transparent}
.channel-detail-bd{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}

/* 表格内小图片 */
.cell-img{width:40px;height:40px;object-fit:cover;border-radius:4px;border:1px solid #E5E5E5;background:#FAFAFA}
.sort-input{width:60px;padding:4px 6px;border:1px solid #D9D9D9;border-radius:4px;font-size:12px;text-align:center}
.sort-input:focus{outline:none;border-color:#C99A5C}

/* ===== 商品选择弹窗 ===== */
.picker-toolbar{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid #E5E5E5;background:#FAFAFA;align-items:center}
.picker-toolbar input[type=text]{flex:1;min-width:160px;max-width:280px;padding:7px 10px;border:1px solid #D9D9D9;border-radius:6px;font-size:13px;outline:none;background:#FFF}
.picker-toolbar input[type=text]:focus{border-color:#C99A5C}
.picker-toolbar select{padding:7px 10px;border:1px solid #D9D9D9;border-radius:6px;font-size:13px;background:#FFF;outline:none;min-width:110px}
.picker-toolbar .search-btn{padding:7px 16px;background:#C99A5C;color:#1F1B14;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.picker-toolbar .search-btn:hover{background:#D9AB6C}
.picker-toolbar .picker-count{margin-left:auto;font-size:12px;color:rgba(0,0,0,.5)}
.picker-table-wrap{flex:1;overflow:auto;min-height:300px}
.picker-table-wrap::-webkit-scrollbar{width:4px;height:4px}
.picker-table-wrap::-webkit-scrollbar-thumb{background:#3B5A3A;border-radius:2px}
.picker-table-wrap::-webkit-scrollbar-thumb:hover{background:#4a6d49}
.picker-table-wrap::-webkit-scrollbar-track{background:transparent}
.picker-table-wrap{scrollbar-width:thin;scrollbar-color:#3B5A3A transparent}
.picker-table{border:none;border-radius:0}
.picker-table th{position:sticky;top:0;background:#F8F8F8;z-index:1}
.picker-footer{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid #E5E5E5;background:#FAFAFA}
.picker-footer .picker-selected{font-size:13px;color:rgba(0,0,0,.6);flex:1}
.picker-footer .picker-selected strong{color:#C99A5C;font-size:15px;margin:0 4px}
.picker-footer .btn{padding:7px 18px;font-size:13px}

/* 系统设置 - 加载错误页 */
.syscfg-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;background:#FFFFFF;border:1px solid #E5E5E5;border-radius:10px;text-align:center;color:rgba(0,0,0,.6);padding:30px 20px}
.syscfg-error .ico{font-size:48px;opacity:.6;margin-bottom:12px}
.syscfg-error h3{margin:0 0 6px;font-size:15px;color:#1F1B14;font-weight:600}
.syscfg-error p{margin:0 0 16px;font-size:13px;color:rgba(0,0,0,.5)}
.syscfg-error .btn{padding:8px 22px;font-size:13px}

/* ===== 小程序首页 · 动态渲染样式（mp-home.js 对接真实 API，去除 MOCK） ===== */
/* Banner 轮播：mp-home.js 在 #bannerBox(.m-banner) 内注入 .bn-slide 与 .bn-dots */
.m-banner{position:relative}
.bn-slide{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;padding:0 18px;text-align:center}
.bn-slide.active{display:flex}
.bn-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bn-slide .bn-title{font-size:22px;font-weight:600;letter-spacing:2px;position:relative;z-index:2;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.bn-slide .bn-sub{font-size:12px;opacity:.92;margin-top:4px;position:relative;z-index:2;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.bn-dots{position:absolute;bottom:8px;left:0;right:0;display:flex;justify-content:center;gap:6px;z-index:3}
.bn-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45);display:block;transition:all .3s ease}
.bn-dots i.on{background:#FBE7BC;width:16px;border-radius:3px}
/* 栏目说明文字（后台首页栏目 description 字段，启用栏目才呈现） */
.ch-desc{font-size:11px;color:rgba(0,0,0,.5);padding:6px 14px 2px;line-height:1.6}
/* 空状态（栏目无商品 / 无数据） */
.m-empty{padding:22px 12px;text-align:center;color:rgba(0,0,0,.4);font-size:12px}
