/* ==========================================================================
   Davinci 达芬奇 · 后台统一主题层（商户 + 管理）
   企业级 Ant Design 风格：深藏青侧栏 / 品牌蓝 #1677FF / 浅灰白卡片
   在 head.php 最后引入，确保优先级
   ========================================================================== */

:root{
	--dv-brand:#1677FF;        /* 主色：Ant 品牌蓝 */
	--dv-brand-hi:#4096FF;     /* hover 蓝 */
	--dv-brand-dark:#0958D9;   /* 深蓝 */
	--dv-brand-light:#E6F4FF;  /* 主色浅底 */
	--dv-deep:#001529;         /* 侧栏深藏青 */
	--dv-deep-2:#002140;       /* 侧栏 hover 层 */
	--dv-ink:#333333;          /* 标题文字 */
	--dv-ink-2:#606266;        /* 正文文字 */
	--dv-ink-3:#909399;        /* 辅助文字 */
	--dv-bg:#F5F7FA;           /* 页面背景 */
	--dv-line:#E5E6EB;         /* 通用边框 */
	--dv-line-2:#F0F2F5;       /* 浅边框 */
	--dv-success:#52C41A;      /* 成功 */
	--dv-warn:#FAAD14;         /* 警告 */
	--dv-danger:#FF4D4F;       /* 错误 */
	--dv-ease:cubic-bezier(0.16,1,0.3,1);
}

/* ===== 基础 ===== */
body{
	font-family:"Source Han Sans SC","Source Han Sans CN","Noto Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif !important;
	color:var(--dv-ink);
	background-color:var(--dv-bg);
}
.navbar-brand,.app-header,.navi,.panel-title,h1,h2,h3,h4,h5,.font-bold{
	font-family:"Source Han Sans SC","Source Han Sans CN","Noto Sans SC","PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	letter-spacing:-.1px;
}
a{color:var(--dv-brand);transition:color .18s var(--dv-ease);}
a:hover,a:focus{color:var(--dv-brand-dark);text-decoration:none;}

/* 正文 / 辅助字号与行高 */
body{font-size:14px;line-height:1.6;}
.text-muted{color:var(--dv-ink-3) !important;}

