@charset "UTF-8";
/* 后台样式 */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;color:#1f2329;background:#f2f3f5;line-height:1.6}
a{color:inherit;text-decoration:none}
ul{list-style:none}
img{max-width:100%;vertical-align:middle}
input,select,textarea,button{font-family:inherit;font-size:14px;outline:none}
table{border-collapse:collapse;width:100%}

.admin-wrap{display:flex;min-height:100vh}
.admin-side{width:230px;flex:0 0 230px;background:#1d2129;color:#c9cdd4;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.admin-brand{display:flex;align-items:center;gap:12px;padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.07)}
.admin-logo{width:38px;height:38px;border-radius:10px;background:var(--a-primary,#165DFF);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700}
.admin-brand b{color:#fff;font-size:15px;display:block}
.admin-brand small{font-size:11px;opacity:.5}
.admin-nav{padding:10px 0 24px;flex:1}
.admin-nav-group{padding:14px 18px 6px;font-size:11px;color:#6b7280;letter-spacing:1px}
.admin-nav a{display:flex;align-items:center;gap:10px;padding:10px 18px;font-size:13.5px;color:#c9cdd4;border-left:3px solid transparent}
.admin-nav a:hover{background:rgba(255,255,255,.05);color:#fff}
.admin-nav a.is-active{background:rgba(22,93,255,.16);color:#fff;border-left-color:var(--a-primary,#165DFF)}
.ai{width:16px;height:16px;display:inline-block;background:currentColor;vertical-align:-2px;
    -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;opacity:.85}
.ai-dash{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3Crect x='14' y='14' width='7' height='7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3Crect x='14' y='14' width='7' height='7'/%3E%3C/svg%3E")}
.ai-news,.ai-page,.ai-banner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0V9'/%3E%3Cpath d='M18 14h-8M15 18h-5M10 6h8v4h-8z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0V9'/%3E%3Cpath d='M18 14h-8M15 18h-5M10 6h8v4h-8z'/%3E%3C/svg%3E")}
.ai-goods{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z'/%3E%3Cpath d='m3.3 7 8.7 5 8.7-5M12 22V12'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z'/%3E%3Cpath d='m3.3 7 8.7 5 8.7-5M12 22V12'/%3E%3C/svg%3E")}
.ai-nav,.ai-link{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7'/%3E%3C/svg%3E")}
.ai-order,.ai-money{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3C/svg%3E")}
.ai-msg{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E")}
.ai-user,.ai-mch{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E")}
.ai-map{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E")}
.ai-seo,.ai-push{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E")}
.ai-set,.ai-color{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z'/%3E%3C/svg%3E")}

.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}
.admin-top{background:#fff;border-bottom:1px solid #e5e6eb;height:60px;display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:20}
.admin-title{font-size:17px;font-weight:600}
.admin-top-right{margin-left:auto;display:flex;align-items:center;gap:18px}
.admin-top-link{font-size:13px;color:#4e5969}
.admin-top-link:hover{color:var(--a-primary)}
.admin-user{display:flex;align-items:center;gap:8px;font-size:13.5px}
.admin-avatar{width:30px;height:30px;border-radius:50%;background:var(--a-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px}
.admin-logout{color:#f53f3f;font-size:13px;margin-left:6px}
.admin-toggle{display:none;flex-direction:column;gap:4px;background:none;border:0;cursor:pointer}
.admin-toggle span{width:20px;height:2px;background:#1f2329;display:block}
.admin-body{padding:22px;flex:1}
.admin-foot{padding:16px 22px;border-top:1px solid #e5e6eb;font-size:12.5px;color:#86909c;background:#fff}

/* 卡片 */
.card{background:#fff;border-radius:10px;border:1px solid #e5e6eb;padding:20px;margin-bottom:20px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.card-title{font-size:16px;font-weight:600}
.card-sub{font-size:12.5px;color:#86909c;margin-top:4px}

/* 统计 */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.stat{background:#fff;border:1px solid #e5e6eb;border-radius:10px;padding:18px}
.stat .n{font-size:26px;font-weight:700;margin-top:6px}
.stat .l{font-size:13px;color:#86909c}

/* 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:7px;font-size:13.5px;border:1px solid transparent;cursor:pointer;background:#f2f3f5;color:#1f2329;transition:.2s;white-space:nowrap}
.btn:hover{opacity:.9}
.btn-primary{background:var(--a-primary);color:#fff}
.btn-primary:hover{background:var(--a-primary);filter:brightness(.92)}
.btn-danger{background:#f53f3f;color:#fff}
.btn-ok{background:#00b42a;color:#fff}
.btn-warn{background:#ff7d00;color:#fff}
.btn-sm{height:28px;padding:0 10px;font-size:12.5px;border-radius:6px}
.btn-lg{height:42px;padding:0 24px;font-size:15px}
.btn-block{width:100%}
.btn-ghost{background:#fff;border-color:#e5e6eb}

/* 表单 */
.form-row{margin-bottom:16px}
.form-label{display:block;font-size:13.5px;margin-bottom:7px;color:#4e5969;font-weight:500}
.form-control{width:100%;height:38px;border:1px solid #e5e6eb;border-radius:7px;padding:0 12px;background:#fff;transition:.2s}
.form-control:focus{border-color:var(--a-primary);box-shadow:0 0 0 3px rgba(22,93,255,.09)}
textarea.form-control{height:auto;min-height:100px;padding:10px 12px;line-height:1.7;resize:vertical}
select.form-control{height:38px}
.form-hint{font-size:12px;color:#86909c;margin-top:6px;line-height:1.7}
.form-grid{display:grid;gap:16px}
.form-grid.c2{grid-template-columns:1fr 1fr}
.form-grid.c3{grid-template-columns:repeat(3,1fr)}
.form-grid.c4{grid-template-columns:repeat(4,1fr)}
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:13.5px}
.switch input{display:none}
.switch .track{width:42px;height:23px;border-radius:12px;background:#d5dae2;position:relative;transition:.2s}
.switch .track::after{content:'';position:absolute;left:2px;top:2px;width:19px;height:19px;border-radius:50%;background:#fff;transition:.2s}
.switch input:checked + .track{background:var(--a-primary)}
.switch input:checked + .track::after{transform:translateX(19px)}
.color-input{display:flex;gap:8px;align-items:center}
.color-input input[type=color]{width:44px;height:38px;padding:2px;border:1px solid #e5e6eb;border-radius:7px;background:#fff;cursor:pointer}
.settings-group{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:start}
.settings-tabs{background:#fff;border:1px solid #e5e6eb;border-radius:10px;padding:8px;position:sticky;top:80px}
.settings-tabs a{display:block;padding:10px 14px;border-radius:7px;font-size:13.5px;color:#4e5969}
.settings-tabs a:hover{background:#f7f8fa}
.settings-tabs a.is-active{background:rgba(22,93,255,.1);color:var(--a-primary);font-weight:600}

/* 表格 */
.table{background:#fff;border:1px solid #e5e6eb;border-radius:10px;overflow:hidden}
.table th{background:#f7f8fa;font-size:13px;font-weight:600;padding:12px 14px;text-align:left;color:#4e5969;white-space:nowrap}
.table td{padding:12px 14px;border-top:1px solid #eef0f3;font-size:13.5px;vertical-align:middle}
.table tr:hover td{background:#fafbfc}
.table .op a{color:var(--a-primary);margin-right:10px;font-size:13px}
.table .op a.del{color:#f53f3f}
.thumb{width:52px;height:52px;object-fit:cover;border-radius:6px;background:#f2f3f5;border:1px solid #eef0f3}

/* 标签 */
.tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;background:#f2f3f5;color:#4e5969}
.tag-ok{background:#e8ffea;color:#00b42a}
.tag-warn{background:#fff7e8;color:#ff7d00}
.tag-err{background:#ffece8;color:#f53f3f}
.tag-info{background:#e8f0ff;color:var(--a-primary)}
.tag-gray{background:#f2f3f5;color:#86909c}

/* 提示 */
.alert{padding:12px 16px;border-radius:8px;font-size:13.5px;margin-bottom:18px}
.alert-ok{background:#e8ffea;color:#0f8a43;border:1px solid #b7ebc9}
.alert-err{background:#fff1f0;color:#d32f2f;border:1px solid #ffccc7}

/* 分页 */
.pager{display:flex;gap:6px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.pager a,.pager span{min-width:32px;height:32px;padding:0 10px;border:1px solid #e5e6eb;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;background:#fff}
.pager a:hover{border-color:var(--a-primary);color:var(--a-primary)}
.pager .cur{background:var(--a-primary);border-color:var(--a-primary);color:#fff}
.pager .dis{opacity:.5}
.pager span:not(.cur):not(.dis){opacity:.5}

/* 空状态 */
.empty{text-align:center;padding:50px 20px;color:#86909c}

/* 登录页 */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#165DFF,#0E42D2);padding:20px}
.login-box{background:#fff;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.2);padding:36px 34px;width:100%;max-width:400px}
.login-box h1{font-size:21px;margin-bottom:6px;text-align:center}
.login-box p{text-align:center;color:#86909c;font-size:13px;margin-bottom:24px}
.login-box .btn{width:100%;height:44px;margin-top:6px}

/* 富文本 */
.editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;background:#f7f8fa;border:1px solid #e5e6eb;border-bottom:0;border-radius:7px 7px 0 0}
.editor-toolbar button{height:30px;padding:0 11px;border-radius:5px;background:#fff;border:1px solid #e5e6eb;font-size:12.5px;cursor:pointer}
.editor-toolbar button:hover{border-color:var(--a-primary);color:var(--a-primary)}
.editor-area{min-height:320px;border:1px solid #e5e6eb;border-radius:0 0 7px 7px;padding:16px;overflow-y:auto;background:#fff;line-height:1.9}
.editor-area:focus{border-color:var(--a-primary)}
.editor-area h2{font-size:20px;margin:.8em 0 .5em}
.editor-area img{max-width:100%;border-radius:6px}
.editor-area table{border:1px solid #e5e6eb}
.editor-area td,.editor-area th{border:1px solid #e5e6eb;padding:8px 12px}

/* 图片选择器 */
.img-picker{display:flex;flex-direction:column;gap:8px}
.img-preview{width:110px;height:110px;border:1px dashed #d5dae2;border-radius:8px;background:#f7f8fa;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.img-preview img{width:100%;height:100%;object-fit:cover}
.img-preview span{font-size:12px;color:#86909c}

/* 图片组 */
.img-list{display:flex;flex-wrap:wrap;gap:10px}
.img-item{position:relative;width:88px;height:88px;border-radius:8px;overflow:hidden;border:1px solid #e5e6eb}
.img-item img{width:100%;height:100%;object-fit:cover}
.img-item button{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;border:0;font-size:12px;line-height:1;cursor:pointer}

/* 交互辅助 */
.row-flex{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mt10{margin-top:10px}.mt16{margin-top:16px}.mt20{margin-top:20px}
.muted{color:#86909c;font-size:12.5px}
.badges{display:flex;gap:6px;flex-wrap:wrap}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}

/* 筛选栏 */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:0 18px 16px}
.filter-bar .form-control{width:auto;min-width:150px;height:36px}

/* 键值信息块 */
.kv-box{background:#f7f8fa;border:1px solid #eef0f3;border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.9;color:#4e5969;min-height:110px}
.kv-box b{color:#1f2329}

/* 代码块 */
.code-box{background:#1d2129;color:#c9cdd4;border-radius:8px;padding:14px;font-size:12.5px;line-height:1.7;overflow:auto;max-height:420px;font-family:ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-all}

/* 列表小工具条 */
.list-tip{font-size:12.5px;color:#86909c;padding:0 18px 12px}
.bar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.bar-row .spacer{flex:1}
.chart-bars{display:flex;align-items:flex-end;gap:8px;height:120px;padding:10px 0}
.chart-bars i{display:block;flex:1;background:linear-gradient(180deg,var(--a-primary),#7aa6ff);border-radius:4px 4px 0 0;min-height:4px}
.progress{height:8px;border-radius:6px;background:#eef0f3;overflow:hidden}
.progress i{display:block;height:100%;background:var(--a-primary)}

/* ============================================================
 * 通用 Tab / 弹窗 / 开关组 —— 订单调度、短信管理、接单工作台共用
 * ============================================================ */
.tabs{display:flex;gap:8px;margin:16px 0 12px;flex-wrap:wrap}
.tabs .tab{padding:8px 16px;border-radius:8px;background:#f2f3f5;color:#4e5969;text-decoration:none;font-size:13px}
.tabs .tab:hover{background:#e8eaed}
.tabs .tab.is-active{background:var(--a-primary);color:#fff}

.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:999;align-items:center;justify-content:center}
.modal.is-open{display:flex}
.modal-box{background:#fff;border-radius:12px;padding:22px;width:min(480px,92vw);max-height:88vh;overflow:auto}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:16px}
.modal-x{color:#86909c;text-decoration:none;font-size:22px;line-height:1}
.modal-box.wide{width:min(760px,94vw)}

/* 键值信息行 */
.kv-row{display:flex;gap:10px;font-size:13px;line-height:2;color:#4e5969}
.kv-row .k{color:#86909c;min-width:88px}

/* 提示条（.alert / .alert-ok / .alert-err 已有定义，这里只补告警色与链接样式） */
.alert-warn{background:#fff7e6;color:#d46b08;border:1px solid #ffd591}
.alert a{color:inherit;text-decoration:underline}

@media (max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.form-grid.c4{grid-template-columns:repeat(2,1fr)}.settings-group{grid-template-columns:1fr}.settings-tabs{position:static}.g2{grid-template-columns:1fr}}
@media (max-width:820px){
    .admin-side{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .25s;z-index:60}
    body.admin-nav-open .admin-side{transform:none}
    .admin-toggle{display:flex}
    .admin-body{padding:14px}
    .form-grid.c2,.form-grid.c3,.form-grid.c4{grid-template-columns:1fr}
    .stats{grid-template-columns:1fr}
    .table{display:block;overflow-x:auto;white-space:nowrap}
}
