:root{
  /* 字体：对齐常见政务大屏 Figma（思源黑体系 + 数字窄体）；离线时回退系统字体 */
  --font-title: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;
  --font-body: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;
  --font-metric: "Oswald", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  /* 9:39 视觉基线：深蓝黑主底 */
  --bg0:#001529;
  --bg1:#002b45;
  --panel:#0c1630cc;
  --panel2:#081225cc;
  --stroke:#2a5085;
  --stroke2:#3d6aa3;
  --text:#f0f6ff;
  --text-dim:#b8d4f0;
  --muted:#8eb4dc;
  --muted2:#5c8ab8;
  /* 9:39 视觉基线：青/橙强调 */
  --cyan:#00f2ff;
  --cyan2:#1cc7ff;
  --amber:#ffb020;
  --red:#ff6b88;
  --green:#5ef0b8;
  --shadow: 0 24px 80px rgba(0,0,0,.5);
  --glow-cyan: 0 0 24px rgba(46,230,214,.12);
  --r12: 12px;
  --r16: 16px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  /* 大屏字号：叠加 9:39 视觉基线（主标题 32px、二级标题 14px 下限） */
  --fs-brand: 32px;
  --fs-brand-sub: 14px;
  --fs-panel-title: 14px;
  --fs-panel-hint: 14px;
  --fs-subsec: 17px;
  --fs-subsec-meta: 14px;
  --fs-kpi-name: 15px;
  --fs-kpi-value: 32px;
  --fs-kpi-unit: 15px;
  --fs-kpi-sub: 14px;
  --fs-strip-val: 30px;
  --fs-strip-lbl: 15px;
  --fs-strip-sub: 14px;
  --fs-body: 15px;
  --fs-caption: 14px;
  --fs-tab: 14px;
  --fs-small: 13px;
  --footer-h: 48px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--text);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background:
    radial-gradient(ellipse 120% 80% at 50% 0%, rgba(0, 80, 120, 0.35) 0%, transparent 55%),
    radial-gradient(1000px 600px at 15% 40%, rgba(0, 242, 255, .08), transparent 55%),
    radial-gradient(800px 500px at 92% 75%, rgba(255, 176, 32, .06), transparent 45%),
    linear-gradient(165deg, var(--bg0) 0%, rgba(0, 21, 41, .92) 45%, var(--bg1) 100%);
  overflow:hidden;
}

.stage{
  position:relative;
  width:100%;
  height:100%;
}

.screen{
  width:1920px;
  height:1080px;
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%) scale(1);
  transform-origin: center;
  border-radius:16px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.015) 40%, rgba(0,0,0,.12) 100%);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.06);
  border:1px solid rgba(90,140,200,.22);
}

.screen:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size: 56px 56px;
  opacity:.09;
  pointer-events:none;
  mask-image: radial-gradient(ellipse 85% 70% at 50% 45%, #000 20%, transparent 75%);
}

/* 9:39 蜂窝纹理（低透明度） */
.screen:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.11;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49'%3E%3Cpath fill='%2300f2ff' d='M14 0l12 7v14l-12 7L2 21V7z'/%3E%3C/svg%3E");
  background-size: 28px 49px;
  mask-image: radial-gradient(ellipse 90% 72% at 50% 42%, #000 30%, transparent 80%);
}

.topbar{
  position:relative;
  z-index:2;
  height:64px;
  padding:10px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid rgba(80,130,190,.2);
  background:
    linear-gradient(180deg, rgba(14,24,52,.94) 0%, rgba(8,16,36,.82) 100%);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(255,255,255,.04) inset;
}
.topbar::after{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  bottom:0;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(61,212,255,.35) 20%, rgba(46,230,214,.25) 50%, rgba(61,212,255,.35) 80%, transparent);
  opacity:.9;
  pointer-events:none;
}

.brand{
  position:relative;
  padding-left:16px;
}
.brand::before{
  content:"";
  position:absolute;
  left:0;
  top:2px;
  bottom:2px;
  width:4px;
  border-radius:3px;
  background: linear-gradient(180deg, var(--cyan2) 0%, var(--cyan) 55%, rgba(46,230,214,.35) 100%);
  box-shadow: 0 0 16px rgba(61,212,255,.35);
}

.brand__title{
  font-family: var(--font-title);
  font-size:var(--fs-brand);
  font-weight:900;
  letter-spacing:0.14em;
  line-height:1.12;
  color:var(--text);
  text-shadow:
    0 1px 2px rgba(0,0,0,.5),
    0 0 28px rgba(0,242,255,.55),
    0 0 60px rgba(0,150,255,.35);
}
.brand__title::after{
  content:"";
  display:block;
  height:3px;
  width: min(560px, 70vw);
  margin-top:6px;
  border-radius:2px;
  background: linear-gradient(90deg, transparent, rgba(0,242,255,.92), transparent);
  box-shadow: 0 0 14px rgba(0,242,255,.75);
}
.brand__subtitle{
  margin-top:6px;
  font-size:var(--fs-brand-sub);
  font-weight:500;
  letter-spacing:0.04em;
  color:var(--text-dim);
  opacity:.92;
}

.pill-link{
  appearance:none;
  border:1px solid rgba(90,140,200,.35);
  background: rgba(6,14,32,.55);
  color: var(--text-dim);
  border-radius:999px;
  padding:8px 16px;
  font-size:13px;
  font-weight:700;
  letter-spacing:0.06em;
  cursor:pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
  flex-shrink:0;
}
.pill-link:hover{
  border-color: rgba(46,230,214,.55);
  background: rgba(46,230,214,.08);
  color: var(--text);
  box-shadow: 0 0 0 3px rgba(46,230,214,.08);
}

.topbar__meta{display:flex; gap:10px; align-items:center}
.meta-pill{
  display:flex; gap:8px; align-items:center;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(90,140,200,.22);
  background: linear-gradient(180deg, rgba(8,18,40,.75), rgba(5,12,28,.55));
  box-shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 6px 20px rgba(0,0,0,.2) inset;
  font-size:13px;
  font-weight:500;
  letter-spacing:0.02em;
  color: var(--text-dim);
}
.meta-pill__k{color:var(--muted); font-size:12px; font-weight:600; letter-spacing:0.05em}
.meta-pill__v{color:var(--text)}
#nowTime{
  font-family: var(--font-metric);
  font-weight:600;
  letter-spacing:0.06em;
  font-variant-numeric: tabular-nums;
}

.grid{
  position:relative;
  z-index:1;
  height: calc(1080px - 64px - var(--footer-h));
  padding:14px 14px 10px;
  display:grid;
  --grid-gap: 12px;
  gap: var(--grid-gap);
  /* 1:2:1 且左右列像素级同宽（相对内容区宽度，避免 min-content 顶开列宽） */
  --col-side: calc((100% - 2 * var(--grid-gap)) / 4);
  grid-template-columns: var(--col-side) calc(var(--col-side) * 2) var(--col-side);
}

.col{display:flex; flex-direction:column; gap:14px; min-height:0; min-width:0}
.panel{
  border-radius: 14px;
  /* 9:39 基线：更明确的青描边与框架感 */
  border:1px solid rgba(0,242,255,.28);
  background:
    /* 四角 L 角标（无额外 DOM） */
    linear-gradient(rgba(0,242,255,.9) 0 0) left top/18px 2px no-repeat,
    linear-gradient(rgba(0,242,255,.9) 0 0) left top/2px 18px no-repeat,
    linear-gradient(rgba(0,242,255,.9) 0 0) right top/18px 2px no-repeat,
    linear-gradient(rgba(0,242,255,.9) 0 0) right top/2px 18px no-repeat,
    linear-gradient(rgba(0,242,255,.9) 0 0) left bottom/18px 2px no-repeat,
    linear-gradient(rgba(0,242,255,.9) 0 0) left bottom/2px 18px no-repeat,
    linear-gradient(rgba(0,242,255,.9) 0 0) right bottom/18px 2px no-repeat,
    linear-gradient(rgba(0,242,255,.9) 0 0) right bottom/2px 18px no-repeat,
    linear-gradient(165deg, rgba(0, 40, 70, 0.52) 0%, rgba(0, 21, 41, 0.78) 100%);
  backdrop-filter: blur(12px);
  box-shadow:
    0 12px 40px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.05),
    inset 0 0 40px rgba(0,242,255,.04),
    0 0 28px rgba(0,242,255,.05);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:0;
  position:relative;
}
.panel::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(0,242,255,.28), transparent);
  opacity:.85;
  pointer-events:none;
}

/* Ribbon：来自 data-ribbon 文案 */
.panel[data-ribbon]::after{
  content: attr(data-ribbon);
  position:absolute;
  left:14px;
  top:0;
  z-index:3;
  padding:5px 18px 7px;
  font-size:13px;
  font-weight:800;
  letter-spacing:0.2em;
  color:#fff;
  background: linear-gradient(90deg, rgba(0, 100, 160, 0.95), rgba(0, 242, 255, 0.35));
  border:1px solid rgba(0,242,255,.55);
  border-top:none;
  border-radius:0 0 6px 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,.4);
  pointer-events:none;
}
/* 一级 ribbon 行右侧：二级页按钮「站位」≫（纯展示，无下钻；与 #panelOL2 .ol2-more--ribbon 同带对齐） */
.ribbon-gg-icon{
  position:absolute;
  top:6px;
  right:10px;
  left:auto;
  z-index:4;
  transform:none;
  border:none;
  background:transparent;
  color:rgba(61,212,255,.85);
  font-size:16px;
  font-weight:800;
  line-height:1;
  padding:2px 6px;
  pointer-events:none;
  user-select:none;
}

/* 标题安全区：给 ribbon + 右上提示胶囊让位，避免内容顶到标题 */
.panel[data-ribbon] > .panel__bd{
  padding-top: 56px;
}
.panel[data-ribbon] > .panel__bd.map{
  /* map 面板原本 padding=0，单独补顶边距 */
  padding-top: 56px;
}

/* 右上角 meta（subsec__meta）在 9:39 风格下默认隐藏，避免与 ribbon/内容争抢 */
.panel[data-ribbon] .subsec__meta{display:none}
.panel--tall{flex:1}
/* KPI 条：高度随内容，避免 panel__bd flex:1 在固定高度下撑出大块空白 */
.panel--kpi{
  flex:0 0 auto;
  height:auto;
  min-height:0;
}
.panel--map{flex:1; min-height:0}

/* 右下：复盘总结（参考稿：居中标题+箭头、四 Tab、编号列表） */
.panel--review{
  flex:0 0 auto;
  max-height:244px;
  min-height:0;
  border-color:rgba(61,212,255,.32);
  box-shadow:
    0 12px 40px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.05),
    0 0 24px rgba(61,212,255,.06);
}
.panel--review .panel__bd--review-summary{
  flex:0 0 auto;
  padding:8px 10px 10px;
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:6px;
  background:
    linear-gradient(180deg, rgba(61,212,255,.04) 0%, transparent 38%),
    radial-gradient(ellipse 90% 60% at 50% 0%, rgba(20,80,140,.12), transparent 55%);
}
.review-summary__head{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 52px 2px 0;
}
.review-summary__title-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.review-summary__title{
  margin:0;
  font-family:var(--font-title);
  font-size:14px;
  font-weight:800;
  letter-spacing:0.14em;
  color:rgba(240,248,255,.96);
  text-shadow:0 0 18px rgba(61,212,255,.2);
}
/* 指向标题内侧的装饰三角 */
.review-summary__arrow--in-l{
  width:0;
  height:0;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
  border-right:8px solid rgba(61,212,255,.88);
  filter:drop-shadow(0 0 6px rgba(61,212,255,.45));
}
.review-summary__arrow--in-r{
  width:0;
  height:0;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
  border-left:8px solid rgba(61,212,255,.88);
  filter:drop-shadow(0 0 6px rgba(61,212,255,.45));
}
.review-summary__full{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  padding:4px 8px !important;
  font-size:11px !important;
}
.review-summary__tabs{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:4px;
}
.review-summary__tab{
  border-radius:6px;
  border:1px solid rgba(70,130,200,.22);
  background:rgba(6,18,42,.55);
  color:rgba(175,200,235,.88);
  font-size:10px;
  font-weight:700;
  letter-spacing:0.04em;
  padding:5px 2px;
  cursor:pointer;
  transition:background .12s ease, border-color .12s ease, color .12s ease;
}
.review-summary__tab:hover{
  border-color:rgba(61,212,255,.35);
  color:var(--text);
}
.review-summary__tab.is-active{
  background:linear-gradient(180deg, rgba(28,130,200,.55), rgba(20,90,160,.42));
  border-color:rgba(61,212,255,.5);
  color:#fff;
  box-shadow:0 0 12px rgba(61,212,255,.15);
}
.review-summary__list{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-height:0;
  overflow:hidden;
  padding-right:0;
}
.review-summary__row{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:5px 8px 5px 6px;
  border-radius:6px;
  border:1px solid rgba(64,120,190,.14);
  background:rgba(4,14,32,.45);
  cursor:default;
}
.review-summary__num{
  flex-shrink:0;
  font-family:var(--font-metric);
  font-size:11px;
  font-weight:800;
  color:rgba(61,212,255,.95);
  min-width:14px;
  text-align:right;
  padding-top:1px;
}
.review-summary__text{
  font-size:11px;
  font-weight:600;
  line-height:1.45;
  color:rgba(220,232,255,.94);
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.review-block{margin-bottom:14px}
.review-block:last-child{margin-bottom:0}
.review-block__hd{
  font-size:13px;
  font-weight:800;
  letter-spacing:0.08em;
  color:rgba(200,224,255,.95);
  margin-bottom:8px;
  padding-bottom:6px;
  border-bottom:1px solid rgba(80,130,190,.2);
}

.panel__hd{
  padding:11px 16px 10px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  border-bottom:1px solid rgba(70,120,180,.16);
  background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.015));
  flex-shrink:0;
}
.panel__title{
  font-family: var(--font-title);
  font-size:var(--fs-panel-title);
  font-weight:800;
  letter-spacing:0.12em;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.panel__hint{
  font-size:var(--fs-panel-hint);
  color: rgba(165,223,249,.72);
  font-weight:500;
  letter-spacing:0.03em;
  flex-shrink:0;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(0,242,255,.18);
  background: rgba(0,0,0,.12);
}
.panel__bd{
  padding:12px 14px 14px;
  min-height:0;
}
/* 高大板块：不在整塊 panel__bd 上滚动，避免二级标题被卷走；按 subsec 分区滚动 */
.panel--tall .panel__bd{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:12px;
  overflow:hidden;
}

/* OL1 内容更少时：通过内边距与间距营造“垂直居中感” */
.panel__bd--ol1{
  padding-top:64px;
  padding-bottom:16px;
}
.panel--kpi .panel__bd{
  flex:0 0 auto;
  min-height:0;
  overflow:visible;
  display:flex;
  align-items:stretch;
  padding:8px 12px 10px;
}
/* 一库 KPI：条在 flex 容器内须拉满宽度，六卡等分平铺 */
.panel--kpi .kpi-strip{
  flex:1 1 auto;
  width:100%;
  min-width:0;
  align-self:stretch;
}
.panel--kpi .panel__hd{
  padding:8px 14px 8px;
}
.panel--map .panel__bd.map{
  flex:1;
  min-height:0;
  padding:0;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
}

.subsec{margin-bottom:10px}
.subsec:last-child{margin-bottom:0}
.panel--tall .subsec{
  display:flex;
  flex-direction:column;
  flex:1 1 0;
  min-height:0;
  margin-bottom:0;
}
.panel--tall .subsec.subsec--fixed{
  flex:0 0 auto;
}
.panel--tall .subsec.subsec--fixed .subsec__bd{
  overflow: hidden;
}
/* OL1：底部「态势要点」吃掉剩余高度，避免大块留白 */
.panel--tall .subsec.ol1-subsec--flex{
  flex:1 1 0;
  min-height:0;
}
.panel--tall .subsec__hd{
  flex-shrink:0;
}
.panel--tall .chips--status:not(.chips--or1-tabs){
  flex-shrink:0;
  margin-top:2px;
  margin-bottom:6px;
  padding:6px 6px;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.16);
  background: rgba(5,11,26,.14);
}
.panel--tall .chips--or1-tabs{
  flex-shrink:0;
}
.panel--tall .subsec__bd{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  /* 9:39 基线：板块内不出现滚动条，内容收口/截断/下钻 */
  overflow:hidden;
  overflow-x:hidden;
  scrollbar-gutter:stable;
}
.subsec__ft{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:2px;
}
.subsec__hd{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:8px;
  position:relative;
  padding-left:10px;
}
.subsec__hd::before{
  content:"";
  position:absolute;
  left:0;
  top:3px;
  bottom:3px;
  width:4px;
  border-radius:2px;
  background: linear-gradient(180deg, var(--cyan2), rgba(0,242,255,.25));
  box-shadow: 0 0 12px rgba(0,242,255,.18);
}
.subsec__title{
  font-family: var(--font-title);
  /* 9:39 二级标题基线：14px 常驻可读 */
  font-size:14px;
  font-weight:800;
  letter-spacing:0.08em;
  color:rgba(255,255,255,.96);
}
.subsec__meta{
  font-size:14px;
  font-weight:600;
  color:rgba(165,223,249,.68);
  letter-spacing:0.04em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width: 68%;
}

