*{box-sizing:border-box;margin:0;padding:0}
:root{
  --pri:#1890FF;
  --pri-h:#40A9FF;
  --pri-l:#E6F7FF;
  --sb:#001529;
  --sb-h:#1890FF;
  --bg:#F0F2F5;
  --wh:#FFFFFF;
  --tx:#262626;
  --tx2:#8C8C8C;
  --bd:#D9D9D9;
  --ok:#52C41A;
  --err:#F5222D;
  --warn:#FAAD14;
  --r:4px;
  --sh:0 2px 8px rgba(0,0,0,.06);
}
html{font-size:14px}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--tx);height:100vh;overflow:hidden}
button{cursor:pointer;border:none;font-family:inherit;outline:none}
input,select{font-family:inherit;outline:none}
table{border-collapse:collapse;width:100%}
a{color:var(--pri);text-decoration:none}

/* 登录页 */
#loginPage{display:flex;height:100vh;background:linear-gradient(135deg,#001529,#1890FF);align-items:center;justify-content:center}
.login-box{background:#fff;border-radius:8px;padding:40px;width:380px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.login-box h1{color:var(--pri);font-size:22px;text-align:center;margin-bottom:24px;font-weight:600}
.login-box label{display:block;font-size:13px;margin-bottom:6px;color:var(--tx)}
.login-box input{width:100%;padding:10px 12px;border:1px solid var(--bd);border-radius:var(--r);margin-bottom:16px;font-size:14px;transition:.2s}
.login-box input:focus{border-color:var(--pri);box-shadow:0 0 0 2px var(--pri-l)}
.login-btn{width:100%;padding:12px;background:var(--pri);color:#fff;font-size:16px;font-weight:600;border-radius:var(--r);transition:.2s}
.login-btn:hover{background:var(--pri-h)}
.login-btn:disabled{opacity:.6;cursor:not-allowed}
.login-err{color:var(--err);text-align:center;margin-bottom:12px;display:none;font-size:13px;background:#FFF1F0;padding:8px;border-radius:var(--r)}

/* 主布局 */
#appLayout{display:none;height:100vh}
.app-wrap{display:flex;height:100%}
.sidebar{width:220px;background:var(--sb);color:#fff;flex-shrink:0;overflow-y:auto}
.sb-brand{padding:20px 16px;font-size:18px;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);letter-spacing:1px}
.sb-group{padding:14px 16px 6px;color:rgba(255,255,255,.4);font-size:11px;text-transform:uppercase;letter-spacing:1px}
.sb-item{padding:12px 16px;color:rgba(255,255,255,.75);cursor:pointer;font-size:14px;border-left:3px solid transparent;transition:.2s}
.sb-item:hover{background:rgba(255,255,255,.08);color:#fff}
.sb-item.active{color:#fff;border-left-color:var(--pri);background:rgba(24,144,255,.2)}
.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden}
.topbar{height:56px;background:#fff;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}
.topbar>span:first-child{font-size:16px;font-weight:600}
.topbar-user{display:flex;align-items:center;gap:12px;font-size:14px}
.content{flex:1;overflow-y:auto;padding:24px}
.page{display:none}
.page.active{display:block}

/* KPI 卡片 */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}
.kpi-card{background:#fff;border-radius:var(--r);padding:20px;box-shadow:var(--sh)}
.kpi-label{font-size:13px;color:var(--tx2);margin-bottom:6px}
.kpi-value{font-size:26px;font-weight:600}
.kpi-value.orange{color:var(--warn)}
.kpi-value.green{color:var(--ok)}
.kpi-value.red{color:var(--err)}

/* 卡片 */
.card{background:#fff;border-radius:var(--r);box-shadow:var(--sh);margin-bottom:20px}
.card-header{padding:14px 20px;border-bottom:1px solid var(--bd);font-size:15px;font-weight:600}
.card-body{padding:20px}

/* 表格 */
.tbl{font-size:13px}
.tbl th{background:#FAFAFA;padding:12px;text-align:left;color:var(--tx2);font-weight:500;border-bottom:1px solid var(--bd);white-space:nowrap}
.tbl td{padding:12px;border-bottom:1px solid #F0F0F0}
.tbl tbody tr:hover{background:#FAFAFA}
.tbl .empty-row td{text-align:center;color:var(--tx2);padding:40px}
.tbl .total-row td{background:#E6F7FF;font-weight:600}

/* 按钮 */
.btn{padding:6px 16px;border-radius:var(--r);font-size:13px;font-weight:500;transition:.2s;display:inline-flex;align-items:center;gap:4px}
.btn-pri{background:var(--pri);color:#fff}
.btn-pri:hover{background:var(--pri-h)}
.btn-sec{background:#fff;color:var(--tx);border:1px solid var(--bd)}
.btn-sec:hover{color:var(--pri);border-color:var(--pri)}
.btn-danger{background:var(--err);color:#fff}
.btn-ok{background:var(--ok);color:#fff}
.btn-sm{padding:4px 10px;font-size:12px}

/* 工具栏 */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;align-items:center}
.toolbar select,.toolbar input{padding:6px 12px;border:1px solid var(--bd);border-radius:var(--r);font-size:13px;background:#fff}
.toolbar select:focus,.toolbar input:focus{border-color:var(--pri)}

/* 模态框 */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;align-items:center;justify-content:center}
.modal-bg.show{display:flex}
.modal{background:#fff;border-radius:8px;width:480px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.modal-head{padding:16px 20px;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;align-items:center}
.modal-head h3{font-size:16px;font-weight:600}
.modal-head button{background:none;font-size:18px;color:var(--tx2);padding:4px 8px;border-radius:var(--r)}
.modal-head button:hover{background:#F5F5F5;color:var(--tx)}
.modal-body{padding:20px}
.modal-foot{padding:12px 20px;border-top:1px solid var(--bd);display:flex;justify-content:flex-end;gap:8px}

/* 表单 */
.fg{margin-bottom:16px}
.fg label{display:block;font-size:13px;color:var(--tx);margin-bottom:6px;font-weight:500}
.fg input,.fg select{width:100%;padding:8px 12px;border:1px solid var(--bd);border-radius:var(--r);font-size:14px;transition:.2s}
.fg input:focus,.fg select:focus{border-color:var(--pri);box-shadow:0 0 0 2px var(--pri-l)}
.fg input[disabled]{background:#F5F5F5;color:var(--tx2)}

/* Toast */
.toast-wrap{position:fixed;top:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:8px}
.toast{padding:12px 20px;border-radius:var(--r);color:#fff;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.15);animation:slideIn .3s;max-width:360px}
.toast.ok{background:var(--ok)}
.toast.err{background:var(--err)}
.toast.warn{background:var(--warn)}
.toast.info{background:var(--pri)}
@keyframes slideIn{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}

/* 徽章 */
.badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500}
.badge-ok{background:#F6FFED;color:var(--ok);border:1px solid #B7EB8F}
.badge-err{background:#FFF1F0;color:var(--err);border:1px solid #FFA39E}
.badge-warn{background:#FFF7E6;color:var(--warn);border:1px solid #FFD591}
.badge-info{background:#E6F7FF;color:var(--pri);border:1px solid #91D5FF}

/* 图表 */
.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:900px){.chart-row{grid-template-columns:1fr}}

/* Payer 总览弹窗 */
#payerSummaryBody{padding:20px}
#payerSummaryBody .summary-section{margin-bottom:20px}
#payerSummaryBody .summary-section h4{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--tx)}
#payerSummaryBody .summary-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #F0F0F0;font-size:13px}
#payerSummaryBody .summary-row:last-child{border-bottom:none}
#payerSummaryBody .summary-total{background:#E6F7FF;padding:12px;border-radius:var(--r);font-size:15px;font-weight:600;color:var(--pri);display:flex;justify-content:space-between}

/* ===== 顶部栏 logo ===== */
.topbar-logo {
  height: 32px;
  width: auto;
  margin-right: 12px;
}

/* ===== 顶部栏 logo ===== */
.topbar-logo {
  height: 32px;
  width: auto;
  margin-right: 12px;
}

/* ===== 侧边栏 logo ===== */
.sb-brand {
  padding: 20px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

/* ===== 侧边栏：浅蓝主题 ===== */
.sidebar {
  background: #E6F4FF !important;
  color: #0A2540 !important;
  border-right: 1px solid #D6ECFF;
}

/* 品牌区 */
.sb-brand {
  background: #E6F4FF !important;
  border-bottom: 1px solid #D6ECFF !important;
  color: #0A2540 !important;
}

/* 菜单项 */
.sb-item {
  color: #0A2540 !important;
  border-left: 3px solid transparent;
  transition: all 0.2s;
}

.sb-item:hover {
  background: rgba(24, 144, 255, 0.08) !important;
  color: #1890FF !important;
}

/* 选中菜单 */
.sb-item.active {
  background: #1890FF !important;
  color: #FFFFFF !important;
  border-left-color: #1890FF;
  font-weight: 600;
}

/* 分组标题（客户界面） */
.sb-group {
  color: #6BA3D6 !important;
}

/* ===== 侧边栏：深蓝主题 ===== */
.sidebar {
  background: #232F3E !important;
  color: #FFFFFF !important;
  border-right: none !important;
}

.sb-brand {
  background: #232F3E !important;
  border-bottom: 1px solid rgba(255,255,255,0.1) !important;
}

.sb-item {
  color: rgba(255,255,255,0.75) !important;
  border-left: 3px solid transparent;
  transition: all 0.2s;
}

.sb-item:hover {
  background: rgba(255,255,255,0.08) !important;
  color: #FFFFFF !important;
}

.sb-item.active {
  background: rgba(24, 144, 255, 0.2) !important;
  color: #FFFFFF !important;
  border-left-color: #1890FF !important;
  font-weight: 600;
}

.sb-group {
  color: rgba(255,255,255,0.4) !important;
}

/* logo 在深色背景上更亮 */
/* ===== 侧边栏 logo 位置 ===== */
.sb-brand {
  padding: 20px 16px 20px 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

/* ===== 侧边栏：AWS 控制台风格 ===== */
.sidebar {
  background: #232F3E !important;
  color: #FFFFFF !important;
  border-right: none !important;
}

.sb-brand {
  background: #232F3E !important;
  border-bottom: 1px solid rgba(255,255,255,0.1) !important;
  padding: 20px 16px 20px 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.sb-item {
  color: rgba(255,255,255,0.75) !important;
  border-left: 3px solid transparent;
  transition: all 0.2s;
  padding: 12px 16px !important;
}

.sb-item:hover {
  background: rgba(255,255,255,0.08) !important;
  color: #FFFFFF !important;
}

/* AWS 风格选中：橙色边框 + 浅橙底 */
.sb-item.active {
  background: rgba(255, 153, 0, 0.12) !important;
  color: #FF9900 !important;
  border-left-color: #FF9900 !important;
  font-weight: 600;
}

.sb-group {
  color: rgba(255,255,255,0.4) !important;
  padding: 14px 16px 6px !important;
  font-size: 11px !important;
  letter-spacing: 1px !important;
}

/* ===== 侧边栏：渐变蓝主题（最终版） ===== */
.sidebar {
  background: linear-gradient(180deg, #0A2540 0%, #1E5288 100%) !important;
  color: #FFFFFF !important;
  border-right: none !important;
  position: relative;
  overflow-y: auto;
}

/* 品牌区 */
.sb-brand {
  background: transparent !important;
  border-bottom: 1px solid rgba(255,255,255,0.1) !important;
  padding: 20px 16px 20px 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

/* 菜单项 */
.sb-item {
  color: rgba(255,255,255,0.75) !important;
  border-left: 3px solid transparent;
  transition: all 0.2s;
}

.sb-item:hover {
  background: rgba(255,255,255,0.08) !important;
  color: #FFFFFF !important;
}

/* 选中 */
.sb-item.active {
  background: rgba(24, 144, 255, 0.25) !important;
  color: #FFFFFF !important;
  border-left-color: #4DA3FF !important;
  font-weight: 600;
}

/* 分组标题 */
.sb-group {
  color: rgba(255,255,255,0.4) !important;
}

/* logo 反白 */


/* ===== 侧边栏 logo 最终版（原色） ===== */
.sb-logo {
  height: 32px;
  width: auto;
  max-width: 170px;
  margin-left: 0;
}
