/* ===== 全球核电站态势和动态 · 本地化样式（无分区标题 · 卡片头美化版） ===== */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{height:100%;}
body{
  font-family:"Microsoft YaHei","PingFang SC",Helvetica,Arial,sans-serif;
  background:#060d1c;color:#c9dcf5;font-size:14px;line-height:1.6;
}
/* 环境光 + 网格底纹 */
body::before{content:"";position:fixed;z-index:0;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 60% 40% at 18% -8%,rgba(20,60,130,.5),transparent 60%),
    radial-gradient(ellipse 50% 36% at 88% 4%,rgba(10,90,90,.35),transparent 60%),
    radial-gradient(ellipse 70% 50% at 50% 110%,rgba(24,52,110,.4),transparent 65%);}
body::after{content:"";position:fixed;z-index:0;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(90,160,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(90,160,255,.05) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.25) 30%,rgba(0,0,0,.85));
  mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.25) 30%,rgba(0,0,0,.85));}
a{color:#5db8ff;text-decoration:none;}
a:hover{color:#9bd5ff;}
::selection{background:rgba(47,143,255,.45);color:#fff;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:rgba(90,160,255,.25);border-radius:5px;border:2px solid transparent;background-clip:padding-box;}
::-webkit-scrollbar-thumb:hover{background:rgba(90,160,255,.5);border:2px solid transparent;background-clip:padding-box;}
::-webkit-scrollbar-track{background:transparent;}
.wrap{position:relative;z-index:1;max-width:1420px;margin:0 auto;padding:22px 20px 40px;}

/* ===== 顶栏（无菜单 · 渐变标题 + 实时时钟） ===== */
.topbar{position:sticky;top:0;z-index:99;height:64px;display:flex;align-items:center;padding:0 26px;
  background:linear-gradient(180deg,rgba(9,20,42,.97),rgba(8,16,34,.9));
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  border-image:linear-gradient(90deg,rgba(90,160,255,0),rgba(90,160,255,.5) 30%,rgba(77,227,194,.45) 65%,rgba(90,160,255,0)) 1;}
.topbar .logo{display:flex;align-items:baseline;gap:12px;min-width:0;}
.topbar .logo .dot{align-self:center;flex:none;width:12px;height:12px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#a5ffe0,#12b57a);
  box-shadow:0 0 10px rgba(18,181,122,.85);animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{
  0%,100%{box-shadow:0 0 6px rgba(18,181,122,.55);transform:scale(1);}
  50%{box-shadow:0 0 16px rgba(18,181,122,1);transform:scale(1.2);}}
.topbar .title{font-size:19px;font-weight:bold;letter-spacing:2px;white-space:nowrap;
  background:linear-gradient(90deg,#eef7ff 25%,#8fd0ff 60%,#4de3c2);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.topbar .en{font-size:10px;letter-spacing:2.5px;color:#587ba6;text-transform:uppercase;white-space:nowrap;}
.topbar .sub{margin-left:auto;font-size:12px;color:#6d89ad;font-family:Consolas,monospace;white-space:nowrap;}
.topbar .sub #clock{color:#8fb8e8;}

/* ===== 分区布局（无标题栏 · 卡片自带标题带） ===== */
section{position:relative;scroll-margin-top:80px;}
section + section{margin-top:22px;}

/* ===== 卡片 ===== */
.card{background:linear-gradient(180deg,rgba(19,40,78,.6),rgba(13,27,55,.5));
  border:1px solid rgba(90,160,255,.16);border-radius:12px;padding:18px;
  box-shadow:0 4px 18px rgba(0,0,0,.25);
  transition:border-color .25s,box-shadow .25s,transform .25s;}
.card:hover{border-color:rgba(110,180,255,.42);box-shadow:0 8px 28px rgba(20,80,180,.22);transform:translateY(-2px);}
.card>h3:first-child{position:relative;font-size:16px;color:#d9ecff;margin:-18px -18px 16px;padding:13px 18px;
  font-weight:normal;letter-spacing:1.5px;border-radius:11px 11px 0 0;
  background:linear-gradient(90deg,rgba(47,143,255,.18),rgba(77,227,194,.06) 55%,transparent);
  border-bottom:1px solid rgba(90,160,255,.2);}
.card>h3:first-child::after{content:"";position:absolute;left:0;bottom:-2px;width:78px;height:2px;
  background:linear-gradient(90deg,#2f8fff,#4de3c2);box-shadow:0 0 8px rgba(47,143,255,.55);}
.card h3 b{color:#6cc4ff;}
.card h3{font-size:15px;color:#bfe0ff;margin-bottom:12px;font-weight:normal;letter-spacing:1px;}
.page-title{margin:22px 0 14px;font-size:20px;color:#eaf4ff;border-left:4px solid #2f8fff;padding-left:12px;}
.grid{display:grid;gap:16px;}
.g2{grid-template-columns:2fr 1fr;}
.g3{grid-template-columns:1fr 1fr 1fr;}

/* ===== 指标卡 ===== */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin:0 0 16px;}
.kpi{position:relative;overflow:hidden;text-align:center;border-radius:10px;padding:16px 12px;
  background:linear-gradient(180deg,rgba(30,64,118,.55),rgba(14,30,60,.6));
  border:1px solid rgba(90,160,255,.2);transition:transform .2s,border-color .2s;}
.kpi::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;opacity:.85;
  background:linear-gradient(90deg,transparent,#4de3c2 50%,transparent);}
.kpi:hover{transform:translateY(-3px);border-color:rgba(110,180,255,.5);}
.kpi .v{font-size:28px;font-weight:bold;color:#4de3c2;font-family:Consolas,monospace;
  text-shadow:0 0 14px rgba(77,227,194,.35);}
.kpi .v.warn{color:#ffb45e;text-shadow:0 0 14px rgba(255,180,94,.3);}
.kpi .v.danger{color:#ff7a7a;text-shadow:0 0 14px rgba(255,122,122,.3);}
.kpi .v.cool{color:#6fb6ff;text-shadow:0 0 14px rgba(111,182,255,.3);}
.kpi .t{font-size:12px;color:#8aa8cc;margin-top:4px;}

/* ===== 地图 ===== */
#worldmap{width:100%;background:linear-gradient(180deg,#071021 0%,#0a1830 100%);border-radius:10px;overflow:hidden;
  border:1px solid rgba(90,160,255,.14);}
#worldmap svg{width:100%;height:auto;display:block;}
.map-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:#9db8d8;}
.map-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;box-shadow:0 0 6px rgba(120,200,255,.25);}
.maptip{position:fixed;z-index:999;pointer-events:none;display:none;max-width:260px;
  background:rgba(6,14,30,.95);border:1px solid rgba(120,180,255,.4);border-radius:8px;
  padding:10px 12px;font-size:12px;color:#d7e8ff;box-shadow:0 6px 22px rgba(0,0,0,.55);}
.maptip b{color:#7ec8ff;font-size:13px;}
.maptip .row{margin-top:2px;}

/* ===== 表格 ===== */
.tbl{width:100%;border-collapse:collapse;font-size:13px;}
.tbl th{background:linear-gradient(180deg,rgba(50,105,190,.28),rgba(40,85,160,.18));
  color:#a8c8ee;font-weight:normal;padding:11px 12px;text-align:left;white-space:nowrap;
  border-bottom:1px solid rgba(90,160,255,.25);}
.tbl th:first-child{border-radius:6px 0 0 0;}
.tbl th:last-child{border-radius:0 6px 0 0;}
.tbl td{padding:10px 12px;border-top:1px solid rgba(90,160,255,.1);color:#c9dcf5;}
.tbl tbody tr{transition:background .15s;}
.tbl tbody tr:hover td{background:rgba(60,120,220,.1);}
.bar{height:6px;background:rgba(90,160,255,.12);border-radius:3px;overflow:hidden;min-width:60px;}
.bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#1f7ae0,#4de3c2);
  box-shadow:0 0 8px rgba(77,227,194,.4);}

/* ===== 状态标签 ===== */
.tag{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;white-space:nowrap;}
.t-run{background:rgba(30,200,130,.15);color:#3fe0a0;border:1px solid rgba(30,200,130,.4);}
.t-build{background:rgba(255,170,70,.15);color:#ffb45e;border:1px solid rgba(255,170,70,.4);}
.t-stop{background:rgba(160,170,190,.12);color:#a9b6c9;border:1px solid rgba(160,170,190,.35);}
.t-acc{background:rgba(255,90,90,.14);color:#ff7a7a;border:1px solid rgba(255,90,90,.4);}
.t-plan{background:rgba(120,150,255,.14);color:#8fa8ff;border:1px solid rgba(120,150,255,.4);}

/* ===== 筛选条与按钮 ===== */
.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0;}
.filters select,.filters input{background:rgba(10,24,48,.8);border:1px solid rgba(90,160,255,.3);color:#cfe3ff;
  border-radius:6px;padding:7px 10px;font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s;}
.filters select:hover,.filters input:hover{border-color:rgba(120,180,255,.55);}
.filters select:focus,.filters input:focus{border-color:#2f8fff;box-shadow:0 0 0 3px rgba(47,143,255,.18);}
.btn{background:linear-gradient(180deg,#2f8fff,#1a5fd0);color:#fff;border:none;border-radius:6px;
  padding:9px 22px;cursor:pointer;box-shadow:0 3px 10px rgba(30,100,220,.35);
  transition:filter .2s,transform .15s,box-shadow .2s;}
.btn:hover{filter:brightness(1.15);transform:translateY(-1px);box-shadow:0 5px 14px rgba(30,100,220,.45);}
.btn:active{transform:translateY(0);}
.cat-tab{padding:5px 12px;}
.cat-tab.on{background:linear-gradient(180deg,#12b57a,#0d8a5c);box-shadow:0 3px 10px rgba(18,181,122,.4);}

/* ===== 资讯流 ===== */
.feed{display:flex;flex-direction:column;gap:12px;}
.feed .item{border-left:2px solid rgba(90,160,255,.35);padding:2px 0 2px 12px;border-radius:2px;transition:background .2s,border-color .2s;}
.feed .item:hover{background:rgba(60,120,220,.07);border-left-color:#4de3c2;}
.feed .item .h{color:#e3f0ff;font-size:14px;}
.feed .item .m{color:#7d97b8;font-size:12px;margin-top:3px;}
.feed .item .m .tag{margin-right:8px;}

/* ===== 图表条 ===== */
.hbar{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:12px;}
.hbar .n{width:64px;text-align:right;color:#9db8d8;white-space:nowrap;}
.hbar .bar{flex:1;}
.hbar .v{width:60px;color:#4de3c2;font-family:Consolas,monospace;}

/* ===== 信息表单（详情区展示用） ===== */
.form{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;}
.form label{font-size:12px;color:#8aa8cc;display:block;margin-bottom:4px;}
.form input,.form select,.form textarea{width:100%;background:rgba(10,24,48,.8);border:1px solid rgba(90,160,255,.3);
  color:#cfe3ff;border-radius:6px;padding:8px 10px;font-size:13px;outline:none;}
.form .full{grid-column:1/-1;}
.msg{margin-top:10px;font-size:13px;min-height:18px;}
.msg.ok{color:#3fe0a0;} .msg.err{color:#ff7a7a;}

/* ===== 其他 ===== */
.footer{margin:34px 0 10px;text-align:center;color:#5b7599;font-size:12px;line-height:2;}
.pager{margin-top:12px;display:flex;gap:8px;align-items:center;font-size:12px;color:#8aa8cc;}
.pager a{padding:4px 12px;border:1px solid rgba(90,160,255,.3);border-radius:6px;}
.plant-link{cursor:pointer;color:#5db8ff;border-bottom:1px dashed transparent;transition:color .15s,border-color .15s;}
.plant-link:hover{color:#9bd5ff;border-bottom-color:#9bd5ff;}
.detail-hint{color:#7d97b8;font-size:13px;padding:6px 4px 12px;}
#backtop{position:fixed;right:26px;bottom:30px;z-index:98;display:none;width:42px;height:42px;
  border:none;border-radius:50%;font-size:17px;color:#fff;cursor:pointer;
  background:linear-gradient(180deg,#2f8fff,#1a5fd0);
  box-shadow:0 4px 16px rgba(30,100,220,.5);transition:filter .2s,transform .15s;}
#backtop:hover{filter:brightness(1.15);transform:translateY(-2px);}

@media(max-width:1000px){
  .kpis{grid-template-columns:repeat(3,1fr);}
  .g2,.g3{grid-template-columns:1fr;}
  .topbar .en{display:none;}
  .topbar{padding:0 14px;}
}