.subsec__hd--with-ai .subsec__hd-main{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  flex:1;
  padding-right:4px;
}
.subsec__hd--with-ai .subsec__title{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.subsec__ai-btn{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  margin:0;
  padding:0;
  border-radius:50%;
  border:1px solid rgba(46,230,214,.42);
  background:linear-gradient(180deg, rgba(28,199,255,.18), rgba(6,14,32,.5));
  color:rgba(210,250,255,.95);
  cursor:pointer;
  transition:border-color .15s, box-shadow .15s, transform .12s;
}
.subsec__ai-btn:hover{
  border-color:rgba(32,227,211,.65);
  box-shadow:0 0 12px rgba(32,227,211,.22);
}
.subsec__ai-btn:focus-visible{
  outline:2px solid rgba(32,227,211,.55);
  outline-offset:2px;
}
.cockpit-ai-ico{
  display:block;
  font-family:var(--font-title);
  font-size:9px;
  font-weight:900;
  letter-spacing:-0.04em;
  line-height:1;
  text-align:center;
  user-select:none;
}
.ai-insight{padding:2px 0 4px}
.ai-insight__p{
  margin:0 0 12px;
  font-size:13px;
  line-height:1.65;
  font-weight:600;
  color:rgba(210,235,255,.92);
  letter-spacing:0.03em;
}
.ai-insight__p:last-child{margin-bottom:0}

/* ── 研判趋势 AI 分析弹窗 ── */
.research-ai-modal{padding:2px 0 4px}
.research-ai-modal__tabs{display:flex;gap:6px;margin-bottom:16px}
.research-ai-modal__tabs .tab{flex:0 0 auto}
.research-ai-modal__section{margin-bottom:18px}
.research-ai-modal__section:last-child{margin-bottom:0}
.research-ai-modal__section-hd{display:flex;align-items:center;gap:6px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(78,140,255,.15)}
.research-ai-modal__section-title{font-size:13px;font-weight:700;color:rgba(210,235,255,.92);letter-spacing:.04em}
.research-ai-modal__section-bd{min-height:60px}
.research-ai-data{width:100%}
.research-ai-agent{display:flex;gap:12px;align-items:flex-start}
.research-ai-agent__avatar{flex:0 0 36px;display:flex;align-items:center;justify-content:center}
.cockpit-ai-ico--lg{width:36px;height:36px;font-size:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#4e8cff,#34d399);color:#fff;font-weight:800;letter-spacing:.04em}
.research-ai-agent__body{flex:1;min-width:0}
.research-ai-agent__name{font-size:12px;font-weight:700;color:#4e8cff;margin-bottom:6px;letter-spacing:.04em}
.research-ai-agent__content .ai-insight__p{font-size:12.5px;line-height:1.7;color:rgba(210,235,255,.86)}

.kpi-row{display:grid; grid-template-columns: repeat(3, 1fr); gap:8px}
.kpi{
  border-radius:14px;
  border:1px solid rgba(64,120,190,.18);
  background: linear-gradient(180deg, rgba(6,14,34,.55), rgba(6,14,34,.30));
  padding:12px 12px 11px;
}
.kpi[role="button"]{cursor:pointer}
.kpi[role="button"]:hover{
  border-color: rgba(32,227,211,.55);
  box-shadow: 0 0 0 3px rgba(32,227,211,.10);
}
.kpi__t{font-size:var(--fs-kpi-name); font-weight:600; color:rgba(159,192,230,.92); letter-spacing:0.04em; line-height:1.35}
.kpi__v{
  margin-top:8px;
  font-family: var(--font-metric);
  font-size:var(--fs-kpi-value);
  font-weight:700;
  line-height:1;
  letter-spacing:0.035em;
  font-variant-numeric: tabular-nums;
}
.kpi__u{font-size:var(--fs-kpi-unit); font-weight:600; color:rgba(159,192,230,.82); margin-left:8px; font-family: var(--font-body)}
.kpi__s{margin-top:8px; font-size:var(--fs-kpi-sub); font-weight:500; color:rgba(159,192,230,.82)}

.tabs{display:flex; gap:8px; margin-bottom:8px}
.tabs--small .tab{padding:7px 12px; font-size:var(--fs-caption)}
.tab{
  border:1px solid transparent;
  background: rgba(0,0,0,.2);
  color:var(--muted);
  border-radius:999px;
  padding:7px 14px;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.05em;
  cursor:pointer;
  transition: transform .15s ease, border-color .15s ease, background .15s ease, color .15s ease;
}
.tab:hover{transform: translateY(-1px); color:var(--text-dim); border-color: rgba(90,140,200,.25)}
.tab.is-active{
  color: var(--text);
  border-color: rgba(46,230,214,.45);
  background: linear-gradient(180deg, rgba(46,230,214,.16), rgba(61,212,255,.08));
  box-shadow: 0 0 0 1px rgba(46,230,214,.12), 0 4px 14px rgba(0,0,0,.2);
}

.list{display:flex; flex-direction:column; gap:8px; min-height:0}
.list--tight{gap:6px}
.row{
  border-radius:12px;
  border:1px solid rgba(80,130,190,.14);
  background: linear-gradient(90deg, rgba(8,20,44,.5), rgba(6,14,32,.35));
  padding:11px 14px;
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap:10px;
  cursor:pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease, box-shadow .12s ease;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
.row__idx{
  flex-shrink:0;
  width:28px;
  text-align:center;
  font-family:var(--font-metric);
  font-size:13px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  color:rgba(200,248,255,.72);
}
.row:hover{
  transform: translateY(-1px);
  border-color: rgba(61,212,255,.35);
  background: linear-gradient(90deg, rgba(12,28,58,.55), rgba(8,20,44,.42));
  box-shadow: inset 3px 0 0 rgba(46,230,214,.45), inset 0 1px 0 rgba(255,255,255,.04);
}
.row__l{flex:1;min-width:0}
.row__t{font-size:var(--fs-body); font-weight:600; letter-spacing:0.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.row__d{margin-top:4px; font-size:var(--fs-caption); font-weight:500; color:rgba(159,192,230,.82); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.row__r{flex-shrink:0;margin-left:auto;text-align:right}
.badge{
  display:inline-flex; align-items:center; gap:6px;
  border-radius:999px;
  padding:4px 10px;
  font-family: var(--font-metric);
  font-size:var(--fs-caption);
  font-weight:600;
  letter-spacing:0.04em;
  font-variant-numeric: tabular-nums;
  border:1px solid rgba(64,120,190,.22);
  color:rgba(234,243,255,.94);
}
.dot{width:7px;height:7px;border-radius:50%}
.dot--svc{width:10px;height:10px}
.dot--g{background:var(--green)}
.dot--c{background:var(--cyan2)}
.dot--a{background:var(--amber)}
.dot--r{background:var(--red)}

.news{display:flex; flex-direction:column; gap:7px}
.news__item{
  border-left: 2px solid rgba(32,227,211,.55);
  padding:8px 10px 8px 12px;
  background: rgba(5,11,26,.20);
  border-radius: 10px;
  font-size:var(--fs-body);
  font-weight:500;
  line-height:1.5;
  color:rgba(234,243,255,.92);
}
.news__meta{margin-top:4px; font-size:var(--fs-caption); color:rgba(159,192,230,.82)}

.mini-trend{border-radius:14px;border:1px solid rgba(64,120,190,.18);background: rgba(5,11,26,.22); padding:8px 10px; margin-bottom:8px}
.spark{height:52px; border-radius:10px; background: linear-gradient(180deg, rgba(28,199,255,.12), rgba(32,227,211,.04)); border:1px solid rgba(64,120,190,.14); overflow:hidden; position:relative}
.spark__line{
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, transparent, rgba(32,227,211,.10), transparent),
    linear-gradient(90deg, rgba(32,227,211,.0), rgba(32,227,211,.55), rgba(32,227,211,.0));
  clip-path: polygon(0 78%, 12% 62%, 22% 68%, 35% 46%, 48% 52%, 60% 38%, 72% 44%, 84% 30%, 100% 40%, 100% 100%, 0 100%);
  opacity:.9;
}
.mini-trend__caption{margin-top:8px; font-size:var(--fs-caption); color:rgba(159,192,230,.82); font-weight:500; letter-spacing:0.02em}

.warn-card{
  display:flex; gap:12px; align-items:stretch; justify-content:space-between;
  border-radius:12px;
  border:1px solid rgba(90,140,200,.2);
  background:
    linear-gradient(135deg, rgba(61,212,255,.08) 0%, transparent 45%),
    linear-gradient(180deg, rgba(8,22,48,.75), rgba(6,14,32,.55));
  padding:12px 14px;
  margin-bottom:8px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.warn-card__t{font-size:var(--fs-body);font-weight:800;letter-spacing:0.055em}
.warn-card__d{margin-top:6px;font-size:var(--fs-caption);font-weight:500;color:rgba(159,192,230,.9); line-height:1.5}
.warn-card__tag{margin-top:8px;font-size:var(--fs-caption);font-weight:600;color:rgba(159,192,230,.82);letter-spacing:0.02em}
.warn-card__right{display:flex; flex-direction:column; gap:8px; justify-content:center}
.panel--tall .warn-card__right{
  flex-direction:row;
  align-items:center;
  gap:10px;
}

.btn{
  border-radius:12px;
  padding:10px 14px;
  font-size:var(--fs-caption);
  font-weight:700;
  letter-spacing:0.06em;
  border:1px solid rgba(64,120,190,.26);
  background: rgba(5,11,26,.34);
  color: rgba(234,243,255,.95);
  cursor:pointer;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;
}
.btn:hover{transform: translateY(-1px); border-color: rgba(32,227,211,.55)}
.btn:active{transform: translateY(0)}
.btn--primary{
  border-color: rgba(46,230,214,.55);
  background: linear-gradient(135deg, rgba(46,230,214,.22), rgba(61,212,255,.14));
  box-shadow: 0 0 0 1px rgba(46,230,214,.15), 0 6px 20px rgba(0,0,0,.25);
  color: #fff;
}
.btn--ghost{background: rgba(5,11,26,.20)}
.btn--sm{padding:8px 12px; border-radius:10px; font-size:var(--fs-small)}

.kpi-strip{
  display:grid;
  grid-template-columns: 1.1fr 1.1fr 1fr 1fr 1fr;
  gap:10px;
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.card{
  border-radius:12px;
  border:1px solid rgba(90,140,200,.16);
  background:
    linear-gradient(160deg, rgba(61,212,255,.07) 0%, transparent 55%),
    linear-gradient(180deg, rgba(10,24,52,.85), rgba(6,14,32,.65));
  padding:11px 12px 10px;
  position:relative;
  overflow:hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
  transition: border-color .15s ease, transform .15s ease;
}
.card::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:2px;
  background: linear-gradient(90deg, transparent, rgba(61,212,255,.4), transparent);
  opacity:.65;
}
.card:hover{
  border-color: rgba(61,212,255,.28);
  transform: translateY(-1px);
}
.card__t{
  font-size:12px;
  font-weight:700;
  color:var(--muted);
  letter-spacing:0.06em;
  line-height:1.35;
}
.card__v{
  margin-top:6px;
  font-family: var(--font-metric);
  font-size:var(--fs-strip-val);
  font-weight:700;
  letter-spacing:0.02em;
  font-variant-numeric: tabular-nums;
  line-height:1.1;
  color: #f6fbff;
  text-shadow: 0 1px 0 rgba(0,0,0,.35), 0 0 24px rgba(61,212,255,.18);
}
.kpi-strip--6 .card:first-child::before{
  opacity:1;
  background: linear-gradient(90deg, rgba(94,240,184,.55), rgba(61,212,255,.45), transparent);
  height:3px;
}
.kpi-strip--6 .card:first-child .card__v{
  color: #b8ffe8;
  text-shadow: 0 0 20px rgba(94,240,184,.25), 0 1px 0 rgba(0,0,0,.4);
}
.card__s{margin-top:6px;font-size:11px;font-weight:600;color:var(--muted2);line-height:1.35}
.card__tag{
  margin-top:8px;
  display:inline-block;
  font-size:10px;
  font-weight:800;
  color:var(--cyan2);
  letter-spacing:0.08em;
  padding:3px 8px;
  border-radius:6px;
  border:1px solid rgba(61,212,255,.22);
  background: rgba(0,0,0,.2);
}
/* 一库 KPI 条：可点开明细（与 .ol1-kpi-card--click 同系交互） */
.card--kpi-click{
  cursor:pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.card--kpi-click:hover{
  border-color: rgba(46,230,214,.45);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 0 0 3px rgba(32,227,211,.1);
  transform: translateY(-1px);
}
.card--kpi-click:focus-visible{
  outline:none;
  border-color: rgba(46,230,214,.55);
  box-shadow: 0 0 0 3px rgba(32,227,211,.18);
}

.map{padding:0}
.panel__bd.map{padding:0}
.map__tools{
  position:absolute;
  right:14px;
  top:96px;
  z-index:8;
  display:flex;
  gap:10px;
  align-items:center;
}
.tool{
  display:flex;
  gap:8px;
  align-items:center;
  padding:8px 10px;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.24);
  background: rgba(5,11,26,.50);
  backdrop-filter: blur(8px);
}
.tool__k{font-size:var(--fs-caption); font-weight:700; color:rgba(159,192,230,.9); letter-spacing:0.05em}
.tool__sel{
  appearance:none;
  border:1px solid rgba(64,120,190,.24);
  border-radius:10px;
  background: rgba(8,18,37,.55);
  color:rgba(234,243,255,.94);
  padding:8px 12px;
  font-size:var(--fs-caption);
  font-weight:700;
  letter-spacing:0.02em;
}

.map__canvas{
  position:relative;
  width:100%;
  flex:1;
  min-height:0;
  /* 与 .panel 主背景同一套渐变；底图在其上铺满，此处作衬底 */
  background: linear-gradient(180deg, rgba(12,22,48,.70), rgba(8,18,37,.56));
  padding:0;
  overflow:hidden;
}
.map__img{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  /* 适配：底图在 map__canvas 内完整展示，不溢出不裁切 */
  object-fit:contain;
  object-position:center;
  filter: saturate(1.05) contrast(1.02) brightness(.92);
  /* 默认作为“失败/离线兜底”背景，避免遮挡 ECharts 分区色 */
  opacity:.18;
  pointer-events:none;
}
.map__img--five{
  /* 五色图本身已是最终色彩，不再做“蓝底增强”滤镜 */
  filter:none;
  opacity:.18;
}

.map__chart{
  position:absolute;
  inset:12px;
  z-index:2;
  min-width:0;
  min-height:0;
}
.pin{
  position:absolute;
  z-index:5;
  transform: translate(-50%, -50%);
  border-radius:999px;
  border:1px solid rgba(32,227,211,.60);
  background: rgba(5,11,26,.55);
  color: rgba(234,243,255,.96);
  font-family: var(--font-title);
  font-size:var(--fs-caption);
  font-weight:800;
  letter-spacing:0.08em;
  padding:8px 12px;
  cursor:pointer;
  box-shadow: 0 0 0 3px rgba(32,227,211,.10);
}
.pin:hover{border-color: rgba(28,199,255,.70)}

/* 本版按需求：地图内不显示 pin 类标注 */
.map__canvas .pin{display:none !important}

.legend{
  position:absolute;
  z-index:6;
  right:14px;
  bottom:14px;
  width:268px;
  border-radius:12px;
  border:1px solid rgba(90,140,200,.22);
  background: linear-gradient(180deg, rgba(8,18,40,.88), rgba(4,12,28,.78));
  backdrop-filter: blur(12px);
  padding:10px 12px 9px;
  box-shadow: 0 8px 28px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.05);
}
.legend__t{font-family: var(--font-title); font-size:var(--fs-body);font-weight:800; letter-spacing:0.055em}
.legend__rows{margin-top:10px; display:flex; flex-direction:column; gap:8px}
.leg{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  font-size:var(--fs-caption); font-weight:600; color:rgba(234,243,255,.92); letter-spacing:0.02em;
}
.sw{width:12px;height:12px;border-radius:4px;border:1px solid rgba(255,255,255,.16)}
.legend__meta{margin-top:10px;font-size:var(--fs-caption);font-weight:600;color:rgba(159,192,230,.82)}

.donut{
  position:relative;
  height:152px;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.18);
  background: rgba(5,11,26,.24);
  margin-bottom:8px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.donut__ring{
  width:124px; height:124px; border-radius:50%;
  /* 实际分段由 app.js 按 enterpriseServices 写入 conic-gradient */
  background: conic-gradient(rgba(32,227,211,.45) 0 60%, rgba(28,199,255,.40) 60% 80%, rgba(255,191,74,.45) 80% 100%);
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.26));
  mask: radial-gradient(circle 50px, transparent 50px, #000 51px);
}
.donut__center{
  position:absolute;
  text-align:center;
}
.donut__k{font-size:var(--fs-caption);font-weight:700;color:rgba(159,192,230,.86);letter-spacing:0.04em}
.donut__v{margin-top:4px;font-family:var(--font-metric);font-size:26px;font-weight:700;letter-spacing:0.035em;font-variant-numeric:tabular-nums}
.donut__s{margin-top:4px;font-size:var(--fs-caption);font-weight:700;color:rgba(159,192,230,.82)}

.chips{display:flex; flex-wrap:wrap; gap:8px}
.chips--status{gap:10px}
.chip{
  appearance:none;
  -webkit-appearance:none;
  font-family: var(--font-body);
  border-radius:999px;
  padding:7px 12px;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.05em;
  border:1px solid rgba(90,140,200,.16);
  background: rgba(0,0,0,.18);
  color: var(--muted);
  cursor:pointer;
  transition: color .12s ease, border-color .12s ease, background .12s ease;
}
.chip:hover{color:var(--text-dim)}
.chip:focus-visible{
  outline: none;
  border-color: rgba(46,230,214,.5);
  box-shadow: 0 0 0 2px rgba(46,230,214,.12);
}
.chip.is-active{
  border-color: rgba(46,230,214,.45);
  background: linear-gradient(180deg, rgba(46,230,214,.14), rgba(61,212,255,.08));
  color: var(--text);
  box-shadow: 0 0 0 1px rgba(46,230,214,.1);
}

.rank{display:flex; flex-direction:column; gap:7px}
.rank__row{
  display:grid;
  grid-template-columns: 24px 1fr auto;
  gap:10px;
  align-items:center;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.18);
  background: rgba(5,11,26,.24);
  padding:10px 12px;
  cursor:pointer;
}
.rank__i{
  width:24px; height:24px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-metric);
  font-size:var(--fs-small); font-weight:700;
  font-variant-numeric: tabular-nums;
  background: rgba(32,227,211,.10);
  border:1px solid rgba(32,227,211,.30);
}
.rank__n{font-size:var(--fs-body);font-weight:700;letter-spacing:0.02em}
.rank__v{font-family:var(--font-metric);font-size:18px;font-weight:700;color:rgba(234,243,255,.95);letter-spacing:0.035em;font-variant-numeric:tabular-nums}

.actions{display:grid; grid-template-columns: 1fr 1fr; gap:8px; margin-top:8px}
.act{
  border-radius:14px;
  border:1px solid rgba(64,120,190,.18);
  background: linear-gradient(180deg, rgba(28,199,255,.08), rgba(5,11,26,.22));
  padding:9px 10px;
}
.act__t{font-size:var(--fs-body);font-weight:800;letter-spacing:0.055em}
.act__d{margin-top:6px;font-size:var(--fs-caption);font-weight:600;color:rgba(159,192,230,.86); line-height:1.5}

.footer{
  height:var(--footer-h);
  padding:10px 22px;
  border-top:1px solid rgba(80,130,190,.18);
  background: linear-gradient(180deg, rgba(8,16,36,.9), rgba(4,10,24,.95));
  display:flex; align-items:center;
  position:relative;
  z-index:2;
}
.footer__slot{
  font-size:12px;
  font-weight:600;
  color:var(--muted2);
  letter-spacing:0.04em;
  line-height:1.45;
  opacity:.88;
}

/* 清爽化：二级场景摘要/趋势容器（复用同一套视觉） */
.ana-top{display:flex; flex-direction:column; gap:8px}
.ana-item{
  border-radius:14px;
  border:1px solid rgba(64,120,190,.18);
  background: rgba(5,11,26,.22);
  padding:10px 12px;
  cursor:pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.ana-item:hover{
  transform: translateY(-1px);
  border-color: rgba(28,199,255,.45);
  background: rgba(8,18,37,.30);
}
.ana-item__t{font-size:var(--fs-body); font-weight:700; letter-spacing:0.02em}
.ana-item__d{margin-top:4px; font-size:var(--fs-caption); color:rgba(159,192,230,.85); font-weight:600}
.ana-trend{
  margin-top:2px;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.18);
  background: rgba(5,11,26,.18);
  padding:10px 12px;
}
.ana-trend__hd{display:flex; align-items:center; justify-content:space-between; gap:10px}
.ana-trend__t{font-family:var(--font-title); font-size:var(--fs-body); font-weight:800; letter-spacing:0.05em}
.ana-trend__bd{margin-top:8px; height:78px}
.ana-trend--bar .ana-trend__bd{height:96px}
.svg-fit{width:100%; height:100%}

/* 监测：仅露出涨/跌第一 */
.focus2{display:grid; grid-template-columns: 1fr 1fr; gap:10px}
.focus2.carousel{display:block}
.focus2--grid{display:grid; grid-template-columns: 1fr 1fr; gap:10px}
.carousel__tabs{display:flex; gap:8px; margin-bottom:8px}
.tab--mini{padding:7px 12px; font-size:var(--fs-caption)}
.carousel__viewport{position:relative; overflow:hidden}
.carousel__track{display:flex; width:200%; transition: transform .28s ease}
.carousel__page{width:50%; padding:0}
.focus{
  border-radius:14px;
  border:1px solid rgba(64,120,190,.18);
  background: linear-gradient(180deg, rgba(28,199,255,.08), rgba(5,11,26,.22));
  padding:12px;
  cursor:pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.focus:hover{transform: translateY(-1px); border-color: rgba(32,227,211,.55)}
.focus__k{font-size:var(--fs-caption); font-weight:800; color:rgba(159,192,230,.9); letter-spacing:0.05em}
.focus__v{margin-top:8px; font-family:var(--font-metric); font-size:28px; font-weight:700; letter-spacing:0.03em; color:rgba(234,243,255,.96)}
.focus__s{margin-top:6px; font-size:var(--fs-caption); font-weight:600; color:rgba(159,192,230,.86); line-height:1.45}

/* 占比：环图左 + 占比列表右 */
.ratio{display:grid; grid-template-columns: 170px 1fr; gap:12px; align-items:stretch}
.ratio .donut{height:170px}
.ratio__list{display:flex; flex-direction:column; gap:8px; min-width:0}
.ratio-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-radius:12px;
  border:1px solid rgba(64,120,190,.18);
  background: rgba(5,11,26,.20);
  padding:8px 10px;
  cursor:pointer;
  transition: border-color .12s ease, background .12s ease, box-shadow .12s ease;
}
.ratio-row:hover{border-color: rgba(32,227,211,.38); background: rgba(5,11,26,.28)}
.ratio-row.is-active{
  border-color: rgba(32,227,211,.62);
  background: rgba(32,227,211,.10);
  box-shadow: 0 0 0 3px rgba(32,227,211,.10);
}
.ratio-row__l{display:flex; align-items:center; gap:10px; min-width:0}
.ratio-row__n{font-size:var(--fs-caption); font-weight:800; letter-spacing:0.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.ratio-row__v{font-family:var(--font-metric); font-size:16px; font-weight:700; letter-spacing:0.03em}

/* panelD：压缩上方占比区，为事件列表让出高度 */
#panelD .panel__bd{gap:8px}
#panelD .subsec.subsec--fixed .subsec__hd{margin-bottom:6px}
#panelD .subsec.subsec--fixed .ratio{grid-template-columns: 154px 1fr; gap:10px}
#panelD .subsec.subsec--fixed .ratio .donut{height:154px; margin-bottom:0}
#panelD .subsec.subsec--fixed .ratio__list{gap:7px}
#panelD .subsec.subsec--fixed .ratio-row{padding:7px 10px}

/* panelD：事件列表行更“能看清” */
#panelD #eventList .row{
  padding:12px 12px;
  min-height:52px;
}
#panelD #eventList .row__t{font-size:15px; font-weight:700}
#panelD #eventList .row__d{font-size:14px; margin-top:5px}

/* 为企服务清单（替代占比图） */
.svcgrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
.svc{
  border-radius:11px;
  border:1px solid rgba(90,140,200,.14);
  background: linear-gradient(165deg, rgba(61,212,255,.05) 0%, transparent 40%), linear-gradient(180deg, rgba(10,24,52,.65), rgba(6,14,32,.5));
  padding:10px 12px;
  min-width:0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  transition: border-color .15s ease;
}
.svc:hover{border-color: rgba(61,212,255,.22)}
.svc__k{
  font-size:12px;
  font-weight:800;
  color:var(--text-dim);
  letter-spacing:0.06em;
  line-height:1.25;
}
.svc__v{
  margin-top:8px;
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:4px 8px;
  font-family: var(--font-metric);
  font-variant-numeric: tabular-nums;
  line-height:1.2;
}
.svc__num{font-size:19px; font-weight:700; letter-spacing:0.02em; color:var(--text); text-shadow: 0 0 14px rgba(61,212,255,.1)}
.svc__u{font-size:11px; font-weight:700; color:var(--muted); letter-spacing:0.03em; font-family: var(--font-body)}
.svc__s{display:none}

/* panelOR2：为企服务要素 · 参考「指挥体系」横卡（左图标 + 右标题与双指标，压低高度） */
#panelOR2.panel--tall .panel__bd--or2{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  /* 避开 panel ribbon 标题安全区（覆盖通用 .panel[data-ribbon] padding-top） */
  padding:36px 10px 6px;
}
#panelOR2 .subsec--or2{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  margin-bottom:0;
}
#panelOR2 .subsec--or2 .subsec__hd{
  margin-bottom:4px;
  flex-shrink:0;
}
#panelOR2 .subsec--or2 .subsec__title{
  font-size:13px;
  letter-spacing:0.06em;
}
#panelOR2 .subsec--or2 .subsec__meta{
  font-size:10px;
}
#panelOR2 .subsec--or2 .subsec__bd--svc-stack{
  flex:0 1 auto;
  min-height:0;
  overflow:visible;
  display:flex;
  flex-direction:column;
  gap:4px;
}
#panelOR2 .subsec--or2 .subsec__ft{
  flex-shrink:0;
  margin-top:2px;
  padding-top:0;
}
#panelOR2 .or2-svc-cats.svc-cmd-wrap{
  flex:0 0 auto;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:8px;
  overflow:visible;
  align-items:stretch;
}
#panelOR2 .svc-cmd-card{
  flex:unset;
  min-width:0;
  max-width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 10px 10px;
  border-radius:12px;
  border:1px solid rgba(61,212,255,.22);
  background:
    linear-gradient(135deg, rgba(61,212,255,.08) 0%, transparent 45%),
    linear-gradient(180deg, rgba(8,22,48,.72), rgba(6,14,32,.56));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 0 0 2px rgba(32,227,211,.06);
}
#panelOR2 .svc-cmd-card--click{
  cursor:pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
