/* Apple 高级风格：简洁留白、毛玻璃、柔和阴影 */
:root{
  --bg:#f5f6f7; --panel:#fff; --text:#111827; --muted:#6b7280; --border:#e5e7eb; --brand:#0ea5e9;
}
html,body{height:100%;}
body{background:var(--bg); color:var(--text);}

/* 登录页专属（现代蓝色科技风） */
body.login-page{
  background:#1e3a8a;
  margin:0;padding:0;height:100vh;overflow:hidden;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

.login-container{
  display:flex;height:100vh;
}

.login-left{
  flex:1;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 100%);
  position:relative;
}

.login-left::before{
  content:'';position:absolute;top:0;left:0;right:0;bottom:0;
  background-image:
    linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:50px 50px;
}

.login-brand-section{
  z-index:1;color:white;text-align:center;max-width:600px;padding:0 20px;width:100%;
}

.brand-logo{
  display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:40px;
}

.logo-icon{
  width:80px;height:80px;border-radius:16px;
  background:rgba(255,255,255,0.1);
  box-shadow:0 4px 16px rgba(0,0,0,0.2);
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,0.2);
}

.logo-icon i{
  color:white;
}

/* 系统信息卡片 */
.system-info-cards{
  display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:30px 0;
}

.info-card{
  background:rgba(255,255,255,0.1);
  border-radius:8px;padding:18px;display:flex;align-items:center;gap:14px;
  border:1px solid rgba(255,255,255,0.15);
}

.info-card i{
  font-size:24px;color:rgba(255,255,255,0.9);flex-shrink:0;
}

.info-content{
  flex:1;min-width:0;text-align:left;
}

.info-label{
  font-size:11px;color:rgba(255,255,255,0.7);margin-bottom:4px;
  text-transform:uppercase;letter-spacing:0.5px;
}

