/* ========================================================================
   IWHR Portal Theme · 中国水利水电科学研究院院网配色
   设计目标：深水科蓝品牌头部 + 浅蓝导航语义 + 白色内容卡片 + 中性灰背景
   本文件只覆盖视觉，不改变现有页面结构和业务交互。
   ======================================================================== */
:root{
  --iwhr-brand:#285CE2;
  --iwhr-brand-strong:#1C49C6;
  --iwhr-brand-deep:#12358F;
  --iwhr-brand-soft:#4B78E8;
  --iwhr-brand-pale:#eaf3fc;
  --iwhr-brand-pale-2:#f4f8fd;
  --iwhr-page:#f2f4f7;
  --iwhr-surface:#ffffff;
  --iwhr-surface-soft:#f8fafc;
  --iwhr-border:#dbe4ed;
  --iwhr-border-strong:#c9d7e5;
  --iwhr-text:#20344f;
  --iwhr-text-2:#52677f;
  --iwhr-muted:#7a8ca0;
  --iwhr-blue:#285CE2;
  --iwhr-cyan:#1589A8;
  --iwhr-green:#178A49;
  --iwhr-purple:#5947C6;
  --iwhr-orange:#D87400;
  --iwhr-red:#C62828;
  --iwhr-shadow:0 6px 20px rgba(32,65,105,.07),0 1px 4px rgba(32,65,105,.04);
  --iwhr-shadow-strong:0 14px 38px rgba(34,70,116,.13);

  /* 同步旧变量，避免旧组件出现跳色 */
  --bg:var(--iwhr-page);
  --bg2:#edf2f7;
  --panel:var(--iwhr-surface);
  --panel2:var(--iwhr-surface-soft);
  --panel3:var(--iwhr-brand-pale);
  --line:rgba(40,92,226,.16);
  --line2:rgba(40,92,226,.34);
  --text:var(--iwhr-text);
  --soft:var(--iwhr-text-2);
  --muted:var(--iwhr-muted);
  --blue:var(--iwhr-blue);
  --cyan:var(--iwhr-cyan);
  --green:var(--iwhr-green);
  --orange:var(--iwhr-orange);
  --red:var(--iwhr-red);
  --purple:var(--iwhr-purple);
  --shadow:var(--iwhr-shadow);
}

html,body{
  background:var(--iwhr-page)!important;
  color:var(--iwhr-text)!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body{letter-spacing:0!important}
::selection{background:rgba(40,92,226,.18);color:var(--iwhr-text)}

/* ---------- 全局背景 ---------- */
.platform-stars{
  background:
    radial-gradient(circle at 48% -10%,rgba(109,168,234,.15),transparent 34%),
    linear-gradient(180deg,#f7f9fc 0%,#f2f4f7 52%,#eef2f6 100%)!important;
}
.platform-stars:before{
  background-image:
    linear-gradient(rgba(40,92,226,.022) 1px,transparent 1px),
    linear-gradient(90deg,rgba(40,92,226,.022) 1px,transparent 1px)!important;
  background-size:48px 48px!important;
  opacity:.6!important;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.6),transparent 72%)!important;
}
.platform-scanline{display:none!important}

