/* 每日源见 · A「全球态势」风格（ADR-0004）。字体自托管（OFL）。 */
@font-face{font-family:Orbitron;font-weight:500;src:url(/assets/fonts/orbitron-latin-500-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Orbitron;font-weight:700;src:url(/assets/fonts/orbitron-latin-700-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Orbitron;font-weight:900;src:url(/assets/fonts/orbitron-latin-900-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Rajdhani;font-weight:500;src:url(/assets/fonts/rajdhani-latin-500-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Rajdhani;font-weight:600;src:url(/assets/fonts/rajdhani-latin-600-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Rajdhani;font-weight:700;src:url(/assets/fonts/rajdhani-latin-700-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"JetBrains Mono";font-weight:400;src:url(/assets/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"JetBrains Mono";font-weight:600;src:url(/assets/fonts/jetbrains-mono-latin-600-normal.woff2) format("woff2");font-display:swap}
:root{--bg:#02050b;--panel:rgba(6,14,28,.78);--fg:#d9e7ff;--mute:#6f86a8;--dim:#3d5170;--line:rgba(80,140,255,.16);--line2:rgba(80,140,255,.28);
--c:#4cc9ff;--g:#3dff9a;--o:#ff8a3d;--r:#ff5470;--y:#ffd23f;--disp:Orbitron,"PingFang SC",sans-serif;--lab:Rajdhani,"PingFang SC",sans-serif;
--mono:"JetBrains Mono","SF Mono",Menlo,monospace;--sans:"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
body{min-height:100vh;color:var(--fg);font:14px/1.6 var(--sans);background:var(--bg);position:relative;z-index:0}
/* 整页太空背景（用户 2026-10-13）：ESO 银河全景固定在视口，上面压一层径向渐变保证可读；内容面板半透明磨砂 */
body::before{content:"";position:fixed;inset:0;z-index:-2;background:#02050b url(/assets/space.jpg) center/cover no-repeat}
body::after{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 35%,rgba(2,5,11,.12),rgba(2,5,11,.62) 60%,rgba(2,5,11,.82));pointer-events:none}
@media(prefers-reduced-motion:no-preference){body::before{animation:drift 240s linear infinite alternate}@keyframes drift{from{background-position:48% 50%}to{background-position:52% 50%}}}
a{color:inherit;text-decoration:none}a:hover{color:var(--c)}
.up{color:var(--g)}.dn{color:var(--r)}.mute{color:var(--mute)}
/* 顶栏 */
.top{display:flex;align-items:center;gap:24px;padding:14px 28px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:rgba(2,5,11,.82);backdrop-filter:blur(8px)}
.logo{font:900 20px var(--disp);letter-spacing:5px;line-height:1.1}.logo b{color:var(--c);text-shadow:0 0 18px var(--c)}
.logo small{display:block;font:600 10px var(--lab);letter-spacing:4px;color:var(--mute)}
.top nav{display:flex;gap:18px}.top nav a{font:600 14px var(--lab);letter-spacing:2px;color:var(--mute);white-space:nowrap}
.logo{white-space:nowrap}.clk{white-space:nowrap}.top nav a.on{color:var(--fg)}
.live{display:flex;gap:6px;align-items:center;font:700 12px var(--lab);letter-spacing:2px;color:var(--g)}
.live i{width:8px;height:8px;border-radius:50%;background:var(--g);box-shadow:0 0 10px var(--g);animation:pl 1.4s infinite}@keyframes pl{50%{opacity:.3}}
.clk{margin-left:auto;font:600 14px var(--mono);color:var(--c)}
.wrap{max-width:1280px;margin:0 auto;padding:0 28px}
/* 首页态势舞台 */
.stage{display:grid;grid-template-columns:330px 112px 1fr 330px;height:calc(100vh - 106px);min-height:620px;border-bottom:1px solid var(--line)}
.col{padding:18px 20px;overflow:hidden;position:relative}
.h5{font:700 12px var(--lab);letter-spacing:3px;color:var(--mute);margin-bottom:10px;display:flex;justify-content:space-between;text-transform:uppercase}
.cta-l{display:flex;gap:10px;margin-bottom:16px}.cta-l .btn{flex:1;text-align:center;padding:10px 12px}
.feed{height:calc(100% - 92px);overflow:hidden;mask-image:linear-gradient(transparent,#000 6%,#000 88%,transparent)}
.feed .inner{animation:up 90s linear infinite}.feed:hover .inner{animation-play-state:paused}@keyframes up{to{transform:translateY(-50%)}}
.fi{display:block;padding:10px 0;border-bottom:1px solid var(--line)}.fi .m{font:11px var(--mono);color:var(--mute);display:flex;gap:8px}.fi .m b{color:var(--c);font-weight:400}
.fi h4{font-size:13.5px;font-weight:500;margin-top:3px;line-height:1.45}
.center{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}
#globe{width:min(560px,92%);aspect-ratio:1}
.hero{position:absolute;top:20px;text-align:center;pointer-events:none;z-index:2}.hero .k{font:600 12px var(--lab);letter-spacing:6px;color:var(--mute)}
.hero .n{font:900 64px var(--disp);letter-spacing:4px;background:linear-gradient(180deg,#fff,#7fb8ff);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}
.hero .s{font:600 14px var(--lab);letter-spacing:3px;color:var(--c)}
.cta{position:absolute;bottom:22px;display:flex;gap:12px;z-index:2}
.btn{display:inline-block;font:700 13px var(--lab);letter-spacing:3px;padding:10px 24px;border:1px solid var(--c);color:var(--c);clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);background:transparent;cursor:pointer}
.btn.p{background:var(--c);color:#02050b}.btn:hover{box-shadow:0 0 20px #4cc9ff66}
.kp{border:1px solid var(--line);background:linear-gradient(180deg,rgba(76,201,255,.06),transparent);padding:12px 14px;margin-bottom:10px}
.kp .k{font:700 11px var(--lab);letter-spacing:3px;color:var(--mute)}.kp .val{font:700 30px var(--disp);margin-top:2px}.kp .s{font:11px var(--mono);color:var(--mute)}
.bar{height:4px;background:#0f1d33;margin-top:8px;position:relative;overflow:hidden}.bar i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--c),var(--g));box-shadow:0 0 10px var(--c)}
.mkt{font:12px var(--mono);display:grid;grid-template-columns:1fr auto auto;gap:5px 10px;margin-top:8px}
.tick{border-bottom:1px solid var(--line);padding:0;font:12px var(--mono);color:var(--mute);white-space:nowrap;overflow:hidden;display:flex;align-items:stretch}
.tick .pt{flex:none;display:flex;align-items:center;gap:7px;padding:8px 14px;font:700 12px var(--lab);letter-spacing:3px;color:var(--c);background:linear-gradient(90deg,rgba(76,201,255,.18),rgba(76,201,255,.03));border-right:1px solid var(--line2)}
.tick .pt i{width:6px;height:6px;border-radius:50%;background:var(--g);box-shadow:0 0 8px var(--g);animation:pl 1.4s infinite}
.tick span{flex:1;display:inline-block;padding:8px 0 8px 100%;animation:mq 90s linear infinite}.tick:hover span{animation-play-state:paused}@keyframes mq{to{transform:translateX(-100%)}}
.tick .pi{display:inline-flex;align-items:center;gap:6px;margin-right:38px;color:var(--fg)}.tick .pi:hover{color:var(--c)}
.tick .pi time{color:var(--mute);font:11px var(--mono)}.tick .pi i{width:6px;height:6px;border-radius:50%;flex:none}.tick .pi em{font-style:normal;color:var(--mute);font:600 11px var(--lab);letter-spacing:1px}
/* 区块 */
.sec{padding:36px 0}.sec h2{font:700 22px var(--disp);letter-spacing:4px;margin-bottom:18px;display:flex;align-items:baseline;gap:12px}
.sec h2 small{font:600 12px var(--lab);color:var(--mute);letter-spacing:3px}.sec h2 a{margin-left:auto;font:600 12px var(--lab);letter-spacing:2px;color:var(--c)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.card{display:block;background:rgba(3,9,20,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:18px;min-height:150px;transition:.2s}.card:hover{background:#071530;box-shadow:inset 0 0 0 1px var(--c);color:var(--fg)}
.card .m{font:11px var(--mono);color:var(--c)}.card h4{font-size:15px;margin:8px 0 6px;line-height:1.45}.card p{color:var(--mute);font-size:12.5px}
.card .src{margin-top:8px;font-size:11.5px;color:var(--dim)}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cats a{background:rgba(3,9,20,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:16px 18px;display:flex;justify-content:space-between;align-items:center}.cats a:hover{background:#071530}
.cats b{font:700 22px var(--disp);color:var(--c)}
/* 列表页 */
.ph{padding:28px 0 14px;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}
.ph h1{font:700 30px var(--disp);letter-spacing:3px}.ph .sub{color:var(--mute);font:600 13px var(--lab);letter-spacing:2px}.ph .nav2{margin-left:auto;font:600 13px var(--lab);letter-spacing:2px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.chips a,.chips button{border:1px solid var(--line2);color:var(--mute);padding:4px 12px;font:600 13px var(--lab);letter-spacing:1px;background:transparent;cursor:pointer}
.chips .on{border-color:var(--c);color:var(--c);background:rgba(76,201,255,.08)}
.list .it{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}
.list time{font:12px var(--mono);color:var(--mute);padding-top:3px}.list h3{font-size:15.5px;font-weight:600;line-height:1.5}
.list p{color:#a8b8d0;font-size:14px;margin-top:3px}.list .src{font-size:12px;color:var(--dim);margin-top:4px}.list .src a{color:var(--c);margin-left:8px}
.list .tag{font:11px var(--mono);color:var(--c);border:1px solid var(--line2);padding:0 6px;margin-right:8px}
.grp h2{font:700 16px var(--lab);letter-spacing:3px;color:var(--c);margin:28px 0 4px;padding-left:10px;border-left:3px solid var(--c)}
.pager{display:flex;justify-content:space-between;margin:24px 0;font:600 13px var(--lab);letter-spacing:2px}
.search{display:flex;gap:8px;margin:18px 0}.search input{flex:1;background:rgba(3,9,20,.8);border:1px solid var(--line2);color:var(--fg);padding:11px 14px;font-size:15px}
.search input:focus{outline:1px solid var(--c)}
.empty{padding:60px 0;text-align:center;color:var(--mute)}
footer.f{border-top:1px solid var(--line);margin-top:48px;padding:22px 0;color:var(--dim);font-size:12px;text-align:center;line-height:1.9}
/* 后台 */
.adm{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 57px)}
.side{border-right:1px solid var(--line);padding:12px 0;background:rgba(3,9,20,.6)}
.side .g{font:700 11px var(--lab);letter-spacing:3px;color:var(--dim);padding:14px 20px 4px}
.side a{display:block;padding:8px 20px;color:var(--mute);font-size:13.5px}.side a.on{color:var(--fg);background:rgba(76,201,255,.07);box-shadow:inset 3px 0 0 var(--c)}
.main{padding:20px 24px;min-width:0}.main h1{font:700 20px var(--disp);letter-spacing:3px;margin-bottom:14px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
.kpi{border:1px solid var(--line);background:var(--panel);padding:14px 16px}.kpi .k{font:700 11px var(--lab);letter-spacing:2px;color:var(--mute)}
.kpi .v{font:700 26px var(--disp);margin-top:4px}.kpi .s{font:11px var(--mono);color:var(--mute)}
.g2{display:grid;grid-template-columns:1.6fr 1fr;gap:12px}
.pn{border:1px solid var(--line);background:var(--panel);margin-bottom:12px;min-width:0}.pn>h5{padding:9px 14px;border-bottom:1px solid var(--line);font:700 12px var(--lab);letter-spacing:2px;color:var(--c);display:flex;justify-content:space-between;gap:8px}
.pn>.b{padding:12px 14px}
table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{color:var(--mute);font-weight:400;font-size:11.5px}td.m{font-family:var(--mono);color:var(--mute);white-space:nowrap}
.tg{display:inline-block;font:11px var(--sans);padding:0 7px;border:1px solid;white-space:nowrap}
.tg.ok{color:var(--g);border-color:#3dff9a66}.tg.w{color:var(--y);border-color:#ffd23f66}.tg.b{color:var(--r);border-color:#ff547066}.tg.n{color:var(--mute);border-color:var(--line2)}
.ops{display:flex;gap:4px;flex-wrap:wrap}.ops form{display:inline}
.ops button,.sb{border:1px solid var(--line2);background:transparent;color:var(--mute);padding:2px 8px;font-size:12px;cursor:pointer}
.ops button:hover,.sb:hover{color:var(--c);border-color:var(--c)}
.frm label{display:block;font:700 11px var(--lab);letter-spacing:2px;color:var(--mute);margin:12px 0 5px}
.frm input[type=text],.frm input[type=password],.frm input[type=email],.frm select,.frm textarea{width:100%;background:#020711;border:1px solid var(--line2);color:var(--fg);padding:9px 11px;font:14px var(--sans)}
.frm input:focus,.frm textarea:focus{outline:1px solid var(--c)}.frm .row{display:flex;gap:6px;align-items:center;color:var(--mute);margin:12px 0}
.msg{padding:9px 12px;border:1px solid;margin-bottom:12px;font-size:13px}.msg.e{color:var(--r);border-color:#ff547066;background:#ff547011}.msg.o{color:var(--g);border-color:#3dff9a66;background:#3dff9a0d}
.msg.w{color:var(--y);border-color:#ffd23f66;background:#ffd23f0d}
.login{display:grid;place-items:center;min-height:100vh;padding:20px}
.login .box{width:380px;max-width:100%;overflow:hidden;border:1px solid var(--line2);background:var(--panel);box-shadow:0 0 60px #4cc9ff14}
.login .box .hd{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.login .box .bd{padding:18px}.login .scan{height:2px;background:linear-gradient(90deg,transparent,var(--c),transparent);animation:sc 3s linear infinite}
@keyframes sc{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.code{font:13px var(--mono);background:#020711;border:1px dashed var(--line2);padding:8px 10px;word-break:break-all;color:var(--c)}
@media(max-width:900px){.logo small{display:none}}
@media(max-width:1080px){.stage .center{min-height:600px}.stage{grid-template-columns:1fr;height:auto}.stage .col.l .feed{height:320px}.cards{grid-template-columns:1fr 1fr}
.adm{grid-template-columns:1fr}.side{display:flex;flex-wrap:wrap;padding:6px}.side .g{display:none}.kpis{grid-template-columns:1fr 1fr}.g2{grid-template-columns:1fr}}
@media(max-width:1080px){.center .map-tools{top:auto;bottom:14px}}
@media(max-width:640px){.map-tools button{padding:5px 9px}.top{padding:12px 16px;gap:12px;flex-wrap:wrap}.top nav{order:3;width:100%;overflow-x:auto}.wrap{padding:0 16px}.hero .n{font-size:46px}
.cards{grid-template-columns:1fr}.list .it{grid-template-columns:1fr;gap:4px}.ph h1{font-size:24px}.clk{display:none}}
/* 态势地图（d3-geo，3D/2D） */
.map-box{position:relative;width:100%;height:100%;min-height:420px}
.map-box canvas{display:block;touch-action:none}
.map-tools{position:absolute;right:12px;top:12px;display:flex;gap:0;border:1px solid var(--line2);background:rgba(2,7,17,.8);z-index:2}
.map-tools button{border:0;background:transparent;color:var(--mute);font:700 12px var(--lab);letter-spacing:2px;padding:5px 12px;cursor:pointer}
.map-tools button.on{background:var(--c);color:#02050b}
.map-tip{position:absolute;z-index:3;max-width:290px;padding:9px 11px;background:rgba(3,10,22,.95);border:1px solid var(--line2);font-size:12.5px;line-height:1.6;pointer-events:none;box-shadow:0 8px 30px #000a}
.map-tip b{color:var(--c)}
.map-legend{position:absolute;left:12px;bottom:12px;font:11px var(--mono);color:var(--dim);z-index:2}
.layers{display:flex;flex-wrap:wrap;gap:6px}.layers button{border:1px solid var(--line2);background:transparent;color:var(--mute);font:600 12px var(--lab);letter-spacing:1px;padding:3px 10px;cursor:pointer}
.layers button.on{border-color:var(--c);color:var(--c);background:rgba(76,201,255,.08)}
.layers i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:1px}
.center .map-box{height:100%}
.sit{display:grid;grid-template-columns:1fr 340px;gap:12px}.sit .mapwrap{height:560px;border:1px solid var(--line);background:#020711}
.bars{display:flex;align-items:flex-end;gap:4px;height:70px}.bars div{flex:1;background:linear-gradient(var(--c),#0e3a5c);min-height:2px;position:relative}
.bars span{position:absolute;bottom:-16px;left:0;right:0;text-align:center;font:10px var(--mono);color:var(--dim)}
.alert{border-left:3px solid var(--r);background:rgba(255,84,112,.06)}
@media(max-width:1080px){.sit{grid-template-columns:1fr}.sit .mapwrap{height:420px}}
.layers .sep{width:1px;background:var(--line2);margin:0 4px}.layers i.sq{border-radius:1px;transform:rotate(45deg)}
.brief{margin:8px 0 6px;padding:10px 14px;border-left:3px solid var(--c);background:rgba(76,201,255,.06);color:#c9d8ee;font-size:14px}
.brief b{font:700 11px var(--lab);letter-spacing:2px;color:var(--c);display:block;margin-bottom:2px}
.share{border:1px solid var(--line2);background:transparent;color:var(--mute);font:600 12px var(--lab);letter-spacing:1px;padding:2px 9px;cursor:pointer;margin-left:8px}
.share:hover{color:var(--c);border-color:var(--c)}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--c);color:#02050b;font:700 13px var(--lab);letter-spacing:2px;padding:8px 18px;z-index:99;opacity:0;transition:.25s;pointer-events:none}
.toast.on{opacity:1}
/* 态势中心面板（可拖拽排序、隐藏、宽窄） */
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pnl{min-width:0}.pnl.wide{grid-column:1/-1}.pnl.hidden-pnl{display:none}
.pnl>.pn{margin:0;height:100%}.pnl .pn>h5 .ctl{display:flex;gap:4px;margin-left:auto}
.pnl .ctl button{border:1px solid var(--line2);background:transparent;color:var(--dim);font-size:11px;padding:0 6px;cursor:pointer}
.pnl .ctl button:hover{color:var(--c);border-color:var(--c)}.pnl .grip{cursor:grab;color:var(--dim);margin-right:6px;user-select:none}
.pnl.dragging{opacity:.4}.pnl.over{outline:1px dashed var(--c)}
.dash-tools{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
@media(max-width:1080px){.dash-grid{grid-template-columns:1fr}}

/* 语言菜单（顶栏最右） */
.lang{position:relative;margin-left:4px}.lang summary{list-style:none;cursor:pointer;border:1px solid var(--line2);padding:3px 10px;font:600 12px var(--lab);letter-spacing:1px;color:var(--mute);white-space:nowrap}
.lang summary::-webkit-details-marker{display:none}.lang summary::after{content:" ▾";color:var(--dim)}.lang[open] summary,.lang summary:hover{color:var(--c);border-color:var(--c)}
.lang>div{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:130px;background:rgba(3,10,22,.97);border:1px solid var(--line2);box-shadow:0 10px 30px #000a}
.lang>div a{display:block;padding:8px 14px;font-size:13px;color:var(--mute)}.lang>div a:hover{background:#071530;color:var(--fg)}.lang>div a.on{color:var(--c)}
/* 卫星地球：WebGL 底图 + 2D 叠加层 */
.map-box canvas{position:absolute;left:0;top:0}.map-box canvas.gl{pointer-events:none}
.map-tools button[data-zoom]{font-size:14px;padding:5px 10px}
@media(max-width:640px){.lang{margin-left:auto}}
/* 顶栏：当地日期与天气（北京时间前面）、国旗语言菜单 */
.wx{margin-left:auto;display:flex;gap:10px;align-items:center;border:0;background:transparent;color:var(--mute);font:600 13px var(--sans);white-space:nowrap;cursor:pointer;padding:0}
.wx b{font-weight:600;color:var(--fg)}.wx:hover b{color:var(--c)}.wx b:empty{display:none}
.top .wx~.clk{margin-left:0}
.lang summary{padding:4px 7px;display:flex;align-items:center}.lang summary::after{content:"▾";margin-left:4px}
.flag{display:block;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.lang>div a{display:flex;align-items:center;gap:9px}
@media(max-width:1380px){.wx span{display:none}}
@media(max-width:640px){.wx{font-size:12px}}
/* 地球上的最新新闻弹框 */
.map-pop{position:absolute;z-index:4;width:250px;padding:10px 12px 11px 15px;background:rgba(3,12,28,.93);border:1px solid var(--line2);box-shadow:0 10px 36px #000c,0 0 24px rgba(76,201,255,.18);
  opacity:0;transform:translateY(6px) scale(.97);transition:opacity .35s,transform .35s;pointer-events:none}
.map-pop.on{opacity:1;transform:none;pointer-events:auto}
.map-pop>i{position:absolute;left:0;top:0;bottom:0;width:3px}
.map-pop .m{font:600 11px var(--lab);letter-spacing:1px;color:var(--mute);display:flex;gap:6px;flex-wrap:wrap}
.map-pop .m em{font-style:normal;color:#02050b;background:var(--c);padding:0 5px}.map-pop .m em.new{background:#ffd23f}
.map-pop a{display:block;margin-top:5px;font-size:13.5px;line-height:1.5;color:var(--fg)}.map-pop a:hover{color:var(--c)}
@media(max-width:640px){.map-pop{width:220px}}
@media(max-width:1080px){.top{flex-wrap:wrap;row-gap:10px}.top nav{order:3;width:100%;overflow-x:auto}}
/* 标志：「实时」在「每日源见」同一行后面，下方小字 seesrc.si */
.logo .l1{display:flex;align-items:center;gap:12px}.logo .live{font-size:11px;letter-spacing:2px;text-shadow:none}
/* 右栏：实时金融行情 + 财经快讯 */
.col.r{display:flex;flex-direction:column}
.fin-live{display:flex;align-items:center;gap:6px;color:var(--g)!important}.fin-live i{width:6px;height:6px;border-radius:50%;background:var(--g);box-shadow:0 0 8px var(--g);animation:pl 1.4s infinite}
.fin{font:12px var(--mono)}
.fin .fg{font:700 10px var(--lab);letter-spacing:3px;color:var(--dim);margin:9px 0 3px}.fin .fg:first-child{margin-top:0}
.fq{display:grid;grid-template-columns:minmax(0,1fr) 60px 86px 58px;align-items:center;gap:6px;padding:2px 4px;border-bottom:1px dashed rgba(76,201,255,.07)}
.fq .n{color:var(--mute);font:12.5px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fq .p{text-align:right;color:#fff}.fq>span:last-child{text-align:right}
.fq.fu{animation:fu 1.1s}.fq.fd{animation:fd 1.1s}@keyframes fu{0%{background:rgba(61,255,154,.28)}}@keyframes fd{0%{background:rgba(255,84,112,.3)}}
.col.r .h5.fn{margin-top:14px}
.feed.fin-feed{flex:1 1 0;min-height:110px;height:auto}
.fin-foot{display:flex;align-items:center;gap:10px;margin-top:10px;font:11px var(--mono);color:var(--mute)}.fin-foot .bar{flex:1;display:block;margin:0}
.fin-note{font-size:10.5px;color:var(--dim);margin-top:6px;line-height:1.5}
@media(max-width:1080px){.feed.fin-feed{height:260px;flex:none}}
/* 分类图层栏：地球左边、信息流右边，竖排 */
.col.lay{padding:12px 8px 12px 0;border-right:0;overflow-y:auto;scrollbar-width:none}.col.lay::-webkit-scrollbar{display:none}
.col.lay .layers{flex-direction:column;flex-wrap:nowrap;gap:2px;align-items:stretch}
.col.lay .layers button{text-align:center;white-space:nowrap;padding:2px 6px;font-size:11px;line-height:1.5;letter-spacing:0;overflow:hidden;text-overflow:ellipsis}
.col.lay .layers button i{margin-right:4px}
/* 左栏组名：科技感标题条——左侧亮边 + 发光圆点 + 渐隐底色与延伸线（用户 2026-10-14：要明显、美观、符合整体风格） */
.layers .lg{display:flex;align-items:center;gap:6px;margin:8px 0 3px;padding:2px 7px 2px 8px;font:700 12px var(--lab);letter-spacing:3px;color:var(--c);
  background:linear-gradient(90deg,rgba(76,201,255,.18),rgba(76,201,255,.03));border-left:2px solid var(--c);text-shadow:0 0 12px rgba(76,201,255,.55);position:relative}
.layers .lg::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);flex:none}
.layers .lg::after{content:"";flex:1;height:1px;margin-left:2px;background:linear-gradient(90deg,var(--line2),transparent)}
.layers .lg:first-child{margin-top:0}
.layers i.ln{width:12px;height:2px;border-radius:0;vertical-align:3px}
@media(max-width:1080px){.stage{grid-template-columns:1fr}.col.lay{padding:10px 20px;border-bottom:1px solid var(--line)}.col.lay .layers{flex-direction:row;flex-wrap:wrap;align-items:center}
.layers .lg{width:100%;margin:6px 0 0}}
/* 太空背景：ESO 银河全景（CC BY 4.0），压暗后缓慢漂移；地球外区域由着色器输出透明 */
.center{overflow:hidden}
/* 焦点纵横 */
.focus{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;margin-top:18px}
.fc{border:1px solid var(--line);background:rgba(3,9,20,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:16px 18px;min-width:0}
.fc .m{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font:11px var(--mono);color:var(--mute)}.fc .m b{color:var(--c);font:900 16px var(--disp)}
.fc .m em.w{font-style:normal;color:#02050b;background:var(--y);padding:0 5px;font-weight:600}
.fc h3{font:600 17px/1.4 var(--sans);margin:8px 0 6px}.fc p{color:#c9d8ee;font-size:13.5px}
.dims{display:grid;grid-template-columns:repeat(5,1fr) 44px;gap:6px;align-items:end;margin:12px 0 10px}.dims>div span{display:block;font:600 10px var(--lab);letter-spacing:1px;color:var(--dim)}
.dims i{display:block;height:5px;background:#0f1d33;margin-top:3px}.dims i b{display:block;height:100%;background:linear-gradient(90deg,var(--c),var(--g))}
.dims .score{font:900 22px var(--disp);color:var(--c);text-align:right;line-height:1}
.tl{list-style:none;border-left:1px solid var(--line2);padding-left:12px;margin-left:4px}.tl li{position:relative;font-size:12.5px;margin:4px 0;display:flex;gap:10px}
.tl li::before{content:"";position:absolute;left:-15px;top:7px;width:5px;height:5px;border-radius:50%;background:var(--c)}.tl time{color:var(--mute);font:11px var(--mono);white-space:nowrap;padding-top:2px}
@media(max-width:640px){.focus{grid-template-columns:1fr}}
/* 实时图层按钮：过期标灰、待开通禁用、显示数据时间 */
.layers button.stale{border-color:#3b2a2a;color:#8a6b6b}.layers button.stale i{opacity:.4}
.layers button.off,.layers button:disabled{opacity:.45;cursor:not-allowed}
.map-tip img{display:block;width:260px;max-height:160px;object-fit:cover;margin-top:6px;border:1px solid var(--line2)}