#panelOR2 .svc-cmd-card--click:hover{
  border-color: rgba(46,230,214,.55);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 0 0 3px rgba(32,227,211,.12);
  transform: translateY(-1px);
}
#panelOR2 .svc-cmd-card--click:focus-visible{
  outline:none;
  border-color: rgba(46,230,214,.65);
  box-shadow: 0 0 0 3px rgba(32,227,211,.2);
}
#panelOR2 .svc-cmd-card__icon{
  flex-shrink:0;
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  border:1px solid rgba(0,242,255,.35);
  background: radial-gradient(circle at 30% 30%, rgba(0,242,255,.26), rgba(0,60,100,.55));
  box-shadow: 0 0 12px rgba(0,242,255,.14);
}
#panelOR2 .svc-cmd-card__svg{
  width:32px;
  height:32px;
  display:block;
}
#panelOR2 .svc-cmd-card__txt{
  min-width:0;
  flex:1;
  text-align:left;
}
#panelOR2 .svc-cmd-card__title{
  font-size:12px;
  font-weight:800;
  letter-spacing:0.08em;
  color:rgba(240,248,255,.96);
  margin-bottom:6px;
  line-height:1.2;
}
#panelOR2 .svc-cmd-card__row{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-top:0;
}
#panelOR2 .svc-cmd-card__row--sub .svc-cmd-card__v{
  font-size:13px;
}
#panelOR2 .svc-cmd-card__row--sub .svc-cmd-card__k{
  font-size:10px;
}
#panelOR2 .svc-cmd-card__v{
  font-family:var(--font-metric);
  font-size:14px;
  font-weight:700;
  color:rgba(46,230,214,.96);
  line-height:1.2;
  overflow-wrap:anywhere;
}
#panelOR2 .svc-cmd-card__k{
  font-size:11px;
  font-weight:700;
  color:rgba(165,223,249,.78);
  line-height:1.25;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}

