/* 警务遥感 · AdminLTE 青绿主题
   目标：白底卡片 + 深青绿标题 + 清晰的数据层级；地图区域保持深色以突出遥感影像。
   该文件最后加载，覆盖 police.css 的夜间指挥中心皮肤。 */
:root{
  --bg:#f2f6f9;
  --bg2:#eaf1f5;
  --panel:#ffffff;
  --panel2:#f7fafc;
  --border:#dbe6ee;
  --border2:#c9d9e4;
  --text:#1f2d3d;
  --muted:#5b7184;
  --muted2:#8196a8;
  --accent:#0f766e;
  --accent2:#14b8a6;
  --green:#0f9f6e;
  --red:#dc2626;
  --orange:#d97706;
  --yellow:#ca8a04;
  --blue:#0284c7;
  --shadow:0 8px 24px rgba(31,45,61,.08);
  --radius:10px;
  --police-gold:#0f766e;
  --police-red:#dc2626;
  --police-navy:#0b2b33;
  --police-cream:#123b42;
}
html,body{height:100%}
body{
  background:
    radial-gradient(1200px 600px at 78% -10%, rgba(20,184,166,.10), transparent 60%),
    linear-gradient(180deg,#f7fafc 0%,var(--bg) 100%) !important;
  color:var(--text) !important;
  font-size:13px;
}
::-webkit-scrollbar-thumb{background:#c4d5df}
::-webkit-scrollbar-thumb:hover{background:#9fb8c7}

/* 启动页 */
#boot-screen{background:linear-gradient(180deg,#f7fbfc,#eaf3f4) !important}
.boot-logo{background:linear-gradient(135deg,#0f766e,#14b8a6) !important;color:#fff !important;box-shadow:0 10px 30px rgba(15,118,110,.22) !important}
.boot-title{color:#123b42 !important}
.boot-sub{color:#6b8190 !important}
.boot-bar{background:#dbe9ea !important}
.boot-bar i{background:linear-gradient(90deg,#0f766e,#2dd4bf) !important}

/* 顶栏 */
#topbar{
  height:64px;
  background:#ffffff !important;
  border-bottom:1px solid #cfe0e5 !important;
  box-shadow:0 4px 18px rgba(31,45,61,.06) !important;
}
#topbar:after{
  background:linear-gradient(90deg,#0f766e,#14b8a6 45%,#0ea5e9 100%) !important;
  opacity:1 !important;height:3px !important;
}
.brand-text h1{color:#0b3d45 !important;text-shadow:none !important;letter-spacing:1px !important}
.brand-text p{color:#6b8190 !important}
.brand-text .dot{color:#0f766e !important}
.brand-mark img{filter:drop-shadow(0 3px 8px rgba(15,118,110,.22)) !important}
.police-clock{
  color:#0f5f5a !important;background:#effafa !important;
  border-color:#bfe7e4 !important;border-radius:6px !important;
}
.police-clock:before{background:#0f9f6e !important;box-shadow:none !important}
.status-strip{
  color:#4f6778 !important;background:#f7fbfc !important;
  border-color:#d5e4ea !important;box-shadow:none !important;
}
.status-strip .sep{color:#c3d5de !important}
.police-chip{
  color:#8a4b16 !important;background:#fff7ed !important;
  border-color:#f3d4b5 !important;
}
.police-chip b{color:#b45309 !important}
.refresh-btn{
  color:#ffffff !important;
  background:linear-gradient(135deg,#0f766e,#14b8a6) !important;
  box-shadow:0 6px 16px rgba(15,118,110,.22) !important;
}
.refresh-btn:hover{box-shadow:0 8px 22px rgba(15,118,110,.30) !important}
.scenario-btn{
  color:#0f5f5a !important;background:#f0fbfa !important;
  border-color:#bfe7e4 !important;box-shadow:none !important;
}
.scenario-btn:hover{background:#e4f7f5 !important;border-color:#0f9f8a !important;color:#0b5d56 !important}
.scenario-btn-icon{color:#0f766e !important}

/* 布局与侧栏 */
#layout{height:calc(100vh - 64px - 34px)}
aside{
  background:#f7fafc !important;
  border-color:var(--border) !important;
  padding:12px 10px !important;
}
#left-panel{border-right:1px solid var(--border) !important}
#right-panel{border-left:1px solid var(--border) !important;border-right:0 !important}
.panel{
  background:var(--panel) !important;
  border:1px solid var(--border) !important;
  border-radius:10px !important;
  box-shadow:0 3px 12px rgba(31,45,61,.05) !important;
  padding:12px !important;
}
.panel-head h2{color:#244252 !important;font-size:12px !important;letter-spacing:.4px !important}
.panel-head h2:before{background:linear-gradient(180deg,#0f766e,#14b8a6) !important;width:3px !important}
.panel-tag{
  color:#0f6b64 !important;background:#e8f7f5 !important;
  border-color:#c8e9e5 !important;
}
.hint,.priority-note{color:#7b8fa0 !important}
.kpi{
  background:#fbfdfe !important;border:1px solid #edf2f5 !important;
  border-radius:8px !important;
}
.kpi:before{background:#14b8a6 !important}
.kpi.danger:before{background:#dc2626 !important}
.kpi-label{color:#6b8190 !important}
.kpi strong{color:#17313d !important}
.kpi em{color:#91a3b2 !important}
.level-row b{color:#8a9baa !important}
.level-row span{color:#3c5666 !important}
.level-dot.red{background:#dc2626 !important;box-shadow:0 0 0 3px rgba(220,38,38,.10) !important}
.level-dot.orange{background:#f59e0b !important}
.level-dot.yellow{background:#eab308 !important}
.level-dot.blue{background:#0ea5e9 !important}
.police-focus{
  background:linear-gradient(100deg,#ecfdf9,#f4fbfa) !important;
  border-color:#b9e6e0 !important;border-left:3px solid #0f766e !important;
}
.police-focus:hover{background:#e6faf6 !important;border-color:#7dd3c7 !important}
.focus-dot{background:#0f766e !important;box-shadow:0 0 0 4px rgba(15,118,110,.10) !important;animation:none !important}
.police-focus b{color:#0f6b64 !important}
.police-focus p{color:#426271 !important}
.natural-risk-strip{
  background:#f0f9ff !important;border:1px solid #cfe8f7 !important;
  border-left:3px solid #0284c7 !important;
}
.nr-head span{color:#4b7085 !important}
.nr-head b{color:#0369a1 !important}
.natural-risk-strip p{color:#5d7a8c !important}

/* 列表 / 详情 */
.hotspot-list{scrollbar-color:#c4d5df transparent}
.hs-item{
  background:#fbfdfe !important;border:1px solid #e6eef3 !important;
  border-radius:8px !important;
}
.hs-item:hover{background:#effaf8 !important;border-color:#a7ded8 !important}
.hs-rank{color:#8ba0af !important}
.hs-name{color:#203b49 !important}
.hs-meta{color:#7c91a1 !important}
.hs-score b{color:#17313d !important}
.hs-score span{color:#8ba0af !important}
.detail-sub,.detail-cell span,.factor-row span,.weather-row,.model-method,.model-output,.task-item p{color:#6b8190 !important}
.detail-cell b,.factor-row b{color:#203b49 !important}
.detail-body{color:#203b49 !important}
.detail-title{color:#17313d !important}
.detail-tag{background:#e8f7f5 !important;color:#0f6b64 !important;border-color:#c8e9e5 !important}
.factor-bar{background:#e8f0f4 !important}
.factor-bar i{background:linear-gradient(90deg,#0f766e,#2dd4bf) !important}
.nat-card{background:#f8fbfd !important;border-color:#e2ecf2 !important}
.nat-card p{color:#6b8190 !important}
.weather-row.head{color:#8ba0af !important}
.weather-row{border-color:#edf2f5 !important}
.model-weight{background:#e8f0f4 !important}
.model-weight i{background:#14b8a6 !important}
.task-item{background:#fbfdfe !important;border-color:#e6eef3 !important}
.task-item b{color:#274554 !important}

/* 地图区域：深色遥感底图 + 白色浮层 */
#map-shell{background:#0b1620 !important}
.map-legend,.map-corner{
  background:rgba(255,255,255,.94) !important;
  border-color:#cfe0e7 !important;
  color:#365363 !important;
  box-shadow:0 6px 18px rgba(15,34,45,.14) !important;
}
.map-legend .legend-title{color:#0b4f55 !important}
#legend-note{color:#6b8190 !important}
.legend-sep{background:#d5e3ea !important}
.map-legend .legend-item{color:#365363 !important}
.map-corner{color:#5b7184 !important}
#map{background:#0b1620 !important}
.leaflet-control-zoom a{color:#17313d !important;background:#fff !important;border-color:#d5e3ea !important}
.leaflet-control-zoom a:hover{background:#eefaf8 !important}
.leaflet-control-attribution{background:rgba(255,255,255,.88) !important;color:#5b7184 !important}

/* 控件 */
select,.od-btn,.od-link,input{
  color:#244252 !important;background:#fff !important;border-color:#d5e3ea !important;
}
select:focus,input:focus{border-color:#14b8a6 !important;box-shadow:0 0 0 3px rgba(20,184,166,.12) !important}
.od-btn{background:#f0fbfa !important;color:#0f6b64 !important;border-color:#bfe7e4 !important}
.od-btn:hover{background:#e3f8f5 !important;border-color:#0f9f8a !important}
.od-link{color:#0f766e !important}
.od-stats{background:#f8fbfd !important;border-color:#e2ecf2 !important}
.od-stats b{color:#17313d !important}
.od-stats span{color:#6b8190 !important}
.switch span{color:#3c5666 !important}
.switch input:checked+span{color:#0b5d56 !important}
.switch input{accent-color:#0f766e !important}

/* 页脚 */
#footer{
  background:#ffffff !important;border-top:1px solid #dbe6ee !important;
  color:#6b8190 !important;
}
#footer .warn{color:#b45309 !important}

/* 抽屉与弹窗 */
.scenario-drawer{
  background:#f7fafc !important;border-left:1px solid #cfe0e7 !important;
  box-shadow:-18px 0 50px rgba(31,45,61,.16) !important;
}
.scenario-head{background:#ffffff !important;border-bottom:1px solid #e2ecf2 !important}
.scenario-kicker{color:#0f766e !important}
.scenario-head h2{color:#17313d !important}
.scenario-head p{color:#6b8190 !important}
.scenario-close{color:#0f6b64 !important;border-color:#c8e9e5 !important}
.scenario-section{background:#fff !important;border-color:#e2ecf2 !important}
.od-modal-card,.modal-card{background:#fff !important;color:#203b49 !important}
.od-modal-head{background:#f8fbfd !important;border-color:#e2ecf2 !important}
.od-modal-tabs button{color:#5b7184 !important}
.od-modal-tabs button.active{color:#0f6b64 !important;border-color:#0f766e !important}

/* 响应式 */
@media (max-width:1180px){
  body{overflow:auto !important}
  #layout{height:auto;min-height:calc(100vh - 64px - 34px)}
  #map-shell{min-height:520px}
  aside{max-height:none}
}

/* 数据质量 / 样本 */
#quality-panel .quality-row{
  display:grid;grid-template-columns:62px 1fr;gap:6px;align-items:start;
  padding:6px 0;border-bottom:1px dashed #e3edf2;font-size:10px;line-height:1.5;
}
#quality-panel .quality-row:last-of-type{border-bottom:0}
#quality-panel .quality-row span{color:#7b8fa0}
#quality-panel .quality-row b{color:#244252;font-weight:600}
#quality-panel .od-link{display:inline-block;margin-top:6px;font-size:10px}

/* 右侧深色卡片转白底后的文字对比 */
.nat-card{background:#fbfdfe !important;border-color:#e3edf2 !important}
.nat-card:hover{background:#effaf8 !important;border-color:#a7ded8 !important}
.nat-card h4{color:#203b49 !important}
.nat-card p{color:#6b8190 !important}
.nat-card .tag{color:#0f6b64 !important;background:#e8f7f5 !important;border-color:#c8e9e5 !important}
.nat-card .ph{background:#eef5f8 !important;color:#8ba0af !important}
.weather-row b{color:#203b49 !important}
.weather-row .w-name{color:#5b7184 !important}
.weather-row .w-val{color:#365363 !important}
.weather-row .w-val.hot{color:#b91c1c !important}
.weather-row .w-val.wet{color:#0369a1 !important}
.weather-row.head{color:#8ba0af !important}
.mw-row{color:#5b7184 !important}
.mw-row b{color:#203b49 !important}
.mw-row .bar{background:#e5eef3 !important}
.mw-row .bar i{background:linear-gradient(90deg,#0f766e,#2dd4bf) !important}
.model-method,.model-note,.model-output{color:#6b8190 !important}
.model-note{font-size:9px;line-height:1.5;margin:3px 0 5px;color:#7b8fa0 !important}
.model-chart{background:#fff !important;border-color:#e3edf2 !important}
.ghost-btn{background:#f7fbfc !important;color:#0f6b64 !important;border-color:#cfe0e7 !important}
.ghost-btn:hover{background:#e8f7f5 !important;border-color:#0f9f8a !important;color:#0b5d56 !important}
.task-item{background:#fbfdfe !important;border-color:#e3edf2 !important}
.task-item h4{color:#203b49 !important}
.task-item p{color:#6b8190 !important}
.empty-state p{color:#5b7184 !important}
.empty-state span{color:#8ba0af !important}
.detail-title{color:#17313d !important}
.detail-cell b{color:#203b49 !important}
.factor-row b{color:#203b49 !important}
.reason-list li{color:#5b7184 !important}
.reason-list li:before{background:#0f766e !important}
.action-box{background:#effaf8 !important;border-color:#bfe7e4 !important;color:#315b60 !important}
.action-box b{color:#0f6b64 !important}
.mini-btn{background:#f7fbfc !important;color:#0f6b64 !important;border-color:#cfe0e7 !important}
.mini-btn.primary{background:#0f766e !important;color:#fff !important;border-color:#0f766e !important}
.catalog-chip{background:#f8fbfd !important;border-color:#e3edf2 !important;color:#5b7184 !important}
.catalog-chip:hover{background:#e8f7f5 !important;border-color:#0f9f8a !important;color:#0f6b64 !important}
.hint{color:#7b8fa0 !important}

/* 地图模式按钮 */
.map-mode{
  background:rgba(255,255,255,.94) !important;border-color:#cfe0e7 !important;
  box-shadow:0 6px 18px rgba(15,34,45,.14) !important;
}
.map-mode button{color:#365363 !important;background:transparent !important}
.map-mode button:hover{background:#effaf8 !important;color:#0f6b64 !important}
.map-mode button.active{background:#0f766e !important;color:#fff !important;border-color:#0f766e !important}
.map-mode-sep{background:#d5e3ea !important}

/* 全国地势底图边缘羽化，避免在省级视图出现生硬矩形接缝 */
.gmt-china-base{
  -webkit-mask-image: radial-gradient(ellipse at center, #000 58%, rgba(0,0,0,.55) 78%, transparent 96%);
  mask-image: radial-gradient(ellipse at center, #000 58%, rgba(0,0,0,.55) 78%, transparent 96%);
}


/* 地图右上角底图切换：白底青绿，替代旧深色内联样式 */
.map-tool{
  background:#fff !important;
  border:1px solid #d7e3e8 !important;
  border-radius:10px !important;
  padding:4px !important;
  display:flex;
  flex-direction:column;
  gap:2px;
  box-shadow:0 8px 22px rgba(15,23,42,.14) !important;
}
.map-tool-btn{
  background:transparent;
  border:0;
  color:#0f172a;
  font-size:10px;
  font-weight:600;
  padding:5px 8px;
  cursor:pointer;
  border-radius:6px;
  text-align:left;
}
.map-tool-btn{color:#0f172a !important;background:transparent !important}
.map-tool-btn:hover{background:#ecfdf5 !important;color:#0f766e !important}

/* Modal tabs: keep dark teal text on the light AdminLTE card */
.od-modal-head h3{color:#16323f !important}
.od-modal-head .od-kicker{color:#0f766e !important}
.od-tabs .od-tab{color:#5b7184 !important;background:#f4fafb !important;border-color:#dbe9ee !important}
.od-tabs .od-tab.active{color:#0f6b64 !important;background:#e6fbf7 !important;border-color:#0f766e !important}
.od-modal-side p,.od-modal-side .od-meta{color:#365363 !important}
/* 章丘专区入口 */
.zq-nav-link{display:inline-flex;align-items:center;height:32px;padding:0 11px;border:1px solid #99f6e4;border-radius:7px;background:#f0fdfa;color:#0f766e;text-decoration:none;font-size:11.5px;font-weight:600;white-space:nowrap}
.zq-nav-link:hover{background:#ccfbf1;border-color:#5eead4}

/* 区域切换：同一网址内切换内蒙古研究区 / 济南章丘 */
.region-switch{
  display:inline-flex;align-items:center;gap:2px;padding:3px;
  border:1px solid #99f6e4;border-radius:8px;background:#f0fdfa;
}
.region-tab{
  border:0;background:transparent;color:#0f766e;border-radius:6px;
  padding:5px 9px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;
}
.region-tab:hover{background:#ccfbf1}
.region-tab.active{background:#0f766e;color:#fff;box-shadow:0 1px 3px rgba(15,118,110,.25)}
.region-status{display:none;align-items:center;height:26px;padding:0 9px;border-radius:6px;
  background:#ecfdf5;border:1px solid #a7f3d0;color:#0f766e;font-size:10px;white-space:nowrap}
body.zq-mode .region-status{display:inline-flex}
body.zq-mode .status-strip,
body.zq-mode #scenario-btn,
body.zq-mode #refresh-btn{display:none!important}

/* 章丘专区以同源 iframe 嵌入主站，不离开原网址 */
.zq-embed{
  display:none;position:fixed;left:0;right:0;bottom:0;top:64px;z-index:2000;
  background:#f4f7f9;
}
.zq-embed.active{display:block}
.zq-embed iframe{display:block;width:100%;height:100%;border:0}
@media (max-width:900px){
  .region-switch{padding:2px}
  .region-tab{padding:5px 6px;font-size:10.5px}
  .zq-embed{top:64px}
}