.info-value{
  font-size:15px;font-weight:600;color:white;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* 使用单位信息 */
.organization-info{
  margin-top:30px;padding-top:20px;
  border-top:1px solid rgba(255,255,255,0.15);
}

.organization-info p{
  margin:0;color:rgba(255,255,255,0.8);font-size:13px;
  text-align:center;
}

.logo-text .system-name{
  font-size:24px;font-weight:600;margin-bottom:4px;
}

.logo-text .system-desc{
  font-size:16px;opacity:0.8;
}

.login-right{
  flex:1;background:white;display:flex;align-items:center;justify-content:center;
  position:relative;
}

.login-form-container{
  width:100%;max-width:400px;padding:0 40px;
}

.login-header{
  text-align:center;margin-bottom:32px;
}

.login-header h2{
  font-size:28px;font-weight:600;color:#1f2937;margin-bottom:8px;
}

.login-header p{
  color:#6b7280;font-size:16px;margin:0;
}

.login-alert{
  border:none;border-radius:12px;background:#fef2f2;color:#dc2626;
  padding:12px 16px;margin-bottom:24px;display:flex;align-items:center;gap:8px;
}

.form-group{
  margin-bottom:20px;
}

.form-label{
  display:block;margin-bottom:8px;font-weight:500;color:#374151;
}

.input-wrapper{
  position:relative;
}

.input-icon{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  color:#9ca3af;z-index:1;
}

.login-form .form-control{
  width:100%;padding:16px 16px 16px 48px;border:2px solid #e5e7eb;
  border-radius:12px;font-size:16px;transition:all 0.2s ease;
  background:white;
}

.login-form .form-control:focus{
  outline:none;border-color:#2563eb;
}

.form-options{
  margin-bottom:24px;
}

.remember-options{
  display:flex;gap:24px;justify-content:center;
}

.checkbox-wrapper{
  display:flex;align-items:center;gap:8px;cursor:pointer;
}

.checkbox-wrapper input[type="checkbox"]{
  display:none;
}

.checkmark{
  width:18px;height:18px;border:2px solid #d1d5db;border-radius:4px;
  position:relative;transition:all 0.2s ease;
}

.checkbox-wrapper input:checked + .checkmark{
  background:#2563eb;border-color:#2563eb;
}

.checkbox-wrapper input:checked + .checkmark::after{
  content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  color:white;font-size:12px;font-weight:bold;
}

.checkbox-text{
  color:#6b7280;font-size:14px;
}

.btn-login{
  width:100%;padding:16px;background:#2563eb;
  border:none;border-radius:8px;color:white;font-size:16px;font-weight:600;
  cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;
}

.btn-login:hover{
  background:#1d4ed8;
}

.btn-login:active{
  background:#1e40af;
}

.login-footer{
  text-align:center;margin-top:32px;
}


/* 顶部导航样式优化 */
.navbar .btn-light {
  transition: background-color 0.15s ease, color 0.15s ease;
}

.navbar .btn-light:hover {
  background-color: #f1f3f4 !important;
  color: #202124 !important;
}

.navbar .btn-light:active {
  background-color: #e8eaed !important;
}

/* 下拉菜单项hover效果 */
.dropdown-item:hover {
  background-color: #f1f3f4 !important;
}

.dropdown-item:active {
  background-color: #e8eaed !important;
}

/* 退出按钮特殊样式 */
.dropdown-item[style*="color: #d93025"]:hover {
  background-color: #fce8e6 !important;
}

/* 用户端按钮hover效果 */
.navbar a[style*="background: #1a73e8"]:hover {
  background: #1557b0 !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.navbar a[style*="background: #1a73e8"]:active {
  background: #0d47a1 !important;
}

/* 侧栏（后端管理页面使用）*/
.sidebar{width:260px;position:fixed;top:56px;bottom:0;left:0;overflow:auto;border-right:1px solid #e8eaed;background:#fafbfc;box-shadow:2px 0 8px rgba(0,0,0,0.02)}
.sidebar-inner{padding:16px 12px}
.sidebar-title{font-size:0.6875rem;color:#80868b;text-transform:uppercase;letter-spacing:0.8px;font-weight:600;padding:0 12px 12px;margin-bottom:8px;border-bottom:1px solid #e8eaed}

/* 菜单样式 */
.menu{list-style:none;margin:0;padding:0}
.menu .item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:#5f6368;text-decoration:none;font-size:0.9375rem;transition:all 0.2s ease;margin-bottom:2px}
.menu .item i{width:18px;text-align:center;font-size:1rem;opacity:0.85}
.menu .group i{width:18px;text-align:center;opacity:0.7}
.menu .item:hover{background:#ffffff;color:#202124;box-shadow:0 1px 3px rgba(0,0,0,0.06)}
.menu .item:hover i{opacity:1}
.menu .item.active{background:#e8f0fe;color:#1a73e8;font-weight:500;box-shadow:0 1px 3px rgba(26,115,232,0.1)}
.menu .item.active i{opacity:1;color:#1a73e8}

/* 表单验证样式 */
.form-control.is-invalid{border-color:#dc3545;box-shadow:0 0 0 0.2rem rgba(220,53,69,.25)}
.btn-group .btn{border-radius:0.375rem}
.btn-group .btn:not(:last-child){margin-right:0.5rem}

/* 时间段禁用样式 */
.disabled-slot{background-color:#e9ecef !important;cursor:not-allowed}

.table{table-layout:fixed;width:100%;min-width:1100px;border-collapse:collapse}
.table th, .table td{white-space:nowrap;padding:0.4rem 0.2rem;font-size:0.8rem;vertical-align:middle;border-right:1px solid #dee2e6}
.table th{background-color:#f8f9fa;position:sticky;top:0;z-index:10;font-weight:600}
.table input{width:100%;box-sizing:border-box;font-size:0.8rem;padding:0.2rem 0.3rem}
.table input[type="time"]{min-width:70px}
.table input[type="number"]{min-width:60px}
.table input[type="text"]{min-width:80px}

/* 设置表格行固定高度，确保有按钮和没按钮的行高度一致 */
.table tbody tr {
  min-height: 45px;
  height: 45px;
}

/* 表格竖线分隔样式 */
.table th:last-child,
.table td:last-child {
  border-right: none; /* 最后一列不需要右边框 */
}

.table thead th {
  border-bottom: 2px solid #dee2e6; /* 表头底部加粗边框 */
}

.table tbody tr {
  border-bottom: 1px solid #dee2e6; /* 行之间的分隔线 */
}




/* 连续运行设备表格竖线样式 */
.continuous-table {
  border-collapse: collapse !important;
}

.continuous-table th,
.continuous-table td {
  border-right: 1px solid #dee2e6 !important;
}

.continuous-table th:last-child,
.continuous-table td:last-child {
  border-right: none !important; /* 最后一列不需要右边框 */
}

.continuous-table thead th {
  border-bottom: 2px solid #dee2e6 !important; /* 表头底部加粗边框 */
}

.continuous-table tbody tr {
  border-bottom: 1px solid #dee2e6 !important; /* 行之间的分隔线 */
}

.card-body{padding:1rem 0.5rem}
.menu .group{padding:16px 12px 8px;font-size:0.75rem;color:#80868b;display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:0.5px;font-weight:500}
.menu .depth-1{padding-left:30px}
.menu .depth-2{padding-left:46px;font-size:0.875rem}

.menu .item.depth-1{padding-left:24px;border-radius:8px}
.menu .item{line-height:1.4;min-height:40px}

/* 可折叠菜单项样式 */
.menu .item.collapsible{cursor:pointer;position:relative;padding-right:36px;white-space:nowrap;overflow:hidden;min-height:40px;display:flex;align-items:center}
.menu .item.collapsible .fa-chevron-down,
.menu .item.collapsible .fa-chevron-up{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:0.75rem;opacity:0.6;transition:all 0.2s}
.menu .item.collapsible:hover .fa-chevron-down,
.menu .item.collapsible:hover .fa-chevron-up{opacity:1}

/* 菜单圆点图标样式 */
.menu-dot-bullet{
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background-color:#6b7280;
  margin-right:8px;
  opacity:0.7;
}
.menu .item:hover .menu-dot-bullet{
  background-color:#1a73e8;
  opacity:1;
}
.menu .item.active .menu-dot-bullet{
  background-color:#1a73e8;
  opacity:1;
}
/* 面包屑导航样式 */
.breadcrumb{background:rgba(248,250,252,0.8);border-radius:8px;padding:8px 16px;font-size:0.9rem}
.breadcrumb-item a{color:#6b7280;text-decoration:none}
.breadcrumb-item a:hover{color:#111827}
.breadcrumb-item.active{color:#111827;font-weight:500}
.breadcrumb-item + .breadcrumb-item::before{content:"/"!important;color:#d1d5db}


/* 主体与页脚 */
body{min-height:100vh;display:flex;flex-direction:column}
main{padding-top:56px;flex:1;padding-bottom:2rem;margin-left:260px;max-width:calc(100vw - 260px)}
main.container-fluid{padding-top:56px;padding-bottom:2rem;margin-left:260px;max-width:calc(100vw - 260px)}
.app-footer{border-top:1px solid var(--border);padding:12px 0;background:rgba(255,255,255,.6);backdrop-filter:saturate(180%) blur(10px);margin-top:1rem;margin-left:260px;max-width:calc(100vw - 260px)}

/* 卡片 */
.card{border:1px solid var(--border);box-shadow:0 1px 2px rgba(0,0,0,0.03)}
/* 设备管理内联布局优化（全新样式） */
.device-pumps{margin-top:6px}
.device-pumps .add-row{max-width:360px}
.device-pumps .pump-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
/* Chip 风格的泵号标签 */
.device-pumps .chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:#f8fafc;color:#111827;font-size:12px;line-height:1}
.device-pumps .chip .chip-close{border:0;background:transparent;color:#a8a8a8;cursor:pointer;padding:0;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.device-pumps .chip .chip-close:hover{background:#fee2e2;color:#b91c1c}
/* 更统一的 input-group 按钮视觉 */
.input-group>.btn.btn-primary{border-top-left-radius:0;border-bottom-left-radius:0}


/* 页头与面包屑 */
.page-head{padding:4px 0}
.page-title{font-size:20px;font-weight:600}
.breadcrumb{color:var(--muted)}

/* 表单/按钮主题 */
.btn{border-radius:10px}
.form-control{border-radius:10px}
.select,.form-select{border-radius:10px}

/* 动画微交互 */
.btn,.form-control,.form-select,.menu .item{transition:all .15s ease}
.btn:active{transform:translateY(1px)}
.form-control:focus,.form-select:focus{box-shadow:0 0 0 3px rgba(14,165,233,.15)}

/* 禁用时段样式 */
.disabled-slot {
  background-color: #e9ecef !important;
  color: #6c757d !important;
  cursor: not-allowed !important;
  border-color: #ced4da !important;
}



/* 禁用输入框的灰色样式 */
input:disabled,
input.disabled-slot,
select:disabled,
textarea:disabled {
  background-color: #e9ecef !important;
  color: #6c757d !important;
  border-color: #ced4da !important;
  cursor: not-allowed !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

/* 禁用输入框的悬停和焦点状态 */
input:disabled:hover,
input:disabled:focus,
input.disabled-slot:hover,
input.disabled-slot:focus {
  background-color: #e9ecef !important;
  border-color: #ced4da !important;
  box-shadow: none !important;
}





/* 隐藏数字输入框的步进控件 */
input[type="number"] {
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
  appearance: textfield;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox 特殊处理 */
input[type="number"] {
  -moz-appearance: textfield;
}

/* 编辑行样式 */
.editing-row {
  background-color: #fff3cd !important;
}

.editing-row td {
  background-color: #fff3cd !important;
}

/* 保养状态颜色样式 - 更舒适的颜色 */
.maintenance-status-normal {
  color: #059669 !important; /* 深绿色，更柔和 */
  font-weight: 500;
}

.maintenance-status-warning {
  color: #d97706 !important; /* 深橙色，减少刺眼感 */
  font-weight: 500;
}

.maintenance-status-danger {
  color: #dc2626 !important; /* 深红色，保持警示但更柔和 */
  font-weight: 500;
}

.maintenance-status-muted {
  color: #6b7280 !important; /* 保持灰色 */
  font-weight: 400;
}