.svc-modal-row{
  border-radius:12px;
  border:1px solid rgba(80,130,190,.18);
  background:rgba(5,14,32,.4);
  padding:12px 14px;
  margin-bottom:10px;
}
.svc-modal-row:last-child{margin-bottom:0}
.svc-modal-row__t{
  font-size:14px;
  font-weight:800;
  letter-spacing:0.08em;
  color:rgba(220,235,255,.95);
  margin-bottom:10px;
}
.svc-modal-row__g{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 16px;
}
.svc-modal-row__k{
  display:block;
  font-size:12px;
  font-weight:600;
  color:var(--muted);
  margin-bottom:4px;
}
.svc-modal-row__v{
  font-size:16px;
  font-weight:800;
  color:rgba(46,230,214,.95);
  font-family:var(--font-metric);
}

/* panelD：上半块更紧凑，给事件列表更多高度 */
#panelD #svcList{margin-top:2px}

/* 复盘：简短总结 */
.review{display:flex; flex-direction:column; gap:8px}
.review__item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.18);
  background: rgba(5,11,26,.18);
  padding:10px 12px;
  font-size:var(--fs-caption);
  font-weight:700;
  color:rgba(234,243,255,.92);
  line-height:1.5;
}
.review__item-idx{
  flex-shrink:0;
  min-width:24px;
  font-family:var(--font-metric);
  font-size:12px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  color:rgba(200,248,255,.7);
}
.review__item-body{flex:1;min-width:0}
.svc-modal-row__cell{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-width:0;
}
.svc-modal-row__idx{
  flex-shrink:0;
  width:20px;
  font-family:var(--font-metric);
  font-size:12px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  color:rgba(200,248,255,.65);
  line-height:1.35;
}
.svc-modal-row__cell-bd{flex:1;min-width:0}

/* overlay */
.overlay{
  position:fixed;
  inset:0;
  display:none;
  z-index:50;
}
.overlay.is-open{display:block}
.overlay__mask{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}
.drawer{
  position:absolute;
  top:0; right:0;
  height:100%;
  width:860px;
  background: linear-gradient(180deg, rgba(12,22,48,.96), rgba(8,18,37,.92));
  border-left:1px solid rgba(64,120,190,.30);
  box-shadow: -18px 0 60px rgba(0,0,0,.42);
  transform: translateX(100%);
  transition: transform .20s ease;
  display:flex;
  flex-direction:column;
}
.overlay.is-drawer .drawer{transform: translateX(0)}
.drawer__hd{
  padding:12px 14px;
  border-bottom:1px solid rgba(64,120,190,.22);
  display:flex; align-items:center; justify-content:space-between;
}
.drawer__title{font-family:var(--font-title);font-size:var(--fs-panel-title);font-weight:800;letter-spacing:0.055em}
.drawer__bd{padding:12px 14px; overflow:auto; min-height:0}