/* ---------- 顶部品牌栏：参考院网主横幅的深蓝体系 ---------- */
.global-header{
  background:
    linear-gradient(90deg,#173FAF 0%,#285CE2 48%,#12358F 100%)!important;
  border-bottom:0!important;
  box-shadow:0 5px 18px rgba(25,55,117,.22)!important;
  overflow:visible!important;
}
.global-header:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 38% 120%,rgba(255,255,255,.12),transparent 46%),
    linear-gradient(165deg,transparent 0 44%,rgba(255,255,255,.045) 44.2% 45%,transparent 45.2% 100%);
  opacity:.85;
}
.global-header:after{
  bottom:0!important;
  height:2px!important;
  background:linear-gradient(90deg,rgba(185,222,255,.88),rgba(113,181,239,.72),rgba(218,239,255,.78))!important;
  box-shadow:none!important;
}
.global-brand{gap:11px!important;color:#fff!important}
.global-brand-logo{
  width:45px!important;height:45px!important;
  border:1px solid rgba(255,255,255,.42)!important;
  background:rgba(255,255,255,.10)!important;
  box-shadow:0 4px 14px rgba(19,49,112,.18)!important;
}
.global-brand-logo img{
  width:41px!important;height:41px!important;
  filter:drop-shadow(0 2px 4px rgba(16,45,104,.16))!important;
}
.global-brand-copy{display:flex;flex-direction:column;justify-content:center;line-height:1.05;min-width:0}
.global-brand-title{
  color:#fff!important;
  font-size:23px!important;
  font-weight:800!important;
  letter-spacing:.8px!important;
  text-shadow:0 1px 2px rgba(20,47,104,.22)!important;
}
.global-brand-subtitle{
  margin-top:6px;
  color:rgba(240,247,255,.82);
  font-size:10px;
  letter-spacing:.8px;
  white-space:nowrap;
}
.global-header-glow{
  background:radial-gradient(ellipse at 48% 110%,rgba(255,255,255,.13),transparent 65%)!important;
  opacity:.55!important;
}
.global-header-right{color:rgba(244,249,255,.78)!important}
.header-info i{color:rgba(245,250,255,.92)!important}
.weather-info i{color:#ffd36a!important;text-shadow:0 2px 8px rgba(96,60,0,.28)!important}
.header-info strong{color:#fff!important}
.header-info span{color:rgba(239,247,255,.72)!important}
.header-divider{background:rgba(255,255,255,.24)!important}
.header-user-btn{color:#fff!important;border:1px solid transparent!important}
.header-user-btn:hover{background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.12)!important}
.user-avatar{
  background:rgba(255,255,255,.13)!important;
  border-color:rgba(255,255,255,.34)!important;
  color:#fff!important;
  box-shadow:none!important;
}
.user-copy small{color:rgba(237,246,255,.66)!important}
.user-copy strong{color:#fff!important}
.user-chevron{color:rgba(244,249,255,.72)!important}
.platform-dropdown{background:#fff!important;border:1px solid var(--iwhr-border)!important;box-shadow:var(--iwhr-shadow-strong)!important}
.platform-dropdown .dropdown-header{color:var(--iwhr-muted)!important}
.platform-dropdown .dropdown-item{color:var(--iwhr-text-2)!important}
.platform-dropdown .dropdown-item i{color:var(--iwhr-brand)!important}
.platform-dropdown .dropdown-item:hover{background:var(--iwhr-brand-pale)!important;color:var(--iwhr-brand-strong)!important}

/* 顶部用户菜单必须高于页面内容，且不能被头部裁切 */
.global-header-right,
.user-dropdown{
  position:relative!important;
  overflow:visible!important;
}
.global-header-right{z-index:120!important}
.user-dropdown{z-index:130!important}
.platform-dropdown{
  z-index:2000!important;
  min-width:188px!important;
  margin-top:8px!important;
}

/* ---------- 左侧导航 ---------- */
.platform-sidebar{
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 58%,#f5f8fc 100%)!important;
  border-right:1px solid var(--iwhr-border)!important;
  box-shadow:6px 0 20px rgba(38,72,112,.035)!important;
}
.platform-sidebar:after{display:none!important}
.platform-nav{gap:6px!important;padding-top:14px!important}
.platform-nav-link{
  color:#526b86!important;
  border:1px solid transparent!important;
  border-radius:7px!important;
  font-weight:500;
  transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease!important;
}
.platform-nav-link:hover{
  color:var(--iwhr-brand-strong)!important;
  background:#edf4fc!important;
  border-color:#dbe9f7!important;
  transform:translateX(1px)!important;
}
.platform-nav-link.active{
  color:#fff!important;
  background:linear-gradient(90deg,#234FC0 0%,#3566E8 100%)!important;
  border-color:#244FBE!important;
  box-shadow:0 5px 13px rgba(40,92,226,.22)!important;
}
.nav-icon{color:#6f88a3!important}
.platform-nav-link.active .nav-icon{color:#fff!important;text-shadow:none!important}
.sidebar-visual{opacity:.9!important}
.sidebar-tech-city-light{opacity:.72!important;filter:saturate(.85) contrast(.98)!important}
.sidebar-footer{color:#8a9aae!important;border-top-color:#e2e9f0!important;background:rgba(255,255,255,.5)!important}

/* ---------- 页面框架 ---------- */
.platform-content{
  background:linear-gradient(180deg,rgba(235,242,251,.48),rgba(242,244,247,.2) 118px,transparent 220px)!important;
}
.platform-footer{
  background:rgba(255,255,255,.88)!important;
  border-top:1px solid var(--iwhr-border)!important;
  color:#7f8fa2!important;
  box-shadow:0 -2px 10px rgba(37,70,108,.025)!important;
}
.footer-divider{background:#d7e0e9!important}
.platform-alert{background:#fff!important;color:var(--iwhr-text-2)!important;border-color:#cfdeee!important;box-shadow:var(--iwhr-shadow-strong)!important}
.platform-alert>i{color:var(--iwhr-brand)!important}

/* ---------- 通用卡片 ---------- */
.platform-card{
  background:#fff!important;
  border:1px solid var(--iwhr-border)!important;
  border-radius:9px!important;
  box-shadow:var(--iwhr-shadow)!important;
}
.platform-card:before,.platform-card:after{display:none!important}
.platform-card-header{
  border-bottom:1px solid #e8edf3!important;
  background:linear-gradient(180deg,#fff,#fcfdff)!important;
}
.platform-card-title{color:var(--iwhr-text)!important;font-weight:750!important}
.platform-card-subtitle{color:var(--iwhr-muted)!important}
.card-icon-title i{color:var(--iwhr-brand)!important;text-shadow:none!important}
.card-heading-group>*{text-overflow:ellipsis}
.fit-card,.trend-card,.live-card,.bottom-card,.realtime-panel,.detail-summary{background:#fff!important}

/* ---------- 页面标题、分区条 ---------- */
.page-toolbar{padding:0 2px!important}
.page-title-icon{
  border:1px solid #ccdbec!important;
  background:linear-gradient(145deg,#eef5fd,#e2edf9)!important;
  color:var(--iwhr-brand)!important;
  box-shadow:0 4px 12px rgba(53,92,142,.07)!important;
}
.page-title{color:var(--iwhr-text)!important;font-weight:800!important}
.page-description{color:#788b9f!important}
.section-strip{
  background:linear-gradient(90deg,#285CE2 0%,#4B78E8 100%)!important;
  border:1px solid #285CE2!important;
  box-shadow:0 4px 12px rgba(40,92,226,.10)!important;
}
.section-strip-title,.section-strip-title span,.section-strip-right,.section-strip-right label{color:#fff!important}
.section-strip-title i{color:#fff!important;text-shadow:none!important}
.section-strip .platform-select{background:#fff!important;border-color:rgba(255,255,255,.72)!important;color:#3b5571!important}

/* ---------- 表单控件 ---------- */
.platform-select,.platform-input,.form-control,.form-select,textarea.form-control{
  background:#fff!important;
  border-color:#cbd8e5!important;
  color:#314b65!important;
  border-radius:6px!important;
  box-shadow:none!important;
}
.platform-select:hover,.platform-input:hover,.form-control:hover,.form-select:hover{border-color:#9bb9d8!important}
.platform-select:focus,.platform-input:focus,.form-control:focus,.form-select:focus{
  border-color:var(--iwhr-brand)!important;
  box-shadow:0 0 0 .15rem rgba(40,92,226,.11)!important;
}
.platform-select option,.form-select option{background:#fff!important;color:#314b65!important}
.platform-input::placeholder,.form-control::placeholder{color:#9ba9b8!important;opacity:1!important}
.form-label{color:#5d7188!important;font-weight:600!important}
.form-text,.text-secondary,.small.text-secondary{color:#8292a3!important}
.platform-content .text-light{color:var(--iwhr-text)!important}

/* ---------- 按钮 ---------- */
.btn-platform{
  background:linear-gradient(180deg,#3B6BEE 0%,#285CE2 100%)!important;
  border-color:#244FBE!important;
  color:#fff!important;
  box-shadow:0 4px 10px rgba(49,87,183,.16)!important;
}
.btn-platform:hover,.btn-platform:focus{
  background:linear-gradient(180deg,#2454CE 0%,#1F4BC1 100%)!important;
  border-color:#1F4BC1!important;
  color:#fff!important;
}
.btn-outline-platform{
  background:#fff!important;
  border-color:#b9cde2!important;
  color:#315fa8!important;
  box-shadow:none!important;
}
.btn-outline-platform:hover,.btn-outline-platform:focus{
  background:#edf4fc!important;
  border-color:#8fb0d2!important;
  color:#1F4BC1!important;
}
.btn-danger-soft{background:#FDEAEA!important;color:#B42323!important;border-color:#E7B0B0!important}
.btn-danger-soft:hover{background:#F9DADA!important;color:#991B1B!important;border-color:#D98D8D!important}
.modal .btn-close-white{filter:none!important}

/* ---------- 徽标与状态 ---------- */
.badge-platform{
  background:#EAF1FF!important;
  color:#244FA3!important;
  border:1px solid #C6D7F4!important;
  box-shadow:none!important;
}
.badge-platform i{opacity:.9}
.badge-green{background:#E5F6EB!important;color:#147A40!important;border-color:#A8D9B8!important}
.badge-orange{background:#FFF0DC!important;color:#B85F00!important;border-color:#E7C08A!important}
.badge-red{background:#FDE8E8!important;color:#B42323!important;border-color:#E5ABAB!important}
.sensor-status{box-shadow:none!important}
.sensor-status:not(.offline){background:#E5F6EB!important;color:#147A40!important;border-color:#A8D9B8!important}
.sensor-status.offline{background:#FDE8E8!important;color:#B42323!important;border-color:#E5ABAB!important}

/* ---------- 表格 / 分页 / tab ---------- */
.table-platform,.table{color:#3b536c!important;--bs-table-bg:transparent!important;--bs-table-color:#3b536c!important}
.table-platform thead th,.table thead th{
  background:#eef3f8!important;
  color:#455f78!important;
  border-color:#d9e3ed!important;
  font-weight:700!important;
}
.table-platform tbody td,.table tbody td{background:#fff!important;color:#405872!important;border-color:#e7edf3!important}
.table-platform tbody tr:hover td,.table tbody tr:hover td{background:#f7fafe!important}
.table-panel-footer{color:#7a8c9f!important;border-top-color:#e5ebf1!important;background:#fcfdff!important}
.pager button{background:#fff!important;border-color:#c9d8e7!important;color:#4b74b8!important;box-shadow:none!important}
.pager button:hover:not(:disabled){background:#eef4fb!important;border-color:#a8c2dc!important}
.pager span{color:#71859a!important}
.platform-tabs .nav-link,.nav-pills .nav-link{background:#fff!important;color:#6d8196!important;border-color:transparent!important}
.platform-tabs .nav-link:hover,.nav-pills .nav-link:hover{color:var(--iwhr-brand-strong)!important;background:#f3f7fc!important}
.platform-tabs .nav-link.active,.nav-pills .nav-link.active{
  color:var(--iwhr-brand-strong)!important;
  background:#edf4fc!important;
  border-bottom:2px solid var(--iwhr-brand)!important;
  box-shadow:none!important;
}
.card-scroll,.user-table-scroll{scrollbar-color:#b9c9da transparent!important}

/* ---------- 首页统计卡 ---------- */
.stat-card{
  border-color:#dce4ed!important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.stat-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(35,69,111,.10)!important;border-color:#cddae7!important}
.stat-icon-box{box-shadow:none!important}
.stat-icon-box:after{display:none!important}
.stat-icon-box i{filter:none!important}
.stat-title,.stat-value,.stat-unit{color:var(--iwhr-text)!important}
.stat-title{font-weight:700!important}
.stat-note{color:#7e8fa1!important}
.stat-note .good{color:var(--iwhr-green)!important;font-weight:650!important}
.stat-card-blue .stat-icon-box{color:#285CE2!important;border-color:#d7e2f6!important;background:#eef3fc!important}
.stat-card-cyan .stat-icon-box{color:var(--iwhr-cyan)!important;border-color:#B9DDE5!important;background:#E7F5F8!important}
.stat-card-purple .stat-icon-box{color:var(--iwhr-purple)!important;border-color:#CEC7EF!important;background:#EEEBFF!important}
.stat-card-orange .stat-icon-box{color:var(--iwhr-orange)!important;border-color:#E8C28D!important;background:#FFF0DC!important}
.stat-card-red .stat-icon-box{color:var(--iwhr-red)!important;border-color:#E5B0B0!important;background:#FDE8E8!important}
.stat-card-blue .stat-arrow,.stat-card-cyan .stat-arrow,.stat-card-purple .stat-arrow,.stat-card-orange .stat-arrow,.stat-card-red .stat-arrow{color:#71859c!important}

/* ---------- 图表与首页实时卡 ---------- */
.chart-box,.history-chart,.detail-chart,.realtime-chart,.sparkline{background:transparent!important}
.sensor-live-card{
  border-color:var(--iwhr-border)!important;
  border-top-width:2px!important;
}
.sensor-live-card.sensor-blue{border-top-color:var(--iwhr-blue)!important}
.sensor-live-card.sensor-green{border-top-color:var(--iwhr-green)!important}
.sensor-live-card.sensor-orange{border-top-color:var(--iwhr-orange)!important}
.sensor-type-icon{background:#f1f6fb!important;border-color:#d6e1ed!important}
.sensor-blue .sensor-type-icon,.sensor-blue .sensor-live-title{color:var(--iwhr-blue)!important}
.sensor-green .sensor-type-icon,.sensor-green .sensor-live-title{color:var(--iwhr-green)!important}
.sensor-orange .sensor-type-icon,.sensor-orange .sensor-live-title{color:var(--iwhr-orange)!important}
.sensor-live-title,.primary-reading-value,.primary-reading-unit,.minor-value,.minor-value small{color:var(--iwhr-text)!important}
.sensor-meta,.minor-label,.sensor-update-row,.realtime-tip,.update-time,.live-meta,.live-time{color:#7b8e9f!important}
.sensor-update-row,.realtime-tip{border-top-color:#e7edf3!important}
.sensor-update-row strong,.realtime-tip strong{color:#60758c!important}
.alarm-empty{color:#8797a8!important}
.alarm-empty-icon{color:#6688b4!important;text-shadow:none!important}
.alarm-empty strong{color:#526b84!important}
.alarm-row{border-bottom-color:#e8edf3!important}
.alarm-time{color:#8493a4!important}
.alarm-level.critical{color:#B42323!important;background:#FDE8E8!important}
.alarm-level.warning{color:#B85F00!important;background:#FFF0DC!important}
.alarm-level.info{color:#1D4ED8!important;background:#EAF1FF!important}

/* ---------- 历史数据 ---------- */
.mini-kpi{
  background:#f6f9fc!important;
  border:1px solid #dce6ef!important;
  box-shadow:none!important;
}
.mini-kpi span{color:#7b8da0!important}
.mini-kpi strong{color:var(--iwhr-text)!important}
.history-point{border-bottom-color:#e3eaf1!important}
.history-point time{color:#8091a2!important}
.history-point strong{color:#38536d!important}
.history-point-empty{color:#8a99a9!important}

/* ---------- 设备管理 ---------- */
.device-box-card{
  background:#fff!important;
  border:1px solid var(--iwhr-border)!important;
  box-shadow:var(--iwhr-shadow)!important;
}
.device-box-card.online{border-color:#cfe1d8!important}
.device-box-card.offline{border-color:#e6d8da!important}
.device-box-icon{
  color:var(--iwhr-brand-strong)!important;
  background:#edf4fb!important;
  border-color:#cfdfef!important;
  text-shadow:none!important;
}
.device-box-card.online .device-box-icon{color:#3f9b6e!important;border-color:#cbe5d6!important;background:#eef8f2!important}
.device-box-head strong{color:var(--iwhr-text)!important}
.device-box-code{color:#75899d!important}
.device-box-metrics{color:#6f8499!important}
.device-box-metrics i{color:#416ead!important}
.list-icon{color:var(--iwhr-brand-strong)!important;background:#eef4fb!important;border-color:#cfdfef!important}
.list-icon.green{color:var(--iwhr-green)!important;background:#E5F6EB!important;border-color:#A8D9B8!important}
.list-icon.orange{color:var(--iwhr-orange)!important;background:#FFF0DC!important;border-color:#E7C08A!important}
.empty-state.compact{border-color:#dbe5ee!important}

/* ---------- 详情页 ---------- */
.detail-hero-icon{color:var(--iwhr-brand)!important;background:#eef4fb!important;border-color:#cfdfee!important}
.detail-hero h3,.detail-metric .v{color:var(--iwhr-text)!important}
.detail-hero p,.detail-metric .k{color:#798da1!important}
.detail-metric{background:#f7f9fc!important;border-color:#dce5ee!important}
.detail-metric .v span{color:#7b8da0!important}
.detail-form{background:#fff!important}

/* ---------- 采集频率 ---------- */
.frequency-preset{
  background:#f4f7fa!important;
  border-color:#d6e0ea!important;
  color:#657d95!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.frequency-preset:hover{background:#eaf3fc!important;border-color:#b9d1e9!important;color:#1F4BC1!important}
.frequency-preset strong{color:#405a73!important}
.frequency-preset small{color:#8998a8!important}
.frequency-info{color:#6f8499!important}
.frequency-info li::marker{color:#7298c7}

/* ---------- 校准 / 校核 ---------- */
.cal-card{border-top:2px solid #d7e2ee!important}
.cal-card-name,.cal-main-value{color:var(--iwhr-text)!important}
.cal-meta{color:#788b9f!important}
.calibration-help{color:#6f8397!important}
.calibration-help li::marker{color:#7da2d0}
.cal-form-body{background:#fff!important}

/* ---------- 告警 ---------- */
.alarm-summary-item{
  background:#f7f9fc!important;
  border-color:#dce5ee!important;
  box-shadow:none!important;
}
.alarm-summary-item:first-child{border-left:3px solid var(--iwhr-red)!important}
.alarm-summary-item:nth-child(2){border-left:3px solid var(--iwhr-blue)!important}
.alarm-summary-item i{color:var(--iwhr-red)!important}
.alarm-summary-item:nth-child(2) i{color:var(--iwhr-blue)!important}
.alarm-summary-item strong{color:var(--iwhr-text)!important}
.alarm-summary-item span{color:#7c8ea1!important}
.alarm-form{background:#fff!important}

/* ---------- 报表 ---------- */
.report-kpi{border-top:2px solid #dce5ee!important}
.report-kpi i{color:#416ead!important}
.report-kpi strong{color:var(--iwhr-text)!important}
.report-kpi span{color:#7a8da1!important}

/* ---------- 系统设置 ---------- */
.setting-item{
  background:#f8fafc!important;
  border:1px solid #dce5ee!important;
  border-top:2px solid #ccdaea!important;
  box-shadow:none!important;
}
.setting-item-head i{color:#416ead!important}
.setting-item-head strong{color:var(--iwhr-text)!important}
.setting-item p{color:#7b8da0!important}
.settings-save{border-top-color:#e6ecf2!important;background:#fcfdff!important}
.platform-logo-large h3{color:var(--iwhr-text)!important}
.platform-logo-large p{color:#7b8da0!important}
.platform-meta{background:#f5f8fb!important;border-color:#dce5ee!important}
.platform-meta span{color:#7f90a1!important}
.platform-meta strong{color:var(--iwhr-text)!important}
.ui-preview{border:1px solid #dbe5ee!important;border-radius:8px!important}
.ui-preview:after{background:rgba(40,92,226,.92)!important;border:0!important;color:#fff!important}

/* ---------- 用户管理 / 权限说明 ---------- */
.role-item,.role-timeout{
  background:#f8fafc!important;
  border:1px solid #dce5ee!important;
  border-left:3px solid #a7bbcf!important;
}
.role-admin{border-left-color:var(--iwhr-purple)!important}
.role-device{border-left-color:var(--iwhr-blue)!important}
.role-analyst{border-left-color:var(--iwhr-cyan)!important}
.role-viewer{border-left-color:var(--iwhr-green)!important}
.role-item strong,.role-timeout strong{color:var(--iwhr-text)!important}
.role-item p,.role-timeout p{color:#798c9f!important}
.role-timeout i{color:var(--iwhr-orange)!important}
.permission-item{background:#f8fafc!important;border-color:#dce5ee!important}
.permission-name{color:var(--iwhr-text)!important}
.permission-code,.permission-default{color:#8293a4!important}
.permission-fixed-tip{background:#E5F6EB!important;border-color:#A8D9B8!important;color:#35684A!important}
.permission-fixed-tip strong{color:var(--iwhr-green)!important}

/* ---------- 空状态 ---------- */
.empty-state{color:#8294a6!important}
.empty-state i{color:#6f8fb9!important;text-shadow:none!important}
.empty-state strong{color:#5c7289!important}

/* ---------- Modal ---------- */
.modal-content{
  background:#fff!important;
  color:var(--iwhr-text)!important;
  border:1px solid var(--iwhr-border)!important;
  border-radius:10px!important;
  box-shadow:0 18px 50px rgba(24,53,91,.18)!important;
}
.modal-header,.modal-footer{border-color:#e5ebf1!important}
.modal-title{color:var(--iwhr-text)!important}
.modal-backdrop.show{opacity:.26!important}
.list-group-item{background:#fff!important;color:#405872!important;border-color:#e5ebf1!important}

/* ========================================================================
   登录 / 注册 / 修改密码：同一院网品牌体系
   ======================================================================== */
.auth-body{
  color:var(--iwhr-text)!important;
  background:#eef2f7!important;
}
.auth-backdrop{
  background:
    radial-gradient(circle at 82% 12%,rgba(109,168,234,.14),transparent 28%),
    linear-gradient(145deg,#f6f8fb 0%,#eef3f8 56%,#e8eef5 100%)!important;
}
.auth-backdrop:before{
  background-image:
    linear-gradient(rgba(40,92,226,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(40,92,226,.025) 1px,transparent 1px)!important;
  background-size:48px 48px!important;
  opacity:.75!important;
}
.auth-layout{
  width:min(1460px,94vw)!important;
  height:min(820px,90vh)!important;
  margin:5vh auto 0!important;
  grid-template-columns:1.06fr .94fr!important;
  gap:0!important;
  overflow:hidden!important;
  border:1px solid #d8e1eb!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 26px 70px rgba(31,60,100,.16)!important;
}
.auth-visual-panel{
  position:relative!important;
  padding:42px 48px 28px!important;
  color:#fff!important;
  background:
    linear-gradient(145deg,#1F4BC1 0%,#285CE2 54%,#5C89F0 100%)!important;
  overflow:hidden!important;
}
.auth-visual-panel:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 28% 112%,rgba(255,255,255,.16),transparent 45%),
    radial-gradient(circle at 82% 22%,rgba(255,255,255,.09),transparent 28%),
    linear-gradient(166deg,transparent 0 46%,rgba(255,255,255,.045) 46.2% 47%,transparent 47.2% 100%);
}
.auth-brand-lockup{position:relative!important;z-index:2!important}
.auth-brand-lockup img{
  width:70px!important;height:70px!important;
  padding:0!important;
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 3px 8px rgba(20,48,108,.24))!important;
}
.auth-brand-lockup strong{color:#fff!important;font-size:29px!important;text-shadow:0 1px 2px rgba(22,49,108,.22)!important}
.auth-brand-lockup span{color:rgba(239,247,255,.78)!important}
.auth-visual-copy{position:relative!important;z-index:2!important}
.auth-visual-copy h1{color:#fff!important;text-shadow:none!important}
.auth-visual-copy p{color:rgba(240,247,255,.80)!important}
.auth-sensor-stage{
  position:relative!important;z-index:2!important;
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
}
.auth-stage-image{opacity:.96!important;filter:saturate(.92) brightness(1.03)!important}
.auth-sensor-tag{
  background:rgba(255,255,255,.94)!important;
  border-color:rgba(255,255,255,.72)!important;
  color:#365b96!important;
  box-shadow:0 7px 18px rgba(24,52,116,.14)!important;
}
.auth-feature-strip{
  position:relative!important;z-index:2!important;
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:none!important;
}
.auth-feature-strip>div{border-color:rgba(255,255,255,.12)!important}
.auth-feature-strip i{color:#fff!important}
.auth-feature-strip strong{color:#fff!important}
.auth-feature-strip span{color:rgba(239,247,255,.72)!important}
.auth-form-panel{
  background:#f7f9fc!important;
  padding:42px!important;
}
.auth-card{
  background:#fff!important;
  border:1px solid #d9e3ed!important;
  border-radius:12px!important;
  box-shadow:0 12px 32px rgba(31,65,105,.10)!important;
}
.auth-card:before{display:none!important}
.auth-card-head h2{color:var(--iwhr-text)!important}
.auth-card-head p{color:#7b8da0!important}
.auth-field>span{color:#61768c!important}
.auth-field>div,.captcha-input{
  background:#fbfcfe!important;
  border:1px solid #cad7e4!important;
  box-shadow:none!important;
}
.auth-field>div:focus-within,.captcha-input:focus-within{
  border-color:var(--iwhr-brand)!important;
  box-shadow:0 0 0 .15rem rgba(40,92,226,.10)!important;
}
.auth-field i,.captcha-input i{color:#6685ac!important}
.auth-field input,.captcha-input input{color:var(--iwhr-text)!important}
.auth-field input::placeholder,.captcha-input input::placeholder{color:#9ba9b8!important}
.auth-password-eye{color:#758ba2!important}
.auth-login-captcha-row img{background:#fff!important;border-color:#cad8e5!important}
.captcha-refresh,.auth-links a{color:var(--iwhr-brand)!important}
.auth-login-options,.auth-links,.auth-timeout-hint,.auth-session-note,.auth-review-note{color:#7a8da0!important}
.auth-links-divider:before,.auth-links-divider:after{background:#dce4ec!important}
.auth-login-tipbox{background:#f4f7fb!important;border-color:#dbe5ee!important}
.tipbox-title{color:#416ea9!important}
.auth-login-tipbox p{color:#6e8296!important}
.auth-submit{
  background:linear-gradient(180deg,#3B6BEE,#285CE2)!important;
  border:1px solid #244FBE!important;
  color:#fff!important;
  box-shadow:0 5px 13px rgba(40,92,226,.22)!important;
}
.auth-submit:hover{background:linear-gradient(180deg,#2454CE,#1F4BC1)!important;color:#fff!important}
.auth-error{background:#fff3f4!important;border-color:#edc5ca!important;color:#c64d59!important}
.auth-page-footer{color:#7e8fa1!important}
.auth-review-note{background:#f4f8fc!important;border-color:#dbe5ee!important}
.auth-single:before{
  content:"智能感知监测平台";
  position:absolute;
  top:28px;left:36px;
  color:#7a8ca0;
  font-size:14px;font-weight:700;
}
.auth-result-icon{background:#eef8f2!important;border-color:#c8e4d3!important;box-shadow:none!important}
.auth-result-icon span{color:#3f9b6d!important}
.auth-result-card h2{color:var(--iwhr-text)!important}
.auth-result-card p{color:#72869a!important}

/* ---------- 可访问性 / 交互细节 ---------- */
.btn,.platform-nav-link,.badge-platform,.platform-select,.platform-input,.form-control,.form-select{transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}
.btn:focus-visible,.platform-nav-link:focus-visible,.form-control:focus-visible,.form-select:focus-visible{
  outline:2px solid rgba(40,92,226,.45)!important;
  outline-offset:2px!important;
}

/* ---------- 1280px 及较低高度：保留现有一屏式布局 ---------- */
@media (max-height:900px){
  .global-brand-title{font-size:20px!important}
  .global-brand-subtitle{font-size:9px;margin-top:4px}
  .global-brand-logo{width:40px!important;height:40px!important}
  .global-brand-logo img{width:36px!important;height:36px!important}
  .auth-layout{height:min(760px,92vh)!important;margin:4vh auto 0!important}
  .auth-visual-panel{padding:30px 36px 20px!important}
  .auth-form-panel{padding:30px!important}
}
@media (max-width:1280px){
  .global-brand-subtitle{display:none}
  .sidebar-tech-city-light{opacity:.45!important}
}
@media (max-width:900px){
  .auth-layout{grid-template-columns:1fr!important;width:min(560px,94vw)!important;height:auto!important;min-height:0!important;margin:4vh auto!important;overflow:visible!important}
  .auth-visual-panel{display:none!important}
  .auth-form-panel{border-radius:18px!important;padding:20px!important}
}

/* 补充语义色与权限页 */
.badge-purple{background:#EEEBFF!important;color:#4C3FB0!important;border-color:#CEC7EF!important}
.access-denied-card h2{color:var(--iwhr-text)!important}
.access-denied-card p{color:#72869a!important}
.access-denied-card>i{color:#d59633!important}
.permission-actions{border-top-color:#e5ebf1!important;background:#fcfdff!important}