/* 金额 / 数据等宽数字 */
.table{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";}

/* ===== 主按钮：品牌蓝实底 + 白字 ===== */
.btn-primary{
	color:#FFFFFF !important;
	background-color:var(--dv-brand) !important;
	border:1px solid var(--dv-brand) !important;
	font-weight:500;
	box-shadow:0 2px 0 rgba(0,0,0,0.015);
	transition:background-color .2s var(--dv-ease),border-color .2s,box-shadow .25s,transform .15s;
}
.btn-primary:hover,.btn-primary:focus,.btn-primary:active{
	background-color:var(--dv-brand-hi) !important;
	border-color:var(--dv-brand-hi) !important;
	box-shadow:0 4px 12px rgba(22,119,255,0.22);
	color:#fff !important;
}
.btn-primary:active{transform:translateY(1px);}

/* ===== 信息色（AdminLTE 的 info 蓝 → 品牌蓝）===== */
.bg-info{background-color:var(--dv-brand) !important;color:#fff;}
.bg-info.lt,.bg-info .lt{background-color:var(--dv-brand-hi) !important;}
.bg-info.lter,.bg-info .lter{background-color:#69B1FF !important;}
.bg-info.dk,.bg-info .dk{background-color:var(--dv-brand-dark) !important;color:#fff;}

.btn-info{
	color:#fff !important;
	background-color:var(--dv-brand) !important;
	border:1px solid var(--dv-brand) !important;
}
.btn-info:hover,.btn-info:focus,.btn-info:active{
	background-color:var(--dv-brand-hi) !important;
	border-color:var(--dv-brand-hi) !important;
	box-shadow:0 4px 12px rgba(22,119,255,0.22);
}

/* ===== 深藏青侧栏 / 顶栏 ===== */
.bg-black{background-color:var(--dv-deep) !important;color:#fff;}
.bg-black.lt,.bg-black .lt{background-color:var(--dv-deep-2) !important;}
.bg-black.lter,.bg-black .lter{background-color:#003465 !important;}
.bg-black.dk,.bg-black .dk{background-color:#000C17 !important;}

.bg-dark{background-color:var(--dv-deep-2) !important;color:#fff;}
.bg-dark.lt,.bg-dark .lt{background-color:#003465 !important;}
.bg-dark.lter,.bg-dark .lter{background-color:#004078 !important;}
.bg-dark.dk,.bg-dark .dk{background-color:var(--dv-deep) !important;}
.bg-dark.dker,.bg-dark .dker{background-color:#000C17 !important;}

/* ===== 成功绿 ===== */
.bg-success{background-color:var(--dv-success) !important;color:#fff;}
.btn-success{
	color:#fff !important;
	background-color:var(--dv-success) !important;
	border-color:var(--dv-success) !important;
}
.btn-success:hover,.btn-success:focus,.btn-success:active{
	background-color:#389E0D !important;
	border-color:#389E0D !important;
}
.text-success{color:var(--dv-success) !important;}

/* ===== 警告 ===== */
.text-warning{color:var(--dv-warn) !important;}
.bg-warning{background-color:var(--dv-warn) !important;color:#fff;}
.btn-warning{
	background-color:var(--dv-warn) !important;
	border-color:var(--dv-warn) !important;
	color:#fff !important;
}
.btn-warning:hover,.btn-warning:focus{background-color:#D48806 !important;border-color:#D48806 !important;}

/* ===== 危险 ===== */
.text-danger{color:var(--dv-danger) !important;}
.btn-danger{background-color:var(--dv-danger) !important;border-color:var(--dv-danger) !important;color:#fff !important;}
.btn-danger:hover,.btn-danger:focus{background-color:#D9363E !important;border-color:#D9363E !important;}

/* 文字暗色变量兼容（企业级灰阶） */
.text-info-dk{color:var(--dv-brand-dark) !important;}
.text-primary-dk{color:var(--dv-brand-dark) !important;}
.text-success-dk{color:var(--dv-success) !important;}

/* ===== 管理后台：浅色 navbar → 白色顶栏 ===== */
.navbar-default{
	background-color:#FFFFFF !important;
	border-color:var(--dv-line) !important;
	box-shadow:0 1px 4px rgba(0,0,0,0.06);
}
.navbar-default .navbar-brand{color:var(--dv-ink) !important;font-weight:600;}
.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:var(--dv-brand) !important;}
.navbar-default .navbar-nav>li>a{color:var(--dv-ink-2);}
.navbar-default .navbar-nav>li>a:hover,
.navbar-default .navbar-nav>li>a:focus{color:var(--dv-brand);background-color:var(--dv-brand-light);}
.navbar-default .navbar-nav>.active>a,
.navbar-default .navbar-nav>.active>a:hover,
.navbar-default .navbar-nav>.active>a:focus{
	background-color:var(--dv-brand-light);
	color:var(--dv-brand);
}
.navbar-default .navbar-nav>.open>a,
.navbar-default .navbar-nav>.open>a:hover,
.navbar-default .navbar-nav>.open>a:focus{
	background-color:var(--dv-brand-light);
	color:var(--dv-brand);
}
.navbar-default .dropdown-menu{
	background-color:#ffffff;
	border:1px solid var(--dv-line);
	border-radius:6px;
	box-shadow:0 6px 16px rgba(0,0,0,0.10);
}
.navbar-default .navbar-toggle{border-color:var(--dv-line);}
.navbar-default .navbar-toggle .icon-bar{background-color:var(--dv-ink-2);}
.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:var(--dv-brand-light);}

/* ===== 商户后台：AdminLTE 侧栏（深藏青）===== */
.app-aside{
	background:linear-gradient(180deg,var(--dv-deep) 0%,#001529 100%) !important;
}
.app-aside .navbar-brand{color:#fff !important;font-weight:600;}
.navi .nav>li>a{
	color:rgba(255,255,255,0.72);
	border-left:3px solid transparent;
	transition:color .18s var(--dv-ease),background .2s,border-color .2s;
}
.navi .nav>li>a:hover{
	background:rgba(22,119,255,0.14);
	color:#fff;
}
.navi .nav>li.active>a{
	background:linear-gradient(90deg,rgba(22,119,255,0.28),rgba(22,119,255,0.06));
	color:#fff;
	border-left:3px solid var(--dv-brand);
}
.navi .nav-sub>li>a{color:rgba(255,255,255,0.55);}
.navi .nav-sub>li>a:hover{color:#fff;background:transparent;}
.navi .nav-sub>li.active>a{color:#69B1FF;}

/* 侧栏折叠按钮动效 */
.nav-brand{padding-top:0;padding-bottom:0;}

/* ===== 顶栏品牌 ===== */
.navbar-brand i{display:none;}

/* ===== 卡片 / 面板：白底精致化 ===== */
.panel{
	border:1px solid var(--dv-line);
	border-radius:8px;
	box-shadow:0 1px 4px rgba(0,0,0,0.04);
	overflow:hidden;
	background:#fff;
}
.panel-heading{
	border-radius:8px 8px 0 0;
	border-bottom:1px solid var(--dv-line-2);
}
.panel-primary{border-color:rgba(22,119,255,0.35);}
.panel-primary>.panel-heading{
	background-color:var(--dv-brand);
	border-color:transparent;
	color:#fff;
}
.panel-primary>.panel-heading .panel-title{color:#fff;font-weight:600;}
.panel-default>.panel-heading{background-color:#FAFAFA;color:var(--dv-ink);}

/* ===== 按钮整体圆角 / 精致 ===== */
.btn{border-radius:6px;transition:all .18s var(--dv-ease);}
.btn-default{border-color:var(--dv-line);color:var(--dv-ink-2);background:#fff;}
.btn-default:hover,.btn-default:focus{
	border-color:var(--dv-brand);
	color:var(--dv-brand);
	background:#fff;
	box-shadow:0 2px 8px rgba(22,119,255,0.12);
}

/* ===== 表单：焦点品牌蓝 ===== */
.form-control{
	border-color:var(--dv-line);
	border-radius:6px;
	box-shadow:none;
	transition:border-color .2s,box-shadow .2s;
	color:var(--dv-ink);
}
.form-control:focus{
	border-color:var(--dv-brand);
	box-shadow:0 0 0 3px rgba(22,119,255,0.12);
}
.input-group-addon{border-color:var(--dv-line);background-color:#FAFAFA;color:var(--dv-ink-3);}

/* ===== 表格：现代感（浅色表头）===== */
.table>thead>tr>th{
	background-color:#FAFAFA;
	color:var(--dv-ink-2);
	border-bottom:1px solid var(--dv-line) !important;
	font-weight:600;
	font-size:13px;
}
.table-striped>tbody>tr:nth-of-type(odd){background-color:#FAFAFA;}
.table-striped>tbody>tr:nth-of-type(even){background-color:#fff;}
.table>tbody>tr:hover{background-color:var(--dv-brand-light);}
.table-bordered{border-color:var(--dv-line-2);}
.table-bordered>thead>tr>th,
.table-bordered>tbody>tr>td{border-color:var(--dv-line-2);}

/* ===== 分页 ===== */
.pagination>.active>a,.pagination>.active>span,
.pagination>.active>a:hover,.pagination>.active>span:hover,
.pagination>.active>a:focus,.pagination>.active>span:focus{
	background-color:var(--dv-brand);
	border-color:var(--dv-brand);
	color:#fff;
}
.pagination>li>a,.pagination>li>span{color:var(--dv-ink-2);border-color:var(--dv-line);transition:all .18s;}
.pagination>li>a:hover{color:var(--dv-brand);border-color:var(--dv-brand);background:#fff;}

/* ===== 徽章 / 标签 ===== */
.label-success,.label-primary{background-color:var(--dv-brand) !important;}
.label-info{background-color:var(--dv-brand-hi) !important;}
.label-warning{background-color:var(--dv-warn) !important;}
.label-danger{background-color:var(--dv-danger) !important;}
.badge{border-radius:10px;}

/* ===== 警告框 / 其他 ===== */
.alert{border-radius:8px;border:1px solid transparent;}
.alert-success{background-color:#F6FFED;border-color:#B7EB8F;color:#389E0D;}
.alert-info{background-color:var(--dv-brand-light);border-color:#91CAFF;color:var(--dv-brand-dark);}
.alert-warning{background-color:#FFFBE6;border-color:#FFE58F;color:#D48806;}
.alert-danger{background-color:#FFF1F0;border-color:#FFA39E;color:#D9363E;}
.well{border-radius:8px;border:1px solid var(--dv-line);box-shadow:none;background:#FAFAFA;}

/* 下拉菜单统一精致 */
.dropdown-menu{border-radius:6px;border:1px solid var(--dv-line);box-shadow:0 6px 16px rgba(0,0,0,0.10);}

/* 登录页品牌副标题 */
.dv-admin-sub{
	font-size:12px;font-weight:400;color:var(--dv-ink-3);
	border-left:1px solid var(--dv-line);margin-left:8px;padding-left:10px;
}

/* 滚动条（Webkit）精致化 */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:6px;}
::-webkit-scrollbar-thumb:hover{background:rgba(22,119,255,0.5);}
::-webkit-scrollbar-track{background:transparent;}

/* ===== 隐藏侧栏导航项左侧小图标 ===== */
.app-aside .navi ul.nav > li > a > i{
	display:none;
}

/* ==========================================================================
   管理后台：左侧导航 + 内容铺满布局
   ========================================================================== */
body.dv-admin{
	margin:0;
	padding-left:240px;
	padding-top:56px;
	background:var(--dv-bg);
	font-family:"Source Han Sans SC","Source Han Sans CN","Noto Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

/* 左侧导航栏 */
.dv-admin-aside{
	position:fixed;left:0;top:0;bottom:0;width:240px;
	background:#001529;z-index:1001;overflow-y:auto;
	box-shadow:2px 0 10px rgba(0,0,0,0.06);
}
.dv-admin-aside::-webkit-scrollbar{width:6px;}
.dv-admin-aside::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.16);border-radius:3px;}
.dv-admin-aside::-webkit-scrollbar-track{background:transparent;}

.dv-aside-brand{
	height:64px;display:flex;align-items:center;gap:12px;
	padding:0 20px;border-bottom:1px solid rgba(255,255,255,0.08);
}
.dv-aside-brand img{width:34px;height:34px;border-radius:8px;object-fit:cover;background:#fff;}
.dv-aside-brand-txt b{display:block;font-size:15px;color:#fff;font-weight:600;line-height:1.2;}
.dv-aside-brand-txt span{font-size:12px;color:rgba(255,255,255,0.5);}

.dv-aside-nav{padding:8px 0 24px;}
.dv-nav-group{
	position:relative;padding:14px 20px 6px;
	color:rgba(255,255,255,0.45);font-size:12px;
	cursor:pointer;letter-spacing:.5px;
}
.dv-nav-group .fa{position:absolute;right:18px;top:16px;transition:transform .2s var(--dv-ease);}
.dv-nav-group[aria-expanded="true"] .fa{transform:rotate(180deg);}
.dv-nav-group[aria-expanded="true"]{color:rgba(255,255,255,0.6);}

.dv-aside-nav a{
	display:block;padding:10px 20px;
	color:rgba(255,255,255,0.72);font-size:13px;
	border-left:3px solid transparent;
	transition:all .18s var(--dv-ease);
}
.dv-aside-nav a:hover{
	color:#fff;background:rgba(255,255,255,0.04);text-decoration:none;
	border-left-color:rgba(255,255,255,0.2);
}
.dv-aside-nav a.active{
	color:#fff;background:rgba(22,119,255,0.78);
	border-left-color:#4096FF;
}

/* 顶栏 */
.dv-admin-header{
	position:fixed;left:240px;right:0;top:0;height:56px;
	background:#fff;z-index:1000;
	border-bottom:1px solid var(--dv-line);
	display:flex;align-items:center;gap:14px;padding:0 24px;
	box-shadow:0 1px 4px rgba(0,0,0,0.03);
}
.dv-admin-header .dv-header-title{font-size:15px;font-weight:600;color:var(--dv-ink);}
.dv-admin-header .dv-header-right{margin-left:auto;display:flex;align-items:center;gap:18px;}
.dv-header-user{color:var(--dv-ink-2);font-size:13px;}
.dv-header-user .fa{color:var(--dv-brand);margin-right:4px;}
.dv-header-logout{color:var(--dv-ink-2);font-size:13px;transition:color .18s;}
.dv-header-logout:hover{color:var(--dv-danger);text-decoration:none;}
.dv-aside-toggle{
	display:none;background:none;border:none;font-size:18px;
	color:var(--dv-ink);padding:0;cursor:pointer;line-height:1;
}

/* 内容区铺满 */
body.dv-admin .container,
body.dv-admin .container-fluid{
	width:auto !important;
	max-width:none !important;
	padding:24px !important;
}

/* 移动端：侧栏抽屉化 */
@media (max-width:768px){
	body.dv-admin{padding-left:0;padding-top:56px;}
	.dv-admin-header{left:0;}
	.dv-aside-toggle{display:inline-flex;align-items:center;justify-content:center;}
	.dv-admin-aside{
		width:260px;transform:translateX(-100%);
		transition:transform .25s var(--dv-ease);
	}
	body.dv-admin.aside-open .dv-admin-aside{transform:translateX(0);}
	.dv-aside-mask{
		display:none;position:fixed;inset:0;
		background:rgba(0,0,0,0.45);z-index:1000;
	}
	body.dv-admin.aside-open .dv-aside-mask{display:block;}
}