.modal{
  position:absolute;
  left:50%; top:50%;
  transform: translate(-50%, -50%) scale(.98);
  width: 1200px;
  max-width: calc(100% - 24px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.04) 0%, transparent 30%),
    linear-gradient(180deg, rgba(14,26,54,.97), rgba(6,14,32,.94));
  border:1px solid rgba(90,140,200,.28);
  border-radius:16px;
  box-shadow: 0 32px 100px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.06);
  display:none;
}
.overlay.is-modal .modal{display:block; transform: translate(-50%, -50%) scale(1)}
.modal__hd{
  padding:12px 14px;
  border-bottom:1px solid rgba(64,120,190,.22);
  display:flex; align-items:center; justify-content:space-between;
}
.modal__title{font-family:var(--font-title);font-size:var(--fs-panel-title);font-weight:900;letter-spacing:0.055em}
.modal__bd{padding:12px 14px 14px}
.modal.modal--event-detail{
  width: min(1500px, calc(100vw - 28px));
  max-width: min(1500px, calc(100% - 24px));
  max-height: calc(100vh - 24px);
  border-color: rgba(82,160,220,.38);
  box-shadow:
    0 0 0 1px rgba(61,212,255,.14),
    0 0 48px rgba(20,100,180,.22),
    0 28px 90px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.07);
}
.overlay.is-modal .modal.modal--event-detail{
  display: flex;
  flex-direction: column;
}
.modal.modal--event-detail .modal__hd{
  flex-shrink: 0;
  background: linear-gradient(180deg, rgba(18,36,72,.96), rgba(8,18,42,.9));
  border-bottom-color: rgba(61,212,255,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.modal.modal--event-detail .modal__bd{
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 8px 10px 10px;
  display: flex;
  flex-direction: column;
}
.modal.modal--event-detail .modal__title{
  font-size:13px;
  line-height:1.35;
  white-space:normal;
  max-width:calc(100% - 44px);
  color: rgba(238,248,255,.98);
  text-shadow: 0 0 18px rgba(48,200,255,.22);
}
.modal.modal--event-detail .evt-detail > .modal__actions{
  flex-shrink: 0;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid rgba(64,120,190,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.modal.modal--event-detail .evt-detail__kv-grid{
  gap: 4px 8px;
  font-size: 11px;
}
.modal.modal--event-detail .evt-detail__kv-grid--facts{
  gap: 6px;
  font-size: 12px;
}
.modal.modal--event-detail .evt-detail__k{
  font-size: 11px;
  letter-spacing: 0.03em;
  color: rgba(138,182,225,.88);
}
.modal.modal--event-detail .evt-detail__v{
  font-weight: 700;
  color: rgba(244,250,255,.96);
}
.modal.modal--event-detail .evt-detail__kv-grid--facts .evt-detail__k{
  padding: 0;
  line-height: 1.2;
}
.modal.modal--event-detail .evt-detail__kv-grid--facts .evt-detail__v{
  padding: 0;
  line-height: 1.4;
}
.modal.modal--event-detail .evt-detail__sec{
  padding: 7px 9px 9px;
  border: 1px solid rgba(72,150,210,.28);
  background: linear-gradient(152deg, rgba(14,34,72,.9) 0%, rgba(5,12,32,.78) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 6px 22px rgba(0,0,0,.2);
}
.modal.modal--event-detail .evt-detail__sec-hd{
  font-size: 12px;
  margin-bottom: 6px;
  padding: 5px 8px;
  box-shadow: 0 0 18px rgba(28,199,255,.1);
}
.modal.modal--event-detail .evt-detail__sec-no{
  box-shadow: 0 2px 10px rgba(28,199,255,.35);
}
.modal.modal--event-detail .evt-detail__pill{
  background: rgba(28,199,255,.12);
  border-color: rgba(61,212,255,.38);
  color: rgba(190,235,255,.95);
}
.modal.modal--event-detail .evt-detail__block{
  margin-top: 6px;
  padding: 7px 9px;
  background: rgba(4,12,30,.55);
  border-color: rgba(61,212,255,.16);
}
.modal.modal--event-detail .evt-detail__block-k{
  font-size: 11px;
  color: rgba(160,205,240,.9);
}
.modal.modal--event-detail .evt-detail__flow-card{
  padding: 8px 10px;
  border-color: rgba(61,212,255,.18);
  background: linear-gradient(180deg, rgba(20,48,88,.55), rgba(6,16,36,.45));
}
.modal.modal--event-detail .evt-detail__card{
  min-height: 56px;
  padding: 6px 8px;
  border-radius: 10px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
  background: linear-gradient(165deg, rgba(12,34,66,.82), rgba(5,12,28,.72));
  border-color: rgba(72,140,200,.28);
}
.modal.modal--event-detail .evt-detail__card-dept{font-size:10px}
.modal.modal--event-detail .evt-detail__card-action{font-size:10px;line-height:1.35}
.modal.modal--event-detail .evt-detail__card-time{font-size:9px}
.modal.modal--event-detail .evt-detail__card--done{
  border-color: rgba(72,220,165,.4);
  background: linear-gradient(165deg, rgba(16,52,42,.65), rgba(5,14,28,.72));
}
.modal.modal--event-detail .evt-detail__aside{
  padding: 7px 8px 8px;
  background: linear-gradient(180deg, rgba(10,28,58,.9), rgba(4,12,28,.72));
  border-color: rgba(72,150,210,.32);
}
.modal.modal--event-detail .evt-detail__aside--column{
  flex: 1;
  min-height: 0;
}
.modal.modal--event-detail .evt-detail__subhd{
  color: rgba(155,200,240,.88);
}
.modal.modal--event-detail .evt-detail__sec-subbar{
  margin-bottom: 6px;
}
.modal.modal--event-detail .evt-detail__col--map .evt-detail__map-ph{
  flex: 1;
  min-height: 160px;
  height: auto;
  border-radius: 10px;
  box-shadow: inset 0 0 36px rgba(28,199,255,.08);
  background:
    radial-gradient(ellipse 50% 40% at 58% 38%, rgba(120,210,160,.14), transparent 65%),
    radial-gradient(ellipse 80% 70% at 50% 45%, rgba(40,90,120,.38), transparent 60%),
    linear-gradient(165deg, rgba(14,36,28,.55), rgba(8,22,42,.88)),
    linear-gradient(165deg, rgba(12,28,52,.9), rgba(4,14,28,.75)),
    repeating-linear-gradient(90deg, transparent, transparent 18px, rgba(61,212,255,.04) 18px, rgba(61,212,255,.04) 19px),
    repeating-linear-gradient(0deg, transparent, transparent 18px, rgba(61,212,255,.03) 18px, rgba(61,212,255,.03) 19px);
}
@media (max-width: 1180px){
  .evt-detail__layout{
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(220px, 300px);
  }
}
.modal.modal--event-detail .evt-detail__map-cap{
  font-size: 11px;
}
.modal.modal--event-detail .evt-detail__block-v{
  font-size: 12px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 960px){
  .evt-detail__layout{
    grid-template-columns: 1fr;
    gap: 10px 0;
    overflow: hidden;
  }
  .evt-detail__col--left{padding-right:0}
  .evt-detail__col--mid{
    border-left: none;
    border-right: none;
    padding: 0;
    box-shadow: none;
  }
  .evt-detail__col--map{padding-left:0}
  .evt-detail__sec--grow{
    min-height: 0;
  }
  .modal.modal--event-detail .modal__bd{
    overflow: hidden;
  }
}

.icon-btn{
  width:34px; height:34px;
  border-radius:10px;
  border:1px solid rgba(64,120,190,.22);
  background: rgba(5,11,26,.30);
  color: rgba(234,243,255,.95);
  font-size:18px;
  font-weight:900;
  cursor:pointer;
}
.icon-btn:hover{border-color: rgba(32,227,211,.55)}

.form-row{display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-bottom:10px}
.field{border-radius:14px;border:1px solid rgba(64,120,190,.18); background: rgba(5,11,26,.22); padding:10px}
.field__k{font-size:var(--fs-caption);font-weight:800;color:rgba(159,192,230,.92)}
.field__v{margin-top:8px;font-size:var(--fs-caption);font-weight:600;color:rgba(234,243,255,.92); display:flex; gap:10px; flex-wrap:wrap}
.chk{font-size:var(--fs-caption);font-weight:700;color:rgba(234,243,255,.92)}
.textarea{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.22);
  background: rgba(5,11,26,.24);
  color: rgba(234,243,255,.95);
  padding:12px;
  font-size:var(--fs-caption);
  font-weight:600;
  outline:none;
}
.textarea:focus{border-color: rgba(32,227,211,.55); box-shadow: 0 0 0 3px rgba(32,227,211,.12)}

.modal__actions{display:flex; justify-content:flex-end; gap:10px; margin-top:10px}
.toast{
  margin-top:10px;
  font-size:var(--fs-caption);
  font-weight:800;
  color: rgba(32,227,211,.95);
  min-height:18px;
}

/* scrollbar */
.panel__bd::-webkit-scrollbar,
.subsec__bd::-webkit-scrollbar,
.drawer__bd::-webkit-scrollbar{width:10px}
.panel__bd::-webkit-scrollbar-thumb,
.subsec__bd::-webkit-scrollbar-thumb,
.drawer__bd::-webkit-scrollbar-thumb{
  background: rgba(64,120,190,.25);
  border-radius:999px;
  border:2px solid rgba(0,0,0,0);
  background-clip: padding-box;
}
.panel__bd::-webkit-scrollbar-track,
.subsec__bd::-webkit-scrollbar-track,
.drawer__bd::-webkit-scrollbar-track{background: rgba(0,0,0,0)}

/* ---- v2026-04-10 订单/清单双轨增量样式 ---- */

.kpi-strip--6{
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap:8px;
  align-items:stretch;
  width:100%;
}
.kpi-strip--6 .card{padding:10px 8px 9px; min-height:0; min-width:0}
.kpi-strip--6 .card__t{font-size:11px; line-height:1.3}
.kpi-strip--6 .card__v{font-size:22px}
.kpi-strip--6 .card__s{font-size:10px}
.kpi-strip--6 .card__tag{font-size:9px; margin-top:6px}

/* 首页一库 KPI：参考第二章 KPI/重点指标版式，沿用当前深色科技风 */
.panel--kpi .panel__bd{
  padding:8px 14px 14px;
}
.kpi-strip.kpi-strip--6{
  display:grid;
  grid-template-columns:minmax(268px, .86fr) minmax(0, 2.5fr);
  gap:12px;
  align-items:stretch;
}
.kpi-board__summary,
.kpi-board__focus{
  position:relative;
  min-width:0;
  padding:34px 12px 12px;
  border:1px solid rgba(0,242,255,.23);
  border-radius:10px;
  background:
    linear-gradient(180deg, rgba(61,212,255,.055), rgba(5,13,31,.18)),
    radial-gradient(ellipse 90% 72% at 50% 0%, rgba(0,145,255,.12), transparent 62%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.kpi-board__ribbon{
  position:absolute;
  left:50%;
  top:0;
  transform:translateX(-50%);
  min-width:176px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 28px;
  font-size:17px;
  font-weight:900;
  letter-spacing:.08em;
  color:#eef8ff;
  text-shadow:0 0 14px rgba(61,212,255,.7);
  background:
    linear-gradient(90deg, transparent 0, rgba(0,80,145,.96) 14%, rgba(12,34,87,.96) 50%, rgba(0,80,145,.96) 86%, transparent 100%),
    linear-gradient(180deg, rgba(61,212,255,.20), rgba(0,0,0,0));
  border-bottom:1px solid rgba(61,212,255,.58);
  box-shadow:0 10px 22px rgba(0,0,0,.28);
}
.kpi-board__ribbon::before,
.kpi-board__ribbon::after{
  content:"";
  position:absolute;
  top:50%;
  width:9px;
  height:9px;
  transform:translateY(-50%) rotate(45deg);
  background:rgba(0,242,255,.55);
  box-shadow:0 0 14px rgba(0,242,255,.55);
}
.kpi-board__ribbon::before{left:12px}
.kpi-board__ribbon::after{right:12px}
.kpi-board__ribbon--focus{
  min-width:252px;
}
.kpi-board__goal,
.kpi-focus-card{
  appearance:none;
  font:inherit;
  color:inherit;
  cursor:pointer;
}
.kpi-board__goal{
  width:100%;
  min-height:108px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:12px;
  padding:16px 16px;
  border-radius:8px;
  border:1px solid rgba(31,125,170,.48);
  background:
    linear-gradient(160deg, rgba(61,212,255,.08) 0%, transparent 55%),
    linear-gradient(180deg, rgba(10,24,52,.92), rgba(6,14,32,.78));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    inset 0 0 24px rgba(0,242,255,.035),
    0 10px 22px rgba(0,0,0,.18);
}
.kpi-board__goal-line{
  display:block;
  line-height:1.12;
}
.kpi-board__goal-label{
  display:block;
  margin-bottom:6px;
  color:rgba(222,241,255,.95);
  font-size:18px;
  font-weight:800;
}
.kpi-board__goal-value{
  color:#e9f7ff;
  font-family:var(--font-metric);
  font-size:25px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  text-shadow:0 0 20px rgba(61,212,255,.18);
}
.kpi-board__goal-up{
  color:#7fb9dd;
  font-size:14px;
  font-weight:800;
  letter-spacing:.02em;
  margin-left:8px;
}
.kpi-board__focus-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:9px 12px;
}
.kpi-focus-card{
  min-width:0;
  min-height:76px;
  padding:11px 12px 10px;
  border-radius:8px;
  border:1px solid rgba(31,125,170,.42);
  background:
    linear-gradient(160deg, rgba(61,212,255,.07) 0%, transparent 55%),
    linear-gradient(180deg, rgba(10,24,52,.9), rgba(6,14,32,.72));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}
.kpi-focus-card__title{
  width:100%;
  min-height:0;
  display:block;
  padding:0;
  border:0;
  background:transparent;
  color:rgba(222,241,255,.96);
  font-size:15px;
  font-weight:800;
  line-height:1.22;
  text-align:left;
  text-shadow:none;
  box-shadow:none;
}
.kpi-focus-card__value{
  margin-top:8px;
  display:flex;
  align-items:baseline;
  justify-content:flex-start;
  gap:6px;
  color:#dff6ff;
  text-shadow:0 0 18px rgba(61,212,255,.18);
}
.kpi-focus-card__value span{
  font-family:var(--font-metric);
  font-size:27px;
  font-weight:800;
  line-height:1;
  font-variant-numeric:tabular-nums;
  color:#e9fbff;
}
.kpi-focus-card__value em{
  font-style:normal;
  font-size:14px;
  font-weight:800;
  color:#7fb9dd;
}
.kpi-focus-card:hover,
.kpi-board__goal:hover{
  border-color:rgba(46,230,214,.66);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 0 0 3px rgba(32,227,211,.10);
}

@media (max-width: 900px){
  .kpi-strip.kpi-strip--6{
    grid-template-columns:1fr;
  }
  .kpi-board__focus-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

.dual-trend{
  border-radius:12px;
  border:1px solid rgba(90,140,200,.18);
  background:
    radial-gradient(ellipse 80% 80% at 50% 0%, rgba(61,212,255,.06), transparent 55%),
    linear-gradient(180deg, rgba(6,16,38,.9), rgba(4,10,24,.75));
  /* 改成 ECharts canvas：容器负责尺寸，不再塞 SVG/文字 */
  padding:6px 8px 6px;
  height:188px;
  min-height:188px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.dual-trend__lg{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:6px;
  font-size:12px;
  font-weight:700;
  color:rgba(159,192,230,.88);
}
.lg-i{
  display:inline-block;
  width:10px;height:10px;border-radius:3px;margin-right:4px;
  vertical-align:middle;
}
.lg-i--h{background:rgba(28,199,255,.85)}
.lg-i--x{background:rgba(32,227,211,.85)}

/* OL1 · 进出口管理（三卡横排，参考稿） */
.ol1-trade-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
}
/* 海关 / 口岸：仅金额 + 企业两卡，双列均分 */
.ol1-trade-grid--2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
@media (max-width:520px){
  .ol1-trade-grid--2{ grid-template-columns:1fr; }
}
.ol1-trade-hd__right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
}
.ol1-sel{display:inline-flex; align-items:center}
.ol1-sel__sel{
  /* 对齐当前深色大屏下拉（参考 .ol2-scope__sel） */
  appearance:none;
  color-scheme: dark;
  font-size:14px;
  font-weight:700;
  color:rgba(240,248,255,.94);
  padding:7px 30px 7px 10px;
  border-radius:8px;
  border:1px solid rgba(61,212,255,.26);
  background:
    linear-gradient(180deg, rgba(12,28,58,.62), rgba(6,14,32,.55))
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23a5dff9' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E")
    no-repeat right 10px center / 8px 5px;
  cursor:pointer;
  min-width:72px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 0 0 1px rgba(46,230,214,.08);
}
.ol1-sel__sel:focus{
  outline:none;
  border-color: rgba(46,230,214,.55);
  box-shadow:
    0 0 0 3px rgba(46,230,214,.14),
    inset 0 1px 0 rgba(255,255,255,.05);
}
.ol1-sel__sel:hover{
  border-color: rgba(61,212,255,.38);
  background:
    linear-gradient(180deg, rgba(12,28,58,.72), rgba(6,14,32,.6))
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23d8f3ff' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E")
    no-repeat right 10px center / 8px 5px;
}

/* 进出口管理 KPI 卡：对齐当前深色玻璃态 */
.ol1-kpi-card{
  position:relative;
  border-radius:12px;
  border:1px solid rgba(61,212,255,.22);
  background:
    radial-gradient(ellipse 120% 90% at 30% 0%, rgba(61,212,255,.12), transparent 55%),
    linear-gradient(180deg, rgba(8,22,48,.72), rgba(6,14,32,.56));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 0 0 2px rgba(32,227,211,.06);
  padding:10px 12px 9px;
  min-height:86px;
  min-width:0;
}
.ol1-kpi-card__title{
  margin-left:0;
  padding-left:0;
  margin-top:0;
  font-size:12px;
  font-weight:800;
  letter-spacing:0.08em;
  color:rgba(240,248,255,.96);
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ol1-kpi-card__row{
  margin-top:10px;
  display:flex;
  align-items:baseline;
  gap:6px;
  font-family:var(--font-metric);
  font-variant-numeric:tabular-nums;
}
.ol1-kpi-card__num{
  font-size:18px;
  font-weight:800;
  color:rgba(240,248,255,.96);
}
.ol1-kpi-card__num.is-na{
  color:rgba(165,223,249,.55);
}
.ol1-kpi-card__u{
  font-size:11px;
  font-weight:700;
  color:rgba(175,205,235,.88);
}
.ol1-kpi-card__sub{
  margin-top:8px;
  position:static;
  font-size:10px;
  font-weight:600;
  color:rgba(165,223,249,.72);
  letter-spacing:0.04em;
}
.ol1-kpi-card--click{
  cursor:pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.ol1-kpi-card--click:hover{
  border-color: rgba(46,230,214,.55);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 0 0 3px rgba(32,227,211,.12);
  transform: translateY(-1px);
}
.ol1-kpi-card--click:focus-visible{
  outline:none;
  border-color: rgba(46,230,214,.65);
  box-shadow: 0 0 0 3px rgba(32,227,211,.2);
}

/* 进出口管理 · 指标明细弹窗 */
.ol1-detail__toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:10px 12px;
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.22);
  background: rgba(5,11,26,.28);
  margin-bottom:12px;
}
.ol1-detail__field{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:120px;
}
.ol1-detail__field--grow{
  flex:1 1 160px;
  min-width:140px;
}
.ol1-detail__lbl{
  font-size:12px;
  font-weight:800;
  color:rgba(165,223,249,.82);
  letter-spacing:0.04em;
}
.ol1-detail__sel,
.ol1-detail__input{
  border-radius:10px;
  border:1px solid rgba(64,120,190,.28);
  background: rgba(5,11,26,.45);
  color:rgba(234,243,255,.95);
  padding:8px 10px;
  font-size:13px;
  font-weight:600;
  outline:none;
  min-height:36px;
}
.ol1-detail__input::placeholder{
  color:rgba(165,223,249,.45);
}
.ol1-detail__sel:focus,
.ol1-detail__input:focus{
  border-color: rgba(46,230,214,.55);
  box-shadow: 0 0 0 2px rgba(32,227,211,.12);
}
.ol1-detail__actions{
  display:flex;
  gap:8px;
  margin-left:auto;
  flex-wrap:wrap;
}
.ol1-detail__summary{
  margin-bottom:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(46,230,214,.2);
  background: linear-gradient(135deg, rgba(46,230,214,.08), rgba(28,199,255,.04));
}
.ol1-detail__summary--empty{
  border-style:dashed;
  color:rgba(165,223,249,.82);
  font-size:13px;
  font-weight:600;
}
.ol1-detail__sum-hd{
  font-size:12px;
  font-weight:800;
  color:rgba(200,248,255,.75);
  letter-spacing:0.04em;
  margin-bottom:10px;
}
.ol1-detail__sum-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.ol1-detail__sum-grid--3{
  grid-template-columns: repeat(3, 1fr);
}
.ol1-detail__sum-grid--ol2{
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
@media (max-width:900px){
  .ol1-detail__sum-grid--3{ grid-template-columns: 1fr; }
  .ol1-detail__sum-grid--ol2{ grid-template-columns: 1fr; }
}
.ol1-detail__sum-item{
  border-radius:12px;
  border:1px solid rgba(255,255,255,.1);
  background: rgba(8,20,52,.22);
  padding:10px 12px;
}
.ol1-detail__sum-k{
  display:block;
  font-size:12px;
  font-weight:800;
  color:rgba(165,223,249,.85);
  letter-spacing:0.03em;
}
.ol1-detail__sum-v{
  display:block;
  margin-top:8px;
  font-family:var(--font-metric);
  font-size:22px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  color:rgba(240,248,255,.96);
}
.ol1-detail__sum-y{
  display:block;
  margin-top:6px;
  font-size:12px;
  font-weight:700;
  color:rgba(68,241,166,.92);
}
.ol1-detail__table-wrap{
  display:flex;
  flex-direction:column;
  max-height:min(420px, 52vh);
  min-height:0;
  overflow:hidden;
  border-radius:12px;
  border:1px solid rgba(64,120,190,.2);
  background: rgba(5,11,26,.2);
}
.ol1-detail__table-shell{
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
}
.ol1-detail__scroll{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
}
.registered-enterprise-detail .ol1-detail__scroll,
.focus-detail .ol1-detail__scroll,
.kpi-goal-detail .ol1-detail__scroll{
  overflow:visible;
}
.ol1-detail-th{
  vertical-align:top;
  white-space:normal;
}
.ol1-detail-th--idx{
  width:52px;
  text-align:center;
}
.ol1-th__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  margin-bottom:6px;
}
.ol1-th__lab{
  flex:1;
  min-width:0;
}
.ol1-th__sort{
  flex-shrink:0;
  width:28px;
  height:26px;
  padding:0;
  border-radius:8px;
  border:1px solid rgba(64,120,190,.35);
  background: rgba(5,11,26,.5);
  color:rgba(200,248,255,.88);
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  line-height:1;
}
.ol1-th__sort:hover{
  border-color: rgba(46,230,214,.45);
  color:rgba(46,230,214,.95);
}
.ol1-th__sort.is-active{
  border-color: rgba(46,230,214,.55);
  background: rgba(46,230,214,.12);
}
.ol1-td-idx{
  text-align:center;
  font-variant-numeric:tabular-nums;
  color:rgba(200,248,255,.75);
}
.ol1-detail__pager{
  flex-shrink:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-top:1px solid rgba(64,120,190,.22);
  background: rgba(8,20,52,.35);
}
.ol1-detail__pager-info{
  font-size:12px;
  font-weight:600;
  color:rgba(165,223,249,.82);
}
.ol1-detail__pager-info b{
  color:rgba(240,248,255,.95);
  font-weight:800;
}
.ol1-detail__pager-btns{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}
.ol1-pg__num{
  min-width:32px;
  height:30px;
  padding:0 6px;
  border-radius:8px;
  border:1px solid rgba(64,120,190,.35);
  background: rgba(5,11,26,.45);
  color:rgba(200,248,255,.9);
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.ol1-pg__num:hover{
  border-color: rgba(46,230,214,.45);
}
.ol1-pg__num.is-active{
  border-color: rgba(46,230,214,.55);
  background: rgba(46,230,214,.15);
  color:rgba(46,230,214,.98);
}
.ol1-detail-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.ol1-detail-table th,
.ol1-detail-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-weight:600;
  color:rgba(234,243,255,.92);
}
.ol1-detail-table th{
  position:sticky;
  top:0;
  z-index:1;
  background: rgba(8,22,48,.95);
  font-size:12px;
  font-weight:800;
  color:rgba(200,248,255,.88);
  letter-spacing:0.03em;
  white-space:nowrap;
}
.ol1-detail-table th.ol1-detail-th,
.ol1-detail-table th.ol1-detail-th--idx{
  white-space:normal;
}
.ol1-detail-table th.ol1-detail-th--biz{
  width:78px;
  text-align:center;
}
.ol1-detail-table__actions{
  text-align:center;
  white-space:nowrap;
}
.ol1-detail-table__actions .btn{
  min-width:54px;
}
.ol1-detail-table tbody tr:hover td{
  background: rgba(46,230,214,.06);
}
.ol1-detail__empty{
  padding:24px;
  text-align:center;
  font-size:13px;
  font-weight:700;
  color:rgba(165,223,249,.75);
}
.ol1-growth-region-table .ol1-growth-delta{
  font-family:var(--font-metric);
  font-size:14px;
  font-weight:900;
  color:rgba(68,241,166,.96);
}

.ol1-highlights{
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-height:0;
  overflow-y:auto;
}
.ol1-hl-row{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(80,130,190,.12);
  background:rgba(3,10,24,.35);
  line-height:1.45;
}
.ol1-hl-tag{
  flex-shrink:0;
  font-size:10px;
  font-weight:800;
  letter-spacing:0.08em;
  color:rgba(61,212,255,.9);
  padding:2px 7px;
  border-radius:6px;
  border:1px solid rgba(61,212,255,.22);
  background:rgba(61,212,255,.06);
}
.ol1-hl-text{
  font-size:12px;
  font-weight:600;
  color:rgba(175,205,240,.9);
}

.warn-src-tabs{margin-bottom:6px}

/* —— 左下 OL2：研判支撑（折线）在上，预警管理（四格）在下 —— */
#panelOL2 .panel__bd--ol2{
  gap:8px;
}
#panelOL2 .ol2-subsec--research{
  flex:1 1 0;
  min-height:0;
  margin-bottom:0;
}
#panelOL2 .ol2-subsec--research .subsec__bd{
  overflow:hidden;
  gap:6px;
}
.ol2-sec-hd{
  position:relative;
  display:flex;
  align-items:center;
  /* 二级标题统一左对齐（与其它 subsec__hd 一致） */
  justify-content:flex-start;
  gap:8px;
  margin-bottom:6px;
}
.ol2-sec-hd .subsec__title{
  margin:0;
}
.ol2-sec-hd__main{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1;
  min-width:0;
}
.ol2-sec-hd__main .ol2-sec-hd__title{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ol2-rule-btn{
  flex-shrink:0;
}
.ol2-sec-hd__title{
  letter-spacing:0.12em;
}
.ol2-sec-hd__decor{
  display:none;
}
.ol2-sec-hd__decor--r{
  display:none;
}
.ol2-more{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  border:none;
  background:transparent;
  color:rgba(61,212,255,.85);
  font-size:16px;
  font-weight:800;
  cursor:pointer;
  padding:2px 6px;
  line-height:1;
}
.ol2-more:hover{color:rgba(120,220,255,.95)}
/* OL2：下钻按钮与一级 ribbon 同行（右上角），不与「预警管理」二级条头同排 */
#panelOL2 .ol2-more--ribbon{
  position:absolute;
  top:6px;
  right:10px;
  transform:none;
  z-index:4;
}
.ol2-alert-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.ol2-alert-cell{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:0;
  border-radius:10px;
  border:1px solid rgba(80,130,190,.16);
  background:linear-gradient(165deg, rgba(12,28,58,.48), rgba(5,12,28,.36));
  padding:8px 10px 9px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.ol2-alert-cell__icon{
  width:36px;
  height:36px;
  border-radius:8px;
  flex-shrink:0;
  border:1px solid rgba(0,242,255,.35);
  background: radial-gradient(circle at 30% 30%, rgba(0,242,255,.26), rgba(0,60,100,.55));
  box-shadow: 0 0 12px rgba(0,242,255,.14);
}
.ol2-alert-cell--amber .ol2-alert-cell__icon{
  /* 红色预警态 */
  border-color: rgba(255,64,64,.48);
  background: radial-gradient(circle at 30% 30%, rgba(255,64,64,.34), rgba(80,0,12,.52));
  box-shadow: 0 0 12px rgba(255,64,64,.18);
}
.ol2-alert-cell__bar{
  width:4px;
  border-radius:3px;
  flex-shrink:0;
  align-self:stretch;
}
.ol2-alert-cell--cyan .ol2-alert-cell__bar{
  background:linear-gradient(180deg, rgba(28,199,255,.95), rgba(28,199,255,.35));
  box-shadow:0 0 10px rgba(28,199,255,.25);
}
.ol2-alert-cell--amber .ol2-alert-cell__bar{
  background:linear-gradient(180deg, rgba(255,64,64,.95), rgba(255,64,64,.38));
  box-shadow:0 0 10px rgba(255,64,64,.22);
}
.ol2-alert-cell__body{min-width:0; flex:1}
.ol2-alert-cell__k{
  font-size:14px;
  font-weight:700;
  color: rgba(165,223,249,.78);
  letter-spacing:0.04em;
  line-height:1.25;
}
.ol2-alert-cell__v{
  margin-top:4px;
  font-family:var(--font-metric);
  font-size:32px;
  font-weight:700;
  letter-spacing:0.02em;
  font-variant-numeric:tabular-nums;
  line-height:1.1;
}
.ol2-alert-cell--cyan .ol2-alert-cell__v{color:rgba(170,225,255,.98)}
.ol2-alert-cell--amber .ol2-alert-cell__v{color:rgba(255,224,160,.98)}
.ol2-alert-cell--click{
  cursor:pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.ol2-alert-cell--click:hover{
  border-color: rgba(46,230,214,.42);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 0 0 3px rgba(32,227,211,.1);
  transform: translateY(-1px);
}
.ol2-alert-cell--click:focus-visible{
  outline:none;
  border-color: rgba(46,230,214,.55);
  box-shadow: 0 0 0 3px rgba(32,227,211,.16);
}
.ol2-research-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
  justify-content:space-between;
}
.ol2-research-tabs{
  flex:1 1 auto;
  min-width:0;
}
.ol2-research-legend{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:14px;
  font-weight:700;
  color:rgba(159,192,230,.88);
  flex-shrink:0;
}
.ol2-lg{display:inline-flex; align-items:center; gap:8px}
.ol2-lg-i{
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:999px;
  vertical-align:middle;
}
.ol2-lg-i--ly{
  background:rgba(90,150,255,.95);
  box-shadow:0 0 10px rgba(90,150,255,.35);
}
.ol2-lg-i--ty{
  background:rgba(0,255,136,.95);
  box-shadow:0 0 10px rgba(0,255,136,.30);
}
.ol2-scope{margin:0}
.ol2-scope__sel{
  appearance:none;
  /* 让浏览器原生下拉面板跟随深色方案（否则展开项常见白底） */
  color-scheme: dark;
  font-size:14px;
  font-weight:700;
  color:rgba(240,248,255,.94);
  padding:7px 30px 7px 10px;
  border-radius:8px;
  border:1px solid rgba(61,212,255,.26);
  background:
    linear-gradient(180deg, rgba(12,28,58,.62), rgba(6,14,32,.55))
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23a5dff9' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E")
    no-repeat right 10px center / 8px 5px;
  cursor:pointer;
  min-width:72px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 0 0 1px rgba(46,230,214,.08);
}
.ol2-scope__sel:focus{
  outline:none;
  border-color: rgba(46,230,214,.55);
  box-shadow:
    0 0 0 3px rgba(46,230,214,.14),
    inset 0 1px 0 rgba(255,255,255,.05);
}
.ol2-scope__sel:hover{
  border-color: rgba(61,212,255,.38);
  background:
    linear-gradient(180deg, rgba(12,28,58,.72), rgba(6,14,32,.6))
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23d8f3ff' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E")
    no-repeat right 10px center / 8px 5px;
}
.ol2-chart-wrap{
  flex:1;
  min-height:96px;
  border-radius:12px;
  border:1px solid rgba(64,120,190,.18);
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, rgba(61,212,255,.06), transparent 55%),
    linear-gradient(180deg, rgba(6,16,38,.88), rgba(4,10,24,.72));
  padding:6px 8px 4px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.ol2-chart-svg{display:block; width:100%; height:100%}

.warn-donut-wrap{
  display:grid;
  grid-template-columns: 128px 1fr;
  gap:12px;
  align-items:center;
  padding:8px 0 4px;
}
.donut--warn{
  height:128px;
  margin-bottom:0;
  border-radius:16px;
  border:1px solid rgba(90,140,200,.12);
  background: rgba(0,0,0,.15);
}
.donut--warn .donut__ring{
  width:104px;height:104px;
  mask: radial-gradient(circle 42px, transparent 42px, #000 43px);
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.35));
}
.donut--warn .donut__v{font-size:20px}
.donut--warn .donut__k{font-size:11px}
.warn-legend{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  font-size:14px;
  font-weight:600;
}
.warn-legend__row{
  display:grid;
  grid-template-columns: 22px 12px minmax(0,1fr) auto auto auto;
  gap:8px;
  align-items:center;
  color:var(--text-dim);
  padding:5px 8px;
  border-radius:8px;
  background: rgba(0,0,0,.12);
  border:1px solid rgba(80,130,190,.08);
}
.warn-legend__idx{
  font-family:var(--font-metric);
  font-size:11px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  color:rgba(200,248,255,.65);
  text-align:center;
}
.warn-legend__name{font-weight:700; color:rgba(255,255,255,.94); letter-spacing:0.02em}
.warn-legend__n{font-family:var(--font-metric);font-variant-numeric:tabular-nums; font-weight:700; color:rgba(255,255,255,.95)}
.warn-legend__pipe{color:rgba(165,223,249,.55); font-weight:800}
.warn-legend__p{color:rgba(165,223,249,.85);font-variant-numeric:tabular-nums; font-weight:700}

.ana-trend--research{
  margin-top:0;
  padding:8px 10px;
}
.ana-trend--research .ana-trend__bd{height:72px}

/* panelOR1：统计并入列表上方一条，释放纵向空间 */
#panelOR1.panel--tall .panel__bd--or1{
  flex:1;
  min-height:0;
}
#panelOR1 .subsec--or1-list{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  margin-bottom:0;
}
#panelOR1 .subsec--or1-list .subsec__hd{
  flex-shrink:0;
  margin-bottom:5px;
}
#panelOR1 .subsec--or1-list .event-strip{
  flex-shrink:0;
}
#panelOR1 .subsec--or1-list .or1-list-stitle{
  flex-shrink:0;
}
#panelOR1 .subsec--or1-list .chips--status{
  flex-shrink:0;
}
#panelOR1 .subsec--or1-list .subsec__title{
  font-size:13px;
}
#panelOR1 .subsec--or1-list .subsec__meta{
  font-size:10px;
}
#panelOR1 .subsec--or1-list .subsec__bd{
  flex:0 1 auto !important;
  overflow-y:visible !important;
  overflow-x:hidden;
  min-height:0;
}
/* 清单 · 企业问题管理：统计区与列表区之间的二级标题 */
.or1-list-stitle{
  position:relative;
  margin:8px 0 2px;
  padding:2px 0 2px 10px;
  font-family:var(--font-title);
  font-size:12px;
  font-weight:800;
  letter-spacing:0.07em;
  color:rgba(240,248,255,.94);
}
.or1-list-stitle::before{
  content:"";
  position:absolute;
  left:0;
  top:3px;
  bottom:3px;
  width:3px;
  border-radius:2px;
  background:linear-gradient(180deg, var(--cyan2), rgba(0,242,255,.22));
  box-shadow:0 0 10px rgba(0,242,255,.14);
}
/* 参考「应急事件」：底边高亮 Tab */
.chips--or1-tabs{
  gap:4px !important;
  margin-top:0 !important;
  margin-bottom:5px !important;
  padding:2px 2px 0 !important;
  border-radius:0 !important;
  background:transparent !important;
  border:none !important;
  border-bottom:1px solid rgba(70,120,190,.22) !important;
}
.chips--or1-tabs .chip{
  border-radius:8px 8px 0 0;
  padding:5px 10px;
  font-size:11px;
  margin-bottom:-1px;
  border-bottom:2px solid transparent;
}
.chips--or1-tabs .chip.is-active{
  border-color:rgba(61,212,255,.5);
  background:rgba(61,212,255,.1);
  border-bottom-color:rgba(61,212,255,.85);
  box-shadow:none;
}
/* 事件行：徽标 + 摘要 + 日期 + 查看 */
.event-item{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  gap:8px 10px;
  align-items:center;
  padding:7px 8px;
  border-radius:8px;
  border:1px solid rgba(80,130,190,.16);
  background:rgba(4,14,32,.38);
  cursor:pointer;
  transition:border-color .12s ease, background .12s ease;
}
.event-item:hover{
  border-color:rgba(61,212,255,.22);
  background:rgba(8,20,48,.45);
}
.event-item__badge{
  flex-shrink:0;
  padding:3px 6px;
  border-radius:5px;
  font-size:10px;
  font-weight:800;
  letter-spacing:0.04em;
  color:#fff;
  text-align:center;
  min-width:40px;
}
.event-item__badge--done{background:linear-gradient(180deg, rgba(68,241,166,.85), rgba(40,180,120,.75))}
.event-item__badge--doing{background:linear-gradient(180deg, rgba(28,199,255,.75), rgba(20,120,200,.65))}
.event-item__badge--pending{background:linear-gradient(180deg, rgba(255,191,74,.9), rgba(200,130,40,.78))}
.event-item__badge--late{background:linear-gradient(180deg, rgba(255,90,122,.88), rgba(200,50,80,.75))}
.event-item__body{min-width:0}
.event-item__title{
  font-size:12px;
  font-weight:800;
  color:rgba(230,240,255,.96);
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.event-item__desc{
  margin-top:2px;
  font-size:10px;
  font-weight:600;
  color:rgba(155,185,220,.85);
  line-height:1.3;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.event-item__date{
  font-family:var(--font-metric);
  font-size:10px;
  font-weight:600;
  color:rgba(159,192,230,.8);
  white-space:nowrap;
}
.event-item__view{
  appearance:none;
  border:none;
  background:transparent;
  font-size:11px;
  font-weight:800;
  color:rgba(46,230,214,.95);
  cursor:pointer;
  padding:4px 2px;
  letter-spacing:0.06em;
  text-decoration:none;
}
.event-item__view:hover{
  text-decoration:underline;
  color:#7ff;
}

.event-strip{
  margin:0 0 5px;
  padding:4px 6px;
  border-radius:10px;
  border:1px solid rgba(80,130,190,.16);
  background:linear-gradient(180deg, rgba(12,28,58,.42), rgba(6,14,32,.28));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.event-strip__line{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:8px 10px;
  position:relative;
  padding-right:0;
}
.event-strip__rates-panel{
  display:flex;
  align-items:stretch;
  gap:10px;
  flex:1 1 auto;
  min-width:0;
  width:100%;
  padding:5px 8px;
  border-radius:10px;
  border:1px solid rgba(61,212,255,.22);
  background:linear-gradient(180deg, rgba(10,24,52,.55), rgba(4,12,28,.38));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.event-strip__gauges{
  display:flex;
  align-items:center;
  gap:4px;
  flex-shrink:0;
  padding:4px 6px 4px 2px;
  border-radius:12px;
  border:1px solid rgba(61,212,255,.14);
  background:
    radial-gradient(ellipse 120% 90% at 50% 0%, rgba(61,212,255,.06), transparent 55%),
    linear-gradient(180deg, rgba(12,28,58,.4), rgba(6,14,32,.26));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.event-gauge-col{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
}
.event-gauge-col--click{
  cursor:pointer;
  border-radius:12px;
  padding:2px 4px 4px;
  margin:-2px -4px -4px;
  outline:none;
  transition: background .15s ease, box-shadow .15s ease;
}
.event-gauge-col--click:hover{
  background:rgba(61,212,255,.08);
  box-shadow:0 0 0 1px rgba(61,212,255,.22);
}
.event-gauge-col--click:focus-visible{
  box-shadow:0 0 0 3px rgba(32,227,211,.2);
}
.event-strip__gsep{
  width:1px;
  align-self:stretch;
  min-height:52px;
  margin:2px 4px;
  background:linear-gradient(180deg, transparent, rgba(61,212,255,.32), transparent);
  opacity:.9;
}
.event-gauge{
  width:64px;
  height:48px;
}
.event-strip__gl{
  font-size:10px;
  font-weight:800;
  letter-spacing:0.05em;
  color:rgba(165,223,249,.78);
  text-align:center;
  margin-top:-4px;
}
.event-rate-table-wrap{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
}
.event-rate-table{
  width:100%;
  border-collapse:collapse;
  font-size:10px;
  font-variant-numeric:tabular-nums;
}
.event-rate-table th,
.event-rate-table td{
  padding:4px 6px;
  text-align:left;
  border-bottom:1px solid rgba(80,130,190,.14);
  white-space:nowrap;
}
.event-rate-table th{
  font-weight:800;
  color:rgba(159,192,230,.9);
  background:rgba(6,18,42,.62);
}
.event-rate-table tbody tr:nth-child(even){
  background:rgba(4,12,28,.22);
}
.event-rate-table td{
  color:rgba(234,243,255,.92);
}
.event-rate-table tbody tr[data-action]{
  cursor:pointer;
  transition:background .12s ease;
}
.event-rate-table tbody tr[data-action]:hover{
  background:rgba(61,212,255,.08);
}
.event-rate-table td:first-child,
.event-rate-table th:first-child{
  width:34px;
  text-align:center;
}
.event-rate-th--sort::after{
  content:"\2195";
  margin-left:3px;
  font-size:9px;
  opacity:.5;
  vertical-align:1px;
}
.event-strip__rates{
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.rate-pill--inline{
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid rgba(64,120,190,.2);
  background:rgba(5,11,26,.22);
}
.rate-pill--inline{padding:4px 8px}
.rate-pill--inline .rate-pill__k{font-size:10px}
.rate-pill--inline .rate-pill__v{font-size:13px}

.collab4{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:8px;
}
.collab4__cell{
  border-radius:10px;
  border:1px solid rgba(90,140,190,.14);
  background: linear-gradient(180deg, rgba(12,28,58,.5), rgba(6,14,32,.4));
  padding:10px 8px;
  text-align:center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.collab4__k{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:0.06em}
.collab4__v{
  margin-top:8px;
  font-family:var(--font-metric);
  font-size:20px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  color:var(--text);
  text-shadow: 0 0 16px rgba(61,212,255,.12);
}
.rate-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:8px;
}
.rate-pill{
  display:flex;
  align-items:baseline;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(64,120,190,.22);
  background: rgba(5,11,26,.22);
}
.rate-pill__k{font-size:12px;font-weight:800;color:rgba(159,192,230,.9)}
.rate-pill__v{font-family:var(--font-metric);font-size:18px;font-weight:700;color:rgba(32,227,211,.95)}

.svc__meta{
  margin-top:4px;
  font-size:11px;
  font-weight:600;
  color:rgba(159,192,230,.75);
  line-height:1.35;
}
.svc__lbl{font-size:11px;font-weight:800;color:rgba(159,192,230,.78);margin-right:2px}
.svc__sep{margin:0 4px;color:rgba(159,192,230,.55);font-weight:800}

.is-hidden{display:none !important}

.modal-lead{
  margin:0 0 10px;
  font-size:14px;
  font-weight:600;
  color:rgba(159,192,230,.9);
  line-height:1.5;
}
.svcgrid--modal{grid-template-columns: 1fr 1fr 1fr}

/* OL2 预警列表 · 操作列 */
.ol2-alert-table__col-actions{min-width:220px;white-space:nowrap}
.ol2-alert-table__actions{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:4px 0}
.ol2-alert-table__actions .btn{font-size:12px;padding:6px 8px;line-height:1.25}

/* 预警详情 / 处置子页：收窄弹窗，贴近业务详情样式 */
.modal.modal--warn-detail{
  width: min(760px, calc(100vw - 24px));
  max-width: min(760px, calc(100% - 24px));
}
.modal.modal--warn-detail .modal__title{
  display:flex;
  align-items:center;
  gap:10px;
}
.modal.modal--warn-detail .modal__title::before{
  content:"";
  width:10px;height:10px;border-radius:3px;
  background: linear-gradient(135deg, rgba(0,242,255,.85), rgba(61,212,255,.45));
  box-shadow: 0 0 12px rgba(0,242,255,.35);
  flex-shrink:0;
}

.warn-detail{
  position:relative;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.35);
  background:
    radial-gradient(ellipse 80% 60% at 80% 20%, rgba(0,80,120,.25), transparent 55%),
    linear-gradient(165deg, rgba(10,24,52,.75), rgba(5,12,28,.55));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  padding:14px 16px 12px;
  overflow:hidden;
}
.warn-detail__inner{position:relative; z-index:1}
.warn-detail__kv{
  display:grid;
  grid-template-columns: 120px 1fr;
  gap:10px 14px;
  align-items:start;
  padding:10px 0;
  border-bottom:1px solid rgba(64,120,190,.15);
  font-size:14px;
  font-weight:600;
  line-height:1.5;
}
.warn-detail__kv--block{grid-template-columns: 1fr; }
.warn-detail__kv--block .warn-detail__k{margin-bottom:4px}
.warn-detail__k{color:rgba(159,192,230,.88)}
.warn-detail__v{color:rgba(240,248,255,.95)}
.warn-detail__v--gold{color:#ffcc55;text-shadow:0 0 12px rgba(255,204,85,.15)}
.warn-detail__multiline{
  display:block;
  white-space:pre-wrap;
  margin-top:4px;
  font-weight:600;
  color:rgba(234,243,255,.92);
}
.warn-detail__timeline{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid rgba(64,120,190,.22);
}
.warn-detail__tl-hd{
  font-size:13px;
  font-weight:800;
  color:rgba(159,192,230,.9);
  margin-bottom:10px;
  letter-spacing:0.06em;
}
.warn-detail__tl-item{
  display:grid;
  grid-template-columns: 26px 130px 1fr;
  gap:8px 10px;
  margin-bottom:12px;
  font-size:13px;
  font-weight:600;
  align-items:start;
}
.warn-detail__tl-idx{
  font-family:var(--font-metric);
  font-size:12px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  color:rgba(200,248,255,.62);
  padding-top:2px;
}
.warn-detail__tl-time{
  color:rgba(159,192,230,.78);
  font-variant-numeric:tabular-nums;
}
.warn-detail__tl-body{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
}
.warn-detail__tl-dot{
  width:8px;height:8px;border-radius:50%;
  background: radial-gradient(circle at 30% 30%, rgba(28,199,255,.95), rgba(0,60,100,.8));
  box-shadow: 0 0 10px rgba(28,199,255,.4);
  flex-shrink:0;
}
.warn-detail__tl-status{
  color:rgba(240,248,255,.95);
  font-weight:800;
}
.warn-detail__tl-status.warn-detail__v--gold{color:#ffcc55}
.warn-detail__tl-desc{color:rgba(200,220,245,.88)}

.ol2-dispose-panel{padding:4px 0 8px}
.ol2-dispose-panel__lead{
  margin:0 0 14px;
  font-size:14px;
  font-weight:600;
  color:rgba(159,192,230,.92);
}
.ol2-dispose-panel__btns{
  display:flex;
  flex-direction:column;
  gap:10px;
  max-width:420px;
}
.ol2-dispose-toast{
  margin-top:12px;
  min-height:22px;
  font-size:13px;
  font-weight:800;
  color:rgba(32,227,211,.95);
}

.warn-feedback{
  position:relative;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.34);
  background:
    radial-gradient(ellipse 70% 48% at 85% 4%, rgba(0,118,155,.22), transparent 58%),
    linear-gradient(165deg, rgba(9,24,52,.82), rgba(5,13,30,.62));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  padding:14px 16px 12px;
  overflow:hidden;
}
.warn-feedback__context{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:14px;
  padding:0 2px 12px;
  border-bottom:1px solid rgba(64,120,190,.22);
}
.warn-feedback__ctx-main{
  min-width:0;
  color:rgba(244,250,255,.96);
  font-size:15px;
  font-weight:900;
  line-height:1.45;
}
.warn-feedback__ctx-sub{
  flex-shrink:0;
  max-width:330px;
  color:rgba(159,192,230,.82);
  font-size:12px;
  font-weight:700;
  line-height:1.5;
  text-align:right;
}
.warn-feedback__rows{display:flex;flex-direction:column;gap:12px}
.warn-feedback__row{
  display:grid;
  grid-template-columns:142px minmax(0,1fr);
  gap:14px;
  align-items:start;
}
.warn-feedback__row--result{align-items:center}
.warn-feedback__label{
  padding-top:9px;
  color:rgba(220,237,255,.9);
  font-size:14px;
  font-weight:800;
  line-height:1.4;
}
.warn-feedback__label--required::before{
  content:"*";
  margin-right:6px;
  color:#ff667d;
}
.warn-feedback__seg{
  display:inline-flex;
  width:max-content;
  border:1px solid rgba(97,140,205,.42);
  background:rgba(4,12,30,.5);
}
.warn-feedback__seg-item{
  min-width:138px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border-right:1px solid rgba(97,140,205,.32);
  color:rgba(217,230,248,.84);
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, box-shadow .18s ease;
}
.warn-feedback__seg-item:last-child{border-right:0}
.warn-feedback__seg-item input{position:absolute;opacity:0;pointer-events:none}
.warn-feedback__seg-item.is-active{
  color:#dff7ff;
  background:linear-gradient(180deg, rgba(40,103,188,.42), rgba(20,72,145,.42));
  box-shadow:inset 0 0 0 1px rgba(88,173,255,.55), 0 0 18px rgba(36,165,255,.16);
}
.warn-feedback__control{
  width:100%;
  min-height:42px;
  border:1px solid rgba(97,140,205,.32);
  border-radius:0;
  background:rgba(3,12,30,.42);
  color:rgba(242,248,255,.94);
  font:inherit;
  font-size:14px;
  font-weight:700;
  outline:none;
  padding:0 14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.warn-feedback__control:focus{
  border-color:rgba(61,212,255,.72);
  box-shadow:0 0 0 2px rgba(61,212,255,.12), inset 0 1px 0 rgba(255,255,255,.05);
}
.warn-feedback__control::placeholder{color:rgba(190,206,224,.62)}
.warn-feedback__textarea-wrap{position:relative;display:block;min-width:0}
.warn-feedback__textarea{
  display:block;
  min-height:70px;
  resize:vertical;
  padding:12px 70px 22px 14px;
  line-height:1.45;
}
.warn-feedback__count{
  position:absolute;
  right:14px;
  bottom:9px;
  color:rgba(190,206,224,.72);
  font-size:12px;
  font-weight:800;
  pointer-events:none;
}
.warn-push-confirm{
  position:relative;
  display:grid;
  grid-template-columns:58px 1fr;
  gap:14px 16px;
  border-radius:14px;
  border:1px solid rgba(64,120,190,.34);
  background:
    radial-gradient(circle at 8% 14%, rgba(32,227,211,.18), transparent 32%),
    linear-gradient(165deg, rgba(9,24,52,.82), rgba(5,13,30,.62));
  padding:18px 18px 14px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.warn-push-confirm__icon{
  width:52px;height:52px;border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(32,227,211,.9) 0 5px, transparent 6px),
    conic-gradient(from 90deg, rgba(32,227,211,.92), rgba(61,132,255,.55), rgba(32,227,211,.92));
  box-shadow:0 0 24px rgba(32,227,211,.2);
}
.warn-push-confirm__body{min-width:0}
.warn-push-confirm__title{
  color:rgba(244,250,255,.98);
  font-size:18px;
  font-weight:900;
  line-height:1.35;
}
.warn-push-confirm__desc{
  margin-top:8px;
  color:rgba(190,214,240,.88);
  font-size:13px;
  font-weight:700;
  line-height:1.65;
}
.warn-push-confirm__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.warn-push-confirm__meta span{
  max-width:100%;
  border:1px solid rgba(61,212,255,.18);
  border-radius:999px;
  background:rgba(6,20,48,.56);
  color:rgba(214,238,255,.9);
  font-size:12px;
  font-weight:800;
  line-height:1.2;
  padding:6px 10px;
}
.warn-push-confirm .ol2-dispose-toast{grid-column:1 / -1;margin-top:0}
.warn-push-confirm .modal__actions{grid-column:1 / -1}

.biz-jump{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:150px;
  padding:18px 14px 10px;
  text-align:center;
}
.biz-jump__spinner{
  width:34px;
  height:34px;
  border-radius:50%;
  border:3px solid rgba(61,212,255,.18);
  border-top-color:rgba(61,212,255,.9);
  box-shadow:0 0 18px rgba(61,212,255,.18);
  animation:bizJumpSpin .9s linear infinite;
}
.biz-jump__text{
  margin-top:16px;
  color:rgba(244,250,255,.98);
  font-size:18px;
  font-weight:900;
  line-height:1.45;
}
.biz-jump__sub{
  margin-top:6px;
  color:rgba(159,192,230,.78);
  font-size:12px;
  font-weight:800;
}
.biz-jump .modal__actions{
  margin-top:18px;
}
@keyframes bizJumpSpin{
  to{transform:rotate(360deg)}
}

@media (max-width: 720px){
  .warn-feedback__context{display:block}
  .warn-feedback__ctx-sub{max-width:none;text-align:left;margin-top:6px}
  .warn-feedback__row{grid-template-columns:1fr;gap:6px}
  .warn-feedback__label{padding-top:0}
  .warn-feedback__seg{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .warn-feedback__seg-item{min-width:0;padding:0 10px}
  .warn-push-confirm{grid-template-columns:1fr}
}

/* 清单事件详情弹窗（三列：左 01—02 / 中 03—04 / 右地图） */
.evt-detail{
  --evt-sec-bg: linear-gradient(90deg, rgba(12,40,80,.85), rgba(8,22,48,.55));
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.evt-detail__tab-input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.evt-detail__tabs{
  flex:0 0 auto;
  display:inline-flex;
  align-self:flex-start;
  gap:4px;
  padding:4px;
  margin:0 0 8px;
  border-radius:10px;
  border:1px solid rgba(61,212,255,.2);
  background:rgba(5,14,32,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.evt-detail__tab{
  min-width:92px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border-radius:8px;
  cursor:pointer;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  color:rgba(165,205,235,.82);
  border:1px solid transparent;
  user-select:none;
  transition:border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}
.evt-detail__tab:hover{
  color:rgba(234,250,255,.96);
  border-color:rgba(61,212,255,.24);
}
#evtTabDetail:checked ~ .evt-detail__tabs label[for="evtTabDetail"],
#evtTabFlow:checked ~ .evt-detail__tabs label[for="evtTabFlow"]{
  color:rgba(236,252,255,.98);
  border-color:rgba(61,212,255,.46);
  background:linear-gradient(180deg, rgba(25,120,180,.42), rgba(8,36,78,.48));
  box-shadow:0 0 18px rgba(28,199,255,.18), inset 0 1px 0 rgba(255,255,255,.07);
}
.evt-detail__tab-panel{
  flex:1;
  min-height:0;
  display:none;
  overflow:hidden;
}
#evtTabDetail:checked ~ .evt-detail__tab-panel--detail,
#evtTabFlow:checked ~ .evt-detail__tab-panel--flow{
  display:flex;
}
.evt-detail__layout{
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(260px, 360px);
  gap: 0;
  align-items: stretch;
  overflow: hidden;
}
.evt-detail__col{
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.evt-detail__col--left{
  padding-right: 12px;
}
.evt-detail__col--left .evt-detail__sec--sense{
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.evt-detail__col--left .evt-detail__sec--dispatch{
  flex: 0 0 auto;
}
.evt-detail__col--mid{
  padding: 0 12px;
  border-left: 1px solid rgba(61,212,255,.16);
  border-right: 1px solid rgba(61,212,255,.14);
  box-shadow:
    inset 10px 0 24px -14px rgba(0,0,0,.22),
    inset -10px 0 24px -14px rgba(0,0,0,.18);
}
.evt-detail__col--map{
  padding-left: 12px;
}
.evt-detail__subhd{
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: rgba(170,210,245,.82);
  text-transform: none;
  margin: -4px 0 8px 2px;
}
.evt-detail__sec-subbar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: -2px 0 8px;
  padding: 0 2px 0 4px;
}
.evt-detail__sec-subbar .evt-detail__subhd{
  margin: 0;
}
.evt-detail__sec{
  border-radius:12px;
  border:1px solid rgba(64,120,190,.28);
  background: linear-gradient(165deg, rgba(8,20,44,.72), rgba(4,12,28,.5));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  padding:10px 12px 12px;
  flex-shrink: 0;
}
.evt-detail__sec--grow{
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.evt-detail__sec--grow .evt-detail__cards{
  flex: 0 1 auto;
  min-height: 0;
  overflow: hidden;
}
.evt-detail__sec-hd{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  font-weight:900;
  letter-spacing:0.06em;
  color:rgba(230,242,255,.96);
  margin:0 0 10px;
  padding:6px 10px;
  border-radius:8px;
  background: var(--evt-sec-bg);
  border:1px solid rgba(61,212,255,.22);
}
.evt-detail__sec-hd--row{
  justify-content:space-between;
}
.evt-detail__sec-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  height:22px;
  padding:0 6px;
  margin-right:4px;
  border-radius:6px;
  font-size:12px;
  font-weight:900;
  color:rgba(0,24,48,.95);
  background: linear-gradient(135deg, rgba(61,212,255,.95), rgba(28,199,255,.75));
}
.evt-detail__pill{
  font-size:12px;
  font-weight:800;
  color:rgba(159,192,230,.88);
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(61,212,255,.25);
  background:rgba(0,0,0,.18);
}
.evt-detail__kv-grid{
  display:grid;
  grid-template-columns: 140px 1fr 140px 1fr;
  gap:8px 12px;
  font-size:13px;
  font-weight:600;
}
.evt-detail__kv-grid--1{grid-template-columns: 140px 1fr}
.evt-detail__kv-grid--mt{margin-top:8px}
@media (max-width: 900px){
  .evt-detail__kv-grid{grid-template-columns: 120px 1fr}
}
.evt-detail__kv{
  display:contents;
}
.evt-detail__kv-grid--facts{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.evt-detail__kv-grid--facts .evt-detail__kv{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  min-height: 42px;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid rgba(64,120,190,.18);
  background: rgba(5,16,36,.34);
}
.evt-detail__kv-grid--facts .evt-detail__kv--wide{
  grid-column: 1 / -1;
  min-height: 0;
}
.evt-detail__kv-grid--dispatch{
  margin-top: 8px;
}
.evt-detail__kv-grid--dispatch .evt-detail__kv{
  min-height: 42px;
  background: linear-gradient(180deg, rgba(10,58,100,.55), rgba(5,18,42,.48));
}
.evt-detail__k{
  color:rgba(159,192,230,.82);
  padding:4px 0;
}
.evt-detail__v{
  color:rgba(240,248,255,.94);
  padding:4px 0;
  line-height:1.45;
  min-width:0;
  overflow-wrap:anywhere;
}
.evt-detail__block{
  margin-top:10px;
  padding:10px 10px;
  border-radius:10px;
  border:1px solid rgba(64,120,190,.18);
  background:rgba(5,11,26,.28);
}
.evt-detail__block--sm{margin-top:8px}
.evt-detail__block-k{
  font-size:12px;
  font-weight:800;
  color:rgba(159,192,230,.85);
  margin-bottom:6px;
}
.evt-detail__block-v{
  font-size:13px;
  font-weight:600;
  color:rgba(234,243,255,.92);
  line-height:1.55;
  white-space:pre-wrap;
}
.evt-detail__flow{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.evt-detail__flow-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  position: relative;
  overflow: hidden;
}
.evt-detail__flow-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background: linear-gradient(180deg, rgba(32,227,211,.95), rgba(28,199,255,.35));
}
.evt-detail__flow-cap{
  font-size:12px;
  font-weight:900;
  color:rgba(200,230,255,.95);
  position:relative;
}
.evt-detail__flow-sum{
  font-size:12px;
  font-weight:600;
  color:rgba(165,205,235,.88);
  line-height:1.45;
  position:relative;
}
.evt-detail__cards{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:8px;
  align-content: start;
}
@media (max-width: 1000px){
  .evt-detail__cards{grid-template-columns:1fr}
}
.evt-detail__card{
  border-radius:10px;
  border:1px solid rgba(64,120,190,.22);
  background: rgba(6,14,32,.55);
  padding:8px 8px 6px;
  min-height:72px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.evt-detail__card-idx{
  font-family:var(--font-metric);
  font-size:10px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  color:rgba(159,192,230,.62);
  letter-spacing:0.04em;
}
.evt-detail__card--done{
  border-color: rgba(94,240,184,.28);
  background: linear-gradient(165deg, rgba(20,60,48,.45), rgba(6,14,32,.5));
}
.evt-detail__card-dept{
  font-size:12px;
  font-weight:900;
  color:rgba(200,230,255,.95);
}
.evt-detail__card-action{
  font-size:12px;
  font-weight:600;
  color:rgba(234,243,255,.9);
  line-height:1.4;
  flex:1;
}
.evt-detail__card-time{
  font-size:11px;
  font-weight:700;
  color:rgba(159,192,230,.72);
  font-variant-numeric:tabular-nums;
}
.evt-detail__aside{
  border-radius:12px;
  border:1px solid rgba(64,120,190,.28);
  background: linear-gradient(180deg, rgba(8,20,44,.65), rgba(4,12,28,.45));
  padding:10px 10px 12px;
  flex-shrink: 0;
}
.evt-detail__aside--column{
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.evt-detail__aside--column .evt-detail__map-hd{
  flex-shrink: 0;
}
.evt-detail__map-hd{
  font-size:13px;
  font-weight:900;
  letter-spacing:0.06em;
  color:rgba(200,230,255,.95);
  margin-bottom:8px;
}
.modal.modal--event-detail .evt-detail__map-hd{
  font-size: 12px;
  margin-bottom: 6px;
}
.evt-detail__map-ph{
  position:relative;
  border-radius:10px;
  height: min(200px, 28vh);
  min-height: 120px;
  border:1px solid rgba(61,212,255,.2);
  background:
    radial-gradient(ellipse 80% 70% at 50% 45%, rgba(40,90,120,.35), transparent 60%),
    linear-gradient(165deg, rgba(12,28,52,.9), rgba(4,14,28,.75)),
    repeating-linear-gradient(90deg, transparent, transparent 18px, rgba(61,212,255,.04) 18px, rgba(61,212,255,.04) 19px),
    repeating-linear-gradient(0deg, transparent, transparent 18px, rgba(61,212,255,.03) 18px, rgba(61,212,255,.03) 19px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  overflow:hidden;
}
.evt-detail__map-pin{
  width:22px;
  height:22px;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  background: linear-gradient(135deg, rgba(28,199,255,.95), rgba(61,212,255,.55));
  box-shadow: 0 0 20px rgba(28,199,255,.35);
}
.evt-detail__map-zoom{
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.evt-detail__map-zoom-btn{
  width: 24px;
  height: 22px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  color: rgba(235,248,255,.95);
  background: rgba(5,14,32,.82);
  border: 1px solid rgba(61,212,255,.38);
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.evt-detail__map-cap{
  font-size:12px;
  font-weight:700;
  color:rgba(180,215,245,.88);
  text-align:center;
  padding:0 8px;
  line-height:1.4;
}
.evt-flow-view{
  flex:1;
  min-width:0;
  min-height:0;
  display:flex;
}
.evt-flow-view__stage{
  flex:1;
  min-width:0;
  min-height:0;
  border-radius:12px;
  border:1px solid rgba(61,212,255,.26);
  background:
    radial-gradient(ellipse 90% 90% at 52% 48%, rgba(28,199,255,.08), transparent 62%),
    linear-gradient(165deg, rgba(10,30,64,.78), rgba(4,11,28,.82));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), inset 0 0 46px rgba(28,199,255,.06);
  padding:10px;
  overflow:auto;
}
.evt-flow-svg{
  display:block;
  width:100%;
  min-width:920px;
  height:min(560px, calc(100vh - 190px));
  min-height:390px;
  font-family:var(--font-ui);
}
.evt-flow-svg__lane-line,
.evt-flow-svg__line{
  stroke:rgba(218,245,255,.78);
  stroke-width:2;
  fill:none;
}
.evt-flow-svg__lane-line{
  stroke:rgba(61,212,255,.28);
}
.evt-flow-svg__arrow{
  stroke:rgba(218,245,255,.88);
  stroke-width:2.4;
  fill:none;
  marker-end:url(#evtFlowArrow);
}
.evt-flow-svg__node{
  fill:rgba(218,249,255,.92);
  stroke:rgba(6,20,42,.95);
  stroke-width:2;
  filter:url(#evtFlowGlow);
}
.evt-flow-svg__judge{
  fill:rgba(255,255,255,.92);
  stroke:rgba(6,20,42,.95);
  stroke-width:2;
}
.evt-flow-svg__start{
  fill:rgba(230,240,255,.9);
  stroke:rgba(26,42,86,.95);
  stroke-width:2;
}
.evt-flow-svg__cloud{
  fill:rgba(242,250,255,.96);
  stroke:rgba(6,20,42,.9);
  stroke-width:2;
}
.evt-flow-svg__text{
  fill:rgba(5,18,42,.96);
  font-size:14px;
  font-weight:800;
}
.evt-flow-svg__vertical{
  fill:rgba(220,244,255,.94);
  font-size:21px;
  font-weight:900;
  writing-mode:vertical-rl;
  letter-spacing:.18em;
}
.evt-flow-svg__lane-label{
  fill:rgba(235,248,255,.96);
  font-size:18px;
  font-weight:900;
  writing-mode:vertical-rl;
  letter-spacing:.12em;
}
.evt-flow-svg__num{
  fill:rgba(215,235,255,.98);
  stroke:rgba(6,20,42,.92);
  stroke-width:3;
  paint-order:stroke;
  font-size:22px;
  font-weight:900;
}
.evt-flow-svg__dept{
  fill:rgba(84,155,255,.98);
  font-size:14px;
  font-weight:900;
}
.evt-flow-svg__green{
  fill:rgba(25,155,115,.98);
  font-size:16px;
  font-weight:900;
}
.evt-flow-svg__orange{
  fill:rgba(255,142,54,.98);
  font-size:14px;
  font-weight:900;
}

#eventList .row{cursor:pointer}
#panelOR1 #eventList.list{
  gap:5px;
  flex:0 0 auto;
}

/* v2026-04-24 服务卡片与事件弹窗优化 */
#panelOR2 .or2-svc-cats.svc-cmd-wrap{
  gap:10px;
}
#panelOR2 .svc-cmd-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(76,168,220,.26);
  background:
    radial-gradient(circle at top right, rgba(61,212,255,.12), transparent 42%),
    linear-gradient(180deg, rgba(10,30,58,.88), rgba(5,16,36,.82));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 14px 28px rgba(0,0,0,.12);
}
#panelOR2 .svc-cmd-card__head{
  display:flex;
  align-items:center;
  gap:10px;
}
#panelOR2 .svc-cmd-card__head-main{
  min-width:0;
  flex:1;
}
#panelOR2 .svc-cmd-card__hint{
  margin-top:3px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  color:rgba(150,198,235,.7);
}
#panelOR2 .svc-cmd-card__arrow{
  flex-shrink:0;
  width:20px;
  height:20px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(220,245,255,.8);
  background:rgba(61,212,255,.08);
  border:1px solid rgba(61,212,255,.18);
}
#panelOR2 .svc-cmd-card__body{
  display:flex;
  flex-direction:column;
  gap:10px;
}
#panelOR2 .svc-cmd-card__lead{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:8px;
  padding:10px 12px;
  border-radius:12px;
  background:linear-gradient(135deg, rgba(17,52,92,.78), rgba(8,24,48,.5));
  border:1px solid rgba(61,212,255,.14);
}
#panelOR2 .svc-cmd-card__lead-v{
  font-family:var(--font-metric);
  font-size:22px;
  font-weight:900;
  line-height:1;
  color:rgba(126,246,230,.98);
  text-shadow:0 0 18px rgba(32,227,211,.18);
}
#panelOR2 .svc-cmd-card__lead-k{
  max-width:55%;
  font-size:11px;
  font-weight:800;
  line-height:1.35;
  text-align:right;
  color:rgba(196,228,247,.86);
}
#panelOR2 .svc-cmd-card__chips{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
#panelOR2 .svc-cmd-card__chip{
  min-width:0;
  padding:8px 9px;
  border-radius:10px;
  border:1px solid rgba(76,168,220,.18);
  background:rgba(4,16,34,.42);
}
#panelOR2 .svc-cmd-card__chip-v{
  display:block;
  font-family:var(--font-metric);
  font-size:13px;
  font-weight:800;
  line-height:1.2;
  color:rgba(225,247,255,.96);
}
#panelOR2 .svc-cmd-card__chip-k{
  display:block;
  margin-top:3px;
  font-size:10px;
  font-weight:700;
  line-height:1.3;
  color:rgba(154,202,236,.74);
}

.modal.modal--event-detail{
  width:min(1280px, calc(100vw - 32px));
  max-width:min(1280px, calc(100% - 24px));
}
.modal.modal--event-detail .modal__bd{
  padding:12px 14px 14px;
  overflow:auto;
}
@media (max-width: 720px){
  #panelOR2 .svc-cmd-card{
    grid-template-columns:72px minmax(0, 1fr) 10px;
    gap:6px;
  }
  #panelOR2 .svc-cmd-card__metrics{
    grid-template-columns:1fr;
  }
}

