
/* 食安掌中宝后台统一视觉规范 v1
 * 只负责视觉与布局，不改变接口、路由和业务逻辑。
 */
:root{
  --sa-primary:#1677ff;
  --sa-primary-hover:#4096ff;
  --sa-bg:#f5f7fa;
  --sa-card:#fff;
  --sa-border:#e8edf3;
  --sa-text:#1f2937;
  --sa-muted:#667085;
  --sa-radius:8px;
  --sa-shadow:0 2px 12px rgba(16,24,40,.06);
}
body.admin-page{
  margin:0!important;
  background:var(--sa-bg)!important;
  color:var(--sa-text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}

/* ---------- 统一滚动条（页面、表格、弹窗内容） ---------- */
::-webkit-scrollbar{
  width:10px;
  height:10px;
}
::-webkit-scrollbar-track{
  background:transparent;
}
::-webkit-scrollbar-thumb{
  background-color:#c7d2de;
  border:2px solid transparent;               /* 与 background-clip 配合，得到细圆条 */
  border-radius:999px;
  background-clip:content-box;
}
::-webkit-scrollbar-thumb:hover{
  background-color:#9fb0c3;
}
::-webkit-scrollbar-corner,
::-webkit-scrollbar-button{
  display:none;
  width:0;
  height:0;
}
/* 侧边栏保持无滚动条（与 index.css 的设计一致） */
.scroll_content{
  scrollbar-width:none;
}
.scroll_content::-webkit-scrollbar{
  width:0;
  height:0;
}
.admin-page .layui-card,
.admin-page .panel,
.admin-page .box,
.admin-page .content-box,
.admin-page .table-container{
  background:var(--sa-card);
  border:1px solid var(--sa-border);
  border-radius:var(--sa-radius);
  box-shadow:var(--sa-shadow);
}
.admin-page .layui-card-header{
  min-height:48px;
  line-height:48px;
  padding:0 18px;
  border-bottom:1px solid var(--sa-border);
  font-weight:600;
}
.admin-page .layui-card-body{padding:18px;}
.admin-page .layui-form-label{color:#475467;font-weight:500;}
.admin-page .layui-input,
.admin-page .layui-select,
.admin-page select,
.admin-page .layui-textarea{
  height:38px;
  border:1px solid #d9e1ea;
  border-radius:6px;
  transition:border-color .2s,box-shadow .2s;
}
.admin-page .layui-textarea{height:auto;min-height:100px;}
.admin-page .layui-input:focus,
.admin-page .layui-select:focus,
.admin-page select:focus,
.admin-page .layui-textarea:focus{
  border-color:var(--sa-primary)!important;
  box-shadow:0 0 0 2px rgba(22,119,255,.10);
}

/* ---------- 统一 select 下拉控件（后台为原生 select，无需 form.render） ---------- */
.admin-page select{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  min-width:120px;
  padding:0 30px 0 12px;
  background-color:#fff;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-size:12px 12px;
  color:var(--sa-text);
  font-size:14px;
  line-height:normal;
  cursor:pointer;
  box-sizing:border-box;
  vertical-align:middle;
  text-overflow:ellipsis;
}
.admin-page select:hover{border-color:#b9c6d4;}
.admin-page select:focus{
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231677ff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}
.admin-page select:disabled{
  background-color:#f5f7fa;
  border-color:var(--sa-border);
  color:var(--sa-muted);
  cursor:not-allowed;
}
.admin-page select option{
  padding:8px 10px;
  background:#fff;
  color:var(--sa-text);
  font-size:14px;
}
/* 必填且未选择时，占位项（如“请选择”）显示为灰色 */
.admin-page select:required:invalid{color:var(--sa-muted);}
.admin-page select::-ms-expand{display:none;}
.admin-page select[multiple],
.admin-page select[size]{
  height:auto;
  min-height:38px;
  padding:6px 10px;
  background-image:none;
  cursor:default;
}
/* 表单内的下拉框与同排输入框等宽 */
.admin-page .layui-input-block>select,
.admin-page .layui-input-inline>select{width:100%;}

/* ---------- 统一按钮体系（layui-btn 与 bootstrap .btn 共用一套视觉） ---------- */
.admin-page .layui-btn,
.admin-page .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  height:38px;
  min-height:38px;
  padding:0 18px;
  border:1px solid transparent;
  border-radius:6px;
  background-color:var(--sa-primary);
  background-image:none;
  color:#fff;
  font-size:14px;
  font-weight:500;
  line-height:1;
  white-space:nowrap;
  vertical-align:middle;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(16,24,40,.06);
  transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .08s;
  box-sizing:border-box;
}
.admin-page .layui-btn:hover,
.admin-page .btn:hover{
  background-color:var(--sa-primary-hover);
  color:#fff;
}
.admin-page .layui-btn:active,
.admin-page .btn:active{
  transform:translateY(1px);
  box-shadow:none;
}
.admin-page .layui-btn:focus,
.admin-page .btn:focus{outline:none;}
.admin-page .layui-btn:focus-visible,
.admin-page .btn:focus-visible{
  box-shadow:0 0 0 3px rgba(22,119,255,.18);
}
/* 次要按钮：白底描边 */
.admin-page .layui-btn-primary,
.admin-page .btn-default{
  background-color:#fff;
  border-color:#d9e1ea;
  color:#344054;
  box-shadow:none;
}
.admin-page .layui-btn-primary:hover,
.admin-page .btn-default:hover{
  background-color:#f2f7ff;
  border-color:#a8c4ee;
  color:var(--sa-primary);
}
/* 暖色 / 警告 */
.admin-page .layui-btn-warm,
.admin-page .btn-warning{
  background-color:#f59e0b;
  border-color:#f59e0b;
  color:#fff;
}
.admin-page .layui-btn-warm:hover,
.admin-page .btn-warning:hover{background-color:#fbbf24;border-color:#fbbf24;}
/* 危险 */
.admin-page .layui-btn-danger,
.admin-page .btn-danger{
  background-color:#ef4444;
  border-color:#ef4444;
  color:#fff;
}
.admin-page .layui-btn-danger:hover,
.admin-page .btn-danger:hover{background-color:#f87171;border-color:#f87171;}
/* 成功 / 信息（bootstrap 常用） */
.admin-page .btn-success{background-color:#16a34a;border-color:#16a34a;color:#fff;}
.admin-page .btn-success:hover{background-color:#22c55e;border-color:#22c55e;}
.admin-page .btn-info{background-color:#0ea5e9;border-color:#0ea5e9;color:#fff;}
.admin-page .btn-info:hover{background-color:#38bdf8;border-color:#38bdf8;}
/* 纯文字按钮 */
.admin-page .btn-link{
  height:auto;
  min-height:auto;
  padding:0 6px;
  background-color:transparent;
  border-color:transparent;
  box-shadow:none;
  color:var(--sa-primary);
  font-weight:500;
}
.admin-page .btn-link:hover{background-color:transparent;color:var(--sa-primary-hover);text-decoration:underline;}
/* 尺寸：sm / xs（表格操作列）/ lg */
.admin-page .layui-btn-sm,
.admin-page .btn-sm{height:32px;min-height:32px;padding:0 14px;font-size:13px;}
.admin-page .layui-btn-xs,
.admin-page .btn-xs{height:26px;min-height:26px;padding:0 10px;font-size:12px;border-radius:5px;gap:3px;}
.admin-page .layui-btn-lg,
.admin-page .btn-lg{height:44px;min-height:44px;padding:0 24px;font-size:15px;}
/* 形状：胶囊 / 全宽 */
.admin-page .layui-btn-radius,
.admin-page .btn-rounded{border-radius:999px;}
.admin-page .layui-btn-fluid,
.admin-page .btn-block{width:100%;}
/* 图标：间距由 flex gap 统一控制，图标不撑高按钮 */
.admin-page .layui-btn>i.layui-icon,
.admin-page .btn>i.fa,
.admin-page .btn>i.glyphicon{line-height:1;}
/* 禁用态 */
.admin-page .layui-btn-disabled,
.admin-page .layui-btn.disabled,
.admin-page .layui-btn[disabled],
.admin-page .btn.disabled,
.admin-page .btn[disabled]{
  background-color:#f2f4f7!important;
  border-color:#e4e7ec!important;
  color:#98a2b3!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
  transform:none!important;
}
/* 弹窗（layer）按钮 */
.admin-page .layui-layer-btn{padding:0 16px 14px;}
.admin-page .layui-layer-btn a{
  height:34px;
  line-height:32px;
  min-width:78px;
  padding:0 18px;
  border:1px solid #d9e1ea;
  border-radius:6px;
  background-color:#fff;
  color:#344054;
  font-size:14px;
  font-weight:500;
  text-align:center;
  box-shadow:none;
  transition:background-color .18s,border-color .18s,color .18s;
}
.admin-page .layui-layer-btn a:hover{background-color:#f2f7ff;border-color:#a8c4ee;color:var(--sa-primary);}
.admin-page .layui-layer-btn .layui-layer-btn0{background-color:var(--sa-primary);border-color:var(--sa-primary);color:#fff;}
.admin-page .layui-layer-btn .layui-layer-btn0:hover{background-color:var(--sa-primary-hover);border-color:var(--sa-primary-hover);color:#fff;}
/* 兼容：box 头部工具按钮保持无边框图标样式 */
.admin-page .btn-box-tool,
.admin-page .btn-box-tool:hover,
.admin-page .btn-box-tool:active{
  height:auto;
  min-height:0;
  padding:5px;
  background-color:transparent;
  border-color:transparent;
  box-shadow:none;
  color:#606c84;
  font-size:12px;
  transform:none;
}
.admin-page .btn-box-tool:hover{color:var(--sa-primary);}
/* 兼容：RuoYi 搜索栏（.select-list）内的按钮保持原有尺寸 */
.admin-page .select-list .btn,
.admin-page .select-list .btn:hover,
.admin-page .select-list .btn:focus{
  height:30px;
  min-height:30px;
  padding:5px 10px;
  font-size:13px;
  border-radius:4px;
  box-shadow:none;
}
.admin-page .select-list .btn-default{
  background-color:#fff;
  border:1px solid #ddd;
  color:#555;
}
.admin-page .select-list .btn-default:hover{
  background-color:#f2f7ff;
  border-color:#a8c4ee;
  color:var(--sa-primary);
}
.admin-page .layui-table-view,
.admin-page .layui-table-box{
  border-color:var(--sa-border);
}
.admin-page .layui-table thead tr{
  background:#f8fafc;
}
.admin-page .layui-table th{
  color:#344054;
  font-weight:600;
}
.admin-page .layui-table td,
.admin-page .layui-table th{height:46px;}
.admin-page .layui-form-item{margin-bottom:16px;}
.admin-page .search-bar,
.admin-page .toolbar,
.admin-page .page-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.admin-page .search-bar .layui-input{width:220px;}
.admin-page .layui-laypage a,
.admin-page .layui-laypage span{
  border-radius:4px;
  margin:0 2px;
}
.admin-page .layui-laypage a,
.admin-page .layui-laypage .layui-laypage-curr{
  border:1px solid var(--sa-border);
  background:#fff;
  transition:border-color .18s,color .18s,background-color .18s;
}
.admin-page .layui-laypage a:hover{
  border-color:#a8c4ee;
  color:var(--sa-primary);
}
.admin-page .layui-laypage .layui-laypage-curr .layui-laypage-em{
  background-color:var(--sa-primary);
  border-color:var(--sa-primary);
  border-radius:4px;
}
.admin-page .layui-laypage .layui-laypage-curr em{color:#fff;}
.admin-page .layui-laypage-skip .layui-input{
  height:28px;
  min-width:44px;
  width:44px;
  padding:0 6px;
  border-radius:4px;
  text-align:center;
  vertical-align:middle;
}
.admin-page .layui-laypage-btn{height:28px;line-height:26px;border-radius:4px;}
.admin-page .empty-state{
  padding:48px 20px;
  text-align:center;
  color:var(--sa-muted);
}
.admin-page img{max-width:100%;object-fit:cover;}
@media (max-width: 768px){
  .admin-page .layui-card-body{padding:12px;}
  .admin-page .search-bar .layui-input{width:100%;}
  .admin-page .layui-form-label{width:80px;}
  .admin-page .layui-input-block{margin-left:95px;}
}
