/* ============ 电信技术态势系统 主题样式 v1.3 ============ */
/* v1.3: 第3屏「会议·专利·标准」改为每板块独占一整行：row-cps 1fr、清单三列(list3)、专利卡片左右分栏(cps-cols) */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:#0a1122;color:#c9d8f0;font:13px/1.6 "Microsoft YaHei","PingFang SC",sans-serif}
.app{min-height:100vh}
b{font-weight:600}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#1e3a66;border-radius:4px}
::-webkit-scrollbar-track{background:#0d1830}

/* ---------- 顶栏 ---------- */
.topbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:24px;
  padding:10px 22px;background:rgba(10,17,34,.92);backdrop-filter:blur(6px);
  border-bottom:1px solid #1b3054;box-shadow:0 2px 14px rgba(0,0,0,.45)}
.brand{display:flex;align-items:center;gap:12px;min-width:280px}
.logo{width:40px;height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-size:22px;color:#18c2ff;background:linear-gradient(135deg,#14305e,#0d1e3d);border:1px solid #24406e}
.brand h1{font-size:17px;color:#eaf2ff;letter-spacing:1px;white-space:nowrap}
.brand .sub{font-size:10px;color:#6b86b8;white-space:nowrap}
.nav{display:flex;gap:4px;flex:1;justify-content:center}
.nav a{padding:7px 16px;border-radius:6px;color:#8fa8d4;font-size:13px;text-decoration:none;
  border:1px solid transparent;transition:.2s;cursor:pointer}
.nav a:hover{color:#eaf2ff;background:rgba(24,194,255,.12)}
.nav a.on{color:#7fe3ff;background:rgba(24,194,255,.10);border-color:rgba(24,194,255,.35)}
.top-right{display:flex;align-items:center;gap:14px;font-size:11px;color:#6b86b8;white-space:nowrap}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5fe8a4;margin-right:5px;
  box-shadow:0 0 8px #5fe8a4;animation:blink 2s infinite}
@keyframes blink{50%{opacity:.4}}

/* ---------- 分区 ---------- */
.section{padding:20px 22px 8px;max-width:1720px;margin:0 auto}
.sec-title{display:flex;align-items:center;gap:10px;margin:6px 0 12px;font-size:16px;color:#eaf2ff;flex-wrap:wrap}
.sec-title i{width:4px;height:18px;border-radius:2px;background:linear-gradient(#18c2ff,#2f7bff)}
.sec-title .cnt{font-size:11px;color:#6b86b8;font-weight:400}
.sec-title .filters{margin-left:auto;display:flex;align-items:center;gap:8px}
.filters input{background:#0d1a33;border:1px solid #24406e;border-radius:6px;color:#d8e6ff;
  padding:6px 10px;font-size:12px;width:190px;outline:none}
.filters input:focus{border-color:#18c2ff}
.filters select{background:#0d1a33;border:1px solid #24406e;border-radius:6px;color:#d8e6ff;
  padding:6px 8px;font-size:12px;outline:none;cursor:pointer}
.filters button{background:linear-gradient(135deg,#18c2ff,#1a5cd6);border:none;border-radius:6px;
  color:#fff;padding:6px 16px;font-size:12px;cursor:pointer;transition:.2s}
.filters button:hover{filter:brightness(1.15)}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:14px}
.kpi{background:linear-gradient(160deg,#101f3d,#0c1730);border:1px solid #1b3054;border-radius:10px;
  padding:14px 16px;position:relative;overflow:hidden}
.kpi::after{content:'';position:absolute;left:0;top:0;width:3px;height:100%;background:linear-gradient(#18c2ff,#5fe8a4)}
.kpi .num{font-size:26px;font-weight:700;color:#7fe3ff;font-family:Consolas,monospace}
.kpi .lbl{font-size:11px;color:#6b86b8;margin-top:2px}

/* ---------- 卡片 / 布局 ---------- */
.card{background:linear-gradient(160deg,#101f3d,#0c1730);border:1px solid #1b3054;border-radius:10px;
  padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.card h3{font-size:14px;color:#eaf2ff;margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card h3 .tip{font-size:10px;color:#6b86b8;font-weight:400}
.row{display:grid;grid-template-columns:1fr 360px;gap:14px;align-items:stretch}
.row-map{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:stretch}
.chart{width:100%}
.grow{flex:1;overflow:auto}
.main-map .chart{flex:none;height:600px}
/* 动态列表（地图下方整行） */
.news-table .news-list{flex:1;min-height:0;overflow:auto;max-height:380px}
.news-search{display:flex;align-items:center;gap:6px;margin-left:auto}
.news-search input,.news-search select{background:#0d1a33;border:1px solid #24406e;border-radius:6px;color:#d8e6ff;
  padding:4px 8px;font-size:11px;outline:none}
.news-search input{width:130px}
.news-search input:focus,.news-search select:focus{border-color:#18c2ff}
.news-search button{background:linear-gradient(135deg,#18c2ff,#1a5cd6);border:none;border-radius:6px;
  color:#fff;padding:4px 10px;font-size:11px;cursor:pointer}
.news-note{margin-top:8px;padding-top:8px;border-top:1px dashed #1b3054;font-size:11px;color:#6b86b8;text-align:center}
.news-note b{color:#7fe3ff}
.date-td{font-family:Consolas,monospace;color:#7fe3ff}
.title-td{white-space:normal !important;max-width:430px;line-height:1.5}
.title-td a{color:#c9d8f0;text-decoration:none}
.title-td a:hover{color:#7fe3ff}
.city-td{color:#ffd27a;font-weight:600}

/* ---------- 表格 ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:12px}
.tbl th{position:sticky;top:0;background:#12234a;color:#9fc2ff;font-weight:600;text-align:left;
  padding:9px 10px;border-bottom:1px solid #24406e;white-space:nowrap;z-index:2}
.tbl td{padding:8px 10px;border-bottom:1px solid #142848;color:#c9d8f0;white-space:nowrap;vertical-align:top}
.tbl tbody tr{cursor:pointer;transition:.15s}
.tbl tbody tr:hover{background:rgba(24,194,255,.08)}
.badge{display:inline-block;padding:2px 9px;border-radius:10px;font-size:11px;flex-shrink:0}
.badge.hot{background:rgba(255,93,93,.16);color:#ff8a8a;border:1px solid rgba(255,93,93,.4)}
.badge.warn{background:rgba(255,176,46,.14);color:#ffd27a;border:1px solid rgba(255,176,46,.4)}
.badge.green{background:rgba(95,232,164,.12);color:#5fe8a4;border:1px solid rgba(95,232,164,.35)}
.badge.blue{background:rgba(24,194,255,.13);color:#7fe3ff;border:1px solid rgba(24,194,255,.4)}
.badge.gray{background:rgba(143,168,212,.12);color:#8fa8d4;border:1px solid rgba(143,168,212,.35)}
.badge.purple{background:rgba(192,123,255,.14);color:#c07bff;border:1px solid rgba(192,123,255,.4)}
.src-gdelt{font-size:10px;color:#5fe8a4}
.src-base{font-size:10px;color:#6b86b8}

/* ---------- 动态流（第2屏左侧） ---------- */
.event-item{padding:10px 6px;border-bottom:1px solid #142848;cursor:pointer;transition:.15s}
.event-item:hover{background:rgba(24,194,255,.07)}
.event-item .t{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#e2ecff;line-height:1.5}
.event-item .d{font-size:11px;color:#6b86b8;margin-top:4px;padding-left:2px}

/* ---------- 第3屏：会议·专利·标准（每板块独占一整行） ---------- */
.row-cps{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch}
.row-cps .card{margin-bottom:0}
.row-cps .mini-kpis{grid-template-columns:repeat(4,minmax(120px,200px))}
.mini-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.mini-kpi{background:#0d1a33;border:1px solid #1b3054;border-radius:8px;padding:8px 6px;text-align:center}
.mini-kpi .num{font-size:18px;font-weight:700;color:#7fe3ff;font-family:Consolas,monospace}
.mini-kpi .lbl{font-size:10px;color:#6b86b8;margin-top:1px}
.tabbar{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.tab{padding:3px 12px;border-radius:10px;font-size:11px;border:1px solid #24406e;color:#8fa8d4;cursor:pointer;transition:.15s}
.tab:hover{color:#7fe3ff;border-color:#18c2ff}
.tab.on{color:#7fe3ff;border-color:#18c2ff;background:rgba(24,194,255,.10)}
.cps-scroll{flex:1;min-height:0;overflow:auto;max-height:400px}
/* 整行清单：三列铺开 */
.list3{display:grid;grid-template-columns:repeat(3,1fr);column-gap:22px;max-height:330px}
/* 专利卡片左右分栏（左Top6 / 右最新专利） */
.cps-cols{display:grid;grid-template-columns:340px minmax(0,1fr);column-gap:18px}
.cps-cols>div{min-width:0}
.cps-cols>div:first-child{border-right:1px dashed #1b3054;padding-right:18px}
.cps-cols .cps-scroll{max-height:330px}
.cps-item{padding:8px 4px;border-bottom:1px dashed #142848;cursor:pointer;transition:.15s}
.cps-item:hover{background:rgba(24,194,255,.07)}
.cps-item .t{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#e2ecff;line-height:1.5;flex-wrap:wrap}
.cps-item .d{font-size:11px;color:#6b86b8;margin-top:3px;padding-left:2px;font-family:Consolas,monospace}
.cps-chips{margin-top:10px;padding-top:10px;border-top:1px dashed #1b3054;line-height:2}
.cps-sub{font-size:11px;color:#6b86b8;margin:8px 0 4px}
.cps-sub b{color:#9fc2ff}

/* ---------- 排名 / 趋势侧栏 ---------- */
.rank-row{display:flex;align-items:center;gap:10px;padding:7px 2px}
.rank-no{width:22px;height:22px;border-radius:6px;background:#1b3054;color:#8fa8d4;font-size:11px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rank-no.r1{background:linear-gradient(135deg,#18c2ff,#2f7bff);color:#001426;font-weight:700}
.rank-no.r2{background:linear-gradient(135deg,#9fb6dd,#6f8ec4);color:#0d1526;font-weight:700}
.rank-no.r3{background:linear-gradient(135deg,#7fd4b8,#3fa886);color:#04231a;font-weight:700}
.rank-name{width:70px;font-size:12px;color:#c9d8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-bar{flex:1;height:8px;background:#0d1a33;border-radius:4px;overflow:hidden}
.rank-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#18c2ff,#2f7bff)}
.rank-val{width:34px;text-align:right;font-size:12px;color:#7fe3ff;font-family:Consolas,monospace}
.side-box h3{margin-bottom:6px}
.side-note{margin-top:auto;padding-top:10px;border-top:1px dashed #1b3054;font-size:11px;color:#6b86b8;text-align:center}
.side-note b{color:#7fe3ff}
.chart-sm{height:200px;flex-shrink:0}

/* ---------- 更多/页脚 ---------- */
.more-bar{text-align:center;padding-top:10px;border-top:1px dashed #1b3054}
.btn-more{background:transparent;border:1px solid #24406e;border-radius:6px;color:#8fa8d4;
  padding:7px 26px;font-size:12px;cursor:pointer;transition:.2s}
.btn-more:hover{color:#7fe3ff;border-color:#18c2ff;background:rgba(24,194,255,.06)}
.footer{text-align:center;color:#4a608c;font-size:11px;padding:22px 0 30px;border-top:1px solid #142848;margin-top:10px}

/* ---------- 弹窗 ---------- */
.modal-mask{position:fixed;inset:0;background:rgba(4,8,18,.72);display:none;z-index:200;
  align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.modal-mask.show{display:flex}
.modal{width:min(560px,92vw);max-height:80vh;overflow:auto;background:linear-gradient(160deg,#101f3d,#0b1526);
  border:1px solid #2a4d85;border-radius:12px;padding:20px 24px;position:relative;box-shadow:0 12px 48px rgba(0,0,0,.6)}
.modal h4{font-size:15px;color:#7fe3ff;margin-bottom:14px;padding-right:30px;line-height:1.5}
.modal .close{position:absolute;right:14px;top:12px;color:#6b86b8;cursor:pointer;font-size:16px}
.modal .close:hover{color:#ff8a8a}
.kv{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;font-size:12.5px}
.kv b{color:#6b86b8;font-weight:400}
.kv span{color:#e2ecff;word-break:break-all}

/* ---------- 响应式 ---------- */
@media (max-width:1400px){
  .row-map{grid-template-columns:minmax(0,1fr) 290px}
  .main-map .chart{height:520px}
  .list3{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1200px){
  .row-map,.row,.row-cps{grid-template-columns:1fr}
  .main-map .chart{height:420px}
  .kpis{grid-template-columns:repeat(3,1fr)}
  .nav{display:none}
}
@media (max-width:760px){
  .list3{grid-template-columns:1fr}
  .cps-cols{grid-template-columns:1fr}
  .cps-cols>div:first-child{border-right:none;padding-right:0;border-bottom:1px dashed #1b3054;padding-bottom:10px}
  .row-cps .mini-kpis{grid-template-columns:repeat(2,1fr)}
}