/* OR2 首屏再收紧，保证五类服务都能完整出现在面板内 */
#panelOR2 .or2-svc-cats.svc-cmd-wrap{
  grid-template-columns:1fr;
  gap:5px;
  align-content:start;
}
#panelOR2 .svc-cmd-card{
  display:grid;
  grid-template-columns:78px minmax(0, 1fr) 12px;
  align-items:center;
  gap:8px;
  min-height:54px;
  padding:6px 8px;
  border-radius:10px;
  background:linear-gradient(90deg, rgba(18,50,88,.55), rgba(7,18,38,.78));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 6px 16px rgba(0,0,0,.08);
}
#panelOR2 .svc-cmd-card__side{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
#panelOR2 .svc-cmd-card__icon{
  width:26px;
  height:26px;
  border-radius:8px;
}
#panelOR2 .svc-cmd-card__svg{
  width:20px;
  height:20px;
}
#panelOR2 .svc-cmd-card__title-wrap{
  min-width:0;
}
#panelOR2 .svc-cmd-card__title{
  font-size:10px;
  margin-bottom:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#panelOR2 .svc-cmd-card__mini{
  margin-top:1px;
  font-size:8px;
  line-height:1;
  letter-spacing:.04em;
  color:rgba(150,198,235,.58);
}
#panelOR2 .svc-cmd-card__metrics{
  min-width:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px;
}
#panelOR2 .svc-cmd-card__metric{
  min-width:0;
  padding:4px 6px 5px;
  border-radius:8px;
  border:1px solid rgba(76,168,220,.15);
  background:rgba(4,16,34,.38);
}
#panelOR2 .svc-cmd-card__metric-v{
  font-size:11px;
  line-height:1.1;
  font-family:var(--font-metric);
  font-weight:900;
  color:rgba(218,247,255,.98);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#panelOR2 .svc-cmd-card__metric--main .svc-cmd-card__metric-v{
  color:rgba(126,246,230,.98);
}
#panelOR2 .svc-cmd-card__metric-k{
  margin-top:2px;
  font-size:8px;
  line-height:1.15;
  color:rgba(154,202,236,.7);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
#panelOR2 .svc-cmd-card__arrow{
  width:12px;
  height:12px;
  font-size:10px;
  color:rgba(220,245,255,.58);
  border:none;
  background:transparent;
}

