/* cockpit.css — 经营任务指挥舱（公司层席位）独立样式，仅作用于 #cockpitRoot，不影响普通界面 */
.ck-root{
  position:fixed; inset:0; z-index:3000; display:none;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
/* 驾驶舱是全屏壳(z-index:3000)。共享的任务详情弹窗 .modal-overlay 默认 z-index:400，
   会被驾驶舱盖住——弹窗实际已打开但看不见（无报错、请求200、就是不显示）。
   驾驶舱自有弹窗(cdmx/cdai/cdho/cdsp)3000~3100、个人设置3200、待办/派发抽屉ckdr-mask 3400，
   故详情弹窗提层须盖过全部：v1.24.1.1 提到 3500。
   （v1.17.0.49 实锤回归：原 3200 被 v1.17.0.49 新增的待办抽屉遮罩 3400 盖住——
   从"待我终审"抽屉点开详情后"同意办结/退回整改"按钮点不到、点哪都没反应。） */
#taskDetailModal{ z-index:3500; }
/* v1.22.1.3 修复：任务详情提到 3500 后，主界面里"管理协办/关注"弹窗(默认400)被压在
   任务详情下面，须先关详情才能看到。协办弹窗提升到 3550——无论主界面还是驾驶舱场景，
   协办管理永远浮在任务详情之上（它是从详情打开的二级操作）。 */
#collabModal{ z-index:3550; }
.ck-root.ck-light{
  --ck-bg:#f3f5f9; --ck-surface:#ffffff; --ck-surface2:#f7f9fc; --ck-border:#e6eaf2;
  --ck-text:#18223a; --ck-text2:#5a6478; --ck-text3:#93a0b5;
  --ck-primary:#2f6bff; --ck-primary-soft:#eaf1ff;
  --ck-mk:#3d8bfd; --ck-nw:#18b589; --ck-sp:#9b6ef3;
  --ck-red:#e5484d; --ck-orange:#f5842b; --ck-yellow:#e8b020; --ck-green:#22a45d; --ck-gray:#aeb8c8; --ck-blue:#3d8bfd;
  --ck-county:#eef1f6; --ck-county-line:#b3c1d6; --ck-county-text:#5a6b82;
  --ck-town-fill:rgba(111,138,180,.10); --ck-town-line:#c4d1e3;
  --ck-shadow:0 1px 2px rgba(24,34,58,.05),0 4px 16px rgba(24,34,58,.05);
  background:var(--ck-bg); color:var(--ck-text);
}
.ck-root.ck-dark{
  --ck-bg:#0c1322; --ck-surface:#151f36; --ck-surface2:#1b2742; --ck-border:#283554;
  --ck-text:#eaf0fb; --ck-text2:#aeb9d0; --ck-text3:#7583a3;
  --ck-primary:#5b8dff; --ck-primary-soft:#1d2c4f;
  --ck-mk:#5aa0ff; --ck-nw:#34d399; --ck-sp:#c79bf0;
  --ck-red:#ff6b6f; --ck-orange:#ffa04d; --ck-yellow:#f5c84b; --ck-green:#43d08a; --ck-gray:#8290ab; --ck-blue:#5aa0ff;
  --ck-county:#1c2842; --ck-county-line:#5f83c0; --ck-county-text:#9fb2cc;
  --ck-town-fill:rgba(95,131,192,.14); --ck-town-line:#7898c8;
  --ck-shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.28);
  background:var(--ck-bg); color:var(--ck-text);
}
.ck-wrap{max-width:720px; margin:0 auto; padding:0 14px calc(28px + env(safe-area-inset-bottom));}

/* ===== 顶栏 ===== */
.ck-top{position:sticky; top:0; z-index:20; background:var(--ck-surface); border-bottom:1px solid var(--ck-border);}
.ck-top-in{max-width:720px; margin:0 auto; padding:12px 14px; display:flex; align-items:center; gap:10px;}
.ck-title{font-size:18px; font-weight:700; letter-spacing:.5px; line-height:1.15;}
.ck-sub{font-size:12px; color:var(--ck-text2); margin-top:2px;}
.ck-spacer{flex:1;}
.ck-iconbtn{flex:0 0 auto; width:38px; height:38px; border-radius:50%; border:none; background:transparent;
  color:var(--ck-text2); display:flex; align-items:center; justify-content:center; cursor:pointer;}
.ck-iconbtn:hover{background:var(--ck-surface2);}
.ck-iconbtn:active{transform:scale(.94);}
.ck-globalamp{display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600;
  padding:3px 9px; border-radius:999px; margin-top:5px;}
.ck-globalamp .dot{width:8px; height:8px; border-radius:50%;}

/* ===== 通用卡片/区块 ===== */
.ck-sec{margin-top:14px;}
.ck-card{background:var(--ck-surface); border:1px solid var(--ck-border); border-radius:16px; box-shadow:var(--ck-shadow);}
.ck-sec-h{display:flex; align-items:center; gap:8px; padding:13px 15px 4px;}
.ck-sec-h h3{margin:0; font-size:15px; font-weight:700;}
.ck-sec-h .tag{font-size:11px; color:var(--ck-text3);}
.ck-sec-more{margin-left:auto; font-size:12px; color:var(--ck-text3);}

/* 总览：灯 + KPI */
.ck-overview{padding:14px 15px 15px; display:flex; gap:16px; align-items:center;}
.ck-donut{flex:0 0 118px; width:118px; height:118px; position:relative;}
.ck-donut .mid{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;}
.ck-donut .mid b{font-size:26px; font-weight:800; line-height:1;}
.ck-donut .mid span{font-size:11px; color:var(--ck-text3); margin-top:3px;}
.ck-legend{flex:1; min-width:0;}
.ck-lg-row{display:flex; align-items:center; gap:7px; font-size:13px; color:var(--ck-text2); margin-bottom:7px;}
.ck-lg-row .sw{width:10px; height:10px; border-radius:3px; flex:0 0 10px;}
.ck-lg-row b{color:var(--ck-text); font-size:14px; margin-left:auto; font-variant-numeric:tabular-nums;}
.ck-kpis{display:grid; grid-template-columns:repeat(5,1fr); gap:8px; padding:0 15px 15px;}
.ck-kpi{background:var(--ck-surface2); border-radius:12px; padding:9px 4px; text-align:center;}
.ck-kpi b{display:block; font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.1;}
.ck-kpi span{display:block; font-size:11px; color:var(--ck-text3); margin-top:3px;}
.ck-alertline{margin:0 15px 14px; font-size:12px; color:var(--ck-text3); display:flex; align-items:center; gap:7px;}

/* 吞吐 */
.ck-bars{padding:6px 15px 15px;}
.ck-bars svg{width:100%; height:120px; display:block;}
.ck-bars .legend{display:flex; gap:16px; font-size:11px; color:var(--ck-text3); margin-top:6px; justify-content:center;}
.ck-bars .legend i{display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:4px; vertical-align:-1px;}

/* ===== 条线卡（v1.17.0.3 胶囊式部门列表，所有领导界面统一） ===== */
.ck-line{padding:14px 15px 12px;position:relative;overflow:hidden;}
.ck-line::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;}
.ck-line.mk::before{background:var(--ck-mk);} .ck-line.nw::before{background:var(--ck-nw);} .ck-line.sp::before{background:var(--ck-sp);}
.ck-line + .ck-line{margin-top:12px;}
.ck-line-head{display:flex;align-items:center;gap:9px;margin-bottom:10px;}
.ck-line-name{font-size:16px;font-weight:800;}
.ck-line-leader{font-size:11px;color:var(--ck-text3);margin-top:2px;}
.ck-line-head-r{margin-left:auto;display:flex;align-items:center;gap:8px;}
.ck-lamp{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;}
.ck-lamp .dot{width:9px;height:9px;border-radius:50%;}
.ck-line-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;}
.ck-cell{background:var(--ck-surface2);border-radius:10px;padding:8px 4px;text-align:center;}
.ck-cell b{display:block;font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.05;}
.ck-cell span{display:block;font-size:10.5px;color:var(--ck-text3);margin-top:3px;}
.ck-progress{margin-bottom:12px;}
.ck-progress .lab{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ck-text2);margin-bottom:5px;}
.ck-track{height:8px;border-radius:999px;background:var(--ck-county);overflow:hidden;}
.ck-fill{height:100%;border-radius:999px;transition:width .3s;}
.ck-line-caps{display:flex;flex-wrap:wrap;gap:6px;}
.ck-line-cap{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .12s;border:1px solid var(--ck-border);white-space:nowrap;}
.ck-line-cap:hover{opacity:.75;}
.ck-line-cap::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;background:currentColor;opacity:.5;vertical-align:middle;}

/* ===== v1.17.0.0 任务级别口径筛选 ===== */
.ck-map-wrap{position:relative;padding:0 8px 4px;}
.ck-map-svg-box{position:relative;width:100%;padding-bottom:70px;}
.ck-map-svg{width:100%;display:block;}
.ck-map-legend{display:flex;flex-wrap:wrap;gap:12px;padding:4px 10px 2px;font-size:11px;color:var(--ck-text3);}
.ck-map-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px;}

/* ===== v1.18.0.68 容器版（分公司）作战地图：地图独占无浮层，部门行+图例在下方正常流 ===== */
.ck-cmap-body{padding:0 8px 4px;}
.ck-cmap-svg{width:100%;}
.ck-cmap-svg .ck-map-svg{max-height:none;}
.ck-cmap-foot{display:flex;flex-direction:column;gap:8px;padding:8px 0 4px;}
.ck-cmap-foot .ck-support-wrap{align-self:flex-start;}
.ck-cmap-foot .ck-map-legend{gap:16px;padding:0 10px;}

/* 地图右上角部门图例（绝对定位，压在地图东侧海域/连江远岛上；手机端同样叠图不换行） */
.ck-map-depts{position:absolute;right:10px;top:8px;z-index:5;display:flex;flex-direction:column;gap:0;
  padding:8px 11px;border-radius:10px;border:1px solid var(--ck-border);
  background:color-mix(in srgb,var(--ck-surface) 87%,transparent);
  box-shadow:0 2px 10px rgba(24,34,58,.09);backdrop-filter:blur(3px);}
.ck-dept-cat{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--ck-text2);white-space:nowrap;margin:6px 0 2px;}
.ck-dept-cat:first-child{margin-top:0;}
.ck-cat-bar{display:inline-block;width:3px;height:11px;border-radius:2px;flex:0 0 auto;}
.ck-dept-cat[data-line="mk"] .ck-cat-bar{background:var(--ck-mk);}
.ck-dept-cat[data-line="nw"] .ck-cat-bar{background:var(--ck-nw);}
.ck-dept-chip{font-size:12px;font-weight:600;line-height:1.55;cursor:pointer;white-space:nowrap;transition:opacity .12s;}
.ck-dept-chip:hover{opacity:.65;}

/* 地图底部：管控支撑框（绝对定位叠在地图上，在图例上方） */
.ck-bottom-bar{position:absolute;left:10px;right:10px;bottom:12px;z-index:6;
  display:flex;flex-direction:column;gap:14px;align-items:stretch;}
.ck-support-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:4px 10px;
  border-radius:10px;border:1px solid var(--ck-border);
  background:color-mix(in srgb,var(--ck-surface) 87%,transparent);
  box-shadow:0 2px 10px rgba(24,34,58,.09);}
.ck-support-wrap .ck-cat-bar{width:3px;height:11px;border-radius:2px;flex:0 0 auto;}
.ck-support-label{font-size:11px;font-weight:700;color:var(--ck-text2);flex:0 0 auto;padding-right:4px;}
.ck-sup-chip{font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;line-height:1.2;
  color:var(--ck-text);transition:opacity .12s;}
.ck-sup-chip:hover{opacity:.6;}
.ck-sup-chip + .ck-sup-chip{margin-left:4px;}
.ck-map-legend{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0;
  font-size:10px;color:var(--ck-text3);align-self:center;}
.ck-map-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px;}

@media(max-width:600px){
  .ck-map-wrap{padding:0;}
  .ck-map-svg-box{width:100%;padding-bottom:60px;}
  .ck-map-svg{max-height:280px;}
  .ck-cmap-body{padding:0;}
  .ck-cmap-svg .ck-map-svg{max-height:300px;}
  .ck-cmap-foot{gap:6px;padding:6px 0 2px;}
  .ck-map-depts{right:4px;top:4px;padding:5px 8px;border-radius:8px;box-shadow:0 1px 6px rgba(24,34,58,.12);}
  .ck-dept-cat{font-size:9.5px;margin:4px 0 1px;gap:4px;}
  .ck-cat-bar{width:2.5px;height:9px;}
  .ck-dept-chip{font-size:10px;line-height:1.42;}
  .ck-bottom-bar{left:4px;right:4px;bottom:12px;gap:10px;}
  .ck-sup-chip{font-size:10px;line-height:1.2;}
  .ck-sup-chip + .ck-sup-chip{margin-left:4px;}
  .ck-map-legend{font-size:9px;gap:6px;padding:1px 0;}
  .ck-map-legend i{width:7px;height:7px;margin-right:3px;}
}

/* ===== 省部署 / 预警 / 效能 ===== */
.ck-dir{padding:4px 15px 15px;}
.ck-dir-item{padding:12px 0; border-bottom:1px dashed var(--ck-border);}
.ck-dir-item:last-child{border-bottom:none; padding-bottom:2px;}
.ck-dir-t{font-size:14px; font-weight:700; line-height:1.4;}
.ck-dir-m{font-size:11.5px; color:var(--ck-text3); margin:4px 0 5px;}
.ck-dir-s{font-size:12.5px; color:var(--ck-text2); line-height:1.5;}
.ck-empty{padding:20px 15px; text-align:center; color:var(--ck-text3); font-size:13px;}
.ck-warnrow{display:flex; align-items:center; gap:9px; padding:10px 15px; font-size:13px; border-bottom:1px solid var(--ck-border);}
.ck-warnrow:last-child{border-bottom:none;}
.ck-warnrow .dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;}
.ck-warnrow .meta{margin-left:auto; font-size:11.5px; color:var(--ck-text3);}
.ck-eff-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:4px 15px 16px;}
.ck-eff{text-align:center; background:var(--ck-surface2); border-radius:12px; padding:13px 6px;}
.ck-eff b{font-size:23px; font-weight:800; font-variant-numeric:tabular-nums;}
.ck-eff span{display:block; font-size:11.5px; color:var(--ck-text3); margin-top:4px;}

/* 灯色工具类 */
.lk-red{color:var(--ck-red);} .lk-orange{color:var(--ck-orange);} .lk-yellow{color:var(--ck-yellow);}
.lk-green{color:var(--ck-green);} .lk-gray{color:var(--ck-gray);}
.bg-red{background:var(--ck-red);} .bg-orange{background:var(--ck-orange);} .bg-yellow{background:var(--ck-yellow);}
.bg-green{background:var(--ck-green);} .bg-gray{background:var(--ck-gray);}


.ck-skel{padding:24px; text-align:center; color:var(--ck-text3); font-size:13px;}
.ck-err{margin:30px 18px; padding:22px 18px; text-align:center; color:var(--ck-text3); font-size:13.5px; line-height:1.7;}
.ck-foot{text-align:center; color:var(--ck-text3); font-size:11px; padding:22px 0 6px;}
.ck-list-entry{text-align:center; padding:0 0 16px;}
.ck-list-entry button{display:inline-block; padding:8px 24px; border:1px solid var(--ck-primary); color:var(--ck-primary); background:var(--ck-primary-soft); border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; transition:all .15s; font-family:inherit;}
.ck-list-entry button:hover{background:var(--ck-primary); color:#fff;}
@media(min-width:560px){ .ck-kpis{grid-template-columns:repeat(5,1fr);} }
.ck-dir-edit{margin-left:auto;border:1px solid var(--ck-primary);color:var(--ck-primary);background:transparent;border-radius:8px;font-size:12px;padding:3px 12px;cursor:pointer;opacity:.92;}
.ck-dir-edit:active{opacity:.7;}

/* ===== v1.12.0 重点任务聚焦 ===== */
.ck-focus-sec{display:block;}
.ck-focus-title{font-size:16px;font-weight:800;color:var(--ck-text);margin:2px 2px 10px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.ck-focus-title span{font-size:11px;font-weight:400;color:var(--ck-text3);}
.ck-fgroup{margin-bottom:12px;}
.ck-fgroup.readonly{opacity:.92;}
.ck-ro-tag{color:var(--ck-text3);border:1px solid var(--ck-county-line);background:transparent;}
.ck-fr-list{display:flex;flex-direction:column;}
.ck-fr{display:flex;align-items:flex-start;gap:10px;padding:11px 15px;border-top:1px solid var(--ck-county-line);}
.ck-fr:first-child{border-top:none;}
.ck-fr.accept{background:color-mix(in srgb,var(--ck-orange) 8%,transparent);}
/* v1.17.0.1 Clickable task cards: hover feedback */
.ck-fr[data-task-id]{cursor:pointer;}
.ck-fr[data-task-id]:hover{background:color-mix(in srgb,var(--ck-primary) 8%,transparent)!important;outline:none;}
.ck-fr .badge{flex:0 0 auto;margin-top:1px;align-self:flex-start;}
.ck-fr-main{flex:1 1 auto;min-width:0;}
.ck-fr-t{font-size:14.5px;font-weight:700;line-height:1.45;color:var(--ck-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ck-fr-m{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:12px;flex-wrap:wrap;}
.ck-fr-dept{color:var(--ck-primary);font-weight:600;}
.ck-fr-who{color:var(--ck-text2);}
.ck-fr-who.none{color:var(--ck-text3);}
.ck-fr-p{margin-top:5px;font-size:12.5px;line-height:1.5;color:var(--ck-text3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:auto;}
.ck-fs{flex:0 0 auto;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;margin-top:1px;}
.ck-fs.lk-red{color:var(--ck-red);background:color-mix(in srgb,var(--ck-red) 12%,transparent);}
.ck-fs.lk-orange{color:var(--ck-orange);background:color-mix(in srgb,var(--ck-orange) 12%,transparent);}
.ck-fs.lk-yellow{color:var(--ck-yellow);background:color-mix(in srgb,var(--ck-yellow) 14%,transparent);}
.ck-fs.lk-green{color:var(--ck-green);background:color-mix(in srgb,var(--ck-green) 12%,transparent);}
.ck-accept-wrap{display:flex;flex-direction:column;}
.ck-line.readonly{box-shadow:none;border:1px dashed var(--ck-county-line);}
@media (max-width:600px){
  .ck-fr{padding:10px 12px;gap:8px;}
  .ck-fr-t{font-size:14px;}
  .ck-fs{font-size:11px;padding:2px 7px;}
}

/* ===== v1.17.0.0 任务级别口径筛选 ===== */
.ck-lvbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:13px 15px 0;}
.ck-lvbar-lab{font-size:12px;font-weight:700;color:var(--ck-text3);}
.ck-lvbar-tip{font-size:11px;color:var(--ck-text3);opacity:.85;}
.ck-lvchip{border:none;background:transparent;padding:0;margin:0;cursor:pointer;font-family:inherit;border-radius:6px;opacity:.35;filter:grayscale(.65);transition:opacity .15s,filter .15s;}
.ck-lvchip.on{opacity:1;filter:none;}
.ck-lvchip .badge{cursor:pointer;font-size:11.5px;}
.ck-lvbar.loading .ck-lvchip{pointer-events:none;opacity:.22;}
/* v1.24.10.1 标题栏紧凑级别筛选：单字母分段胶囊（S/A/B/C），窄屏不换行不撑高标题栏 */
.ck-lvseg{display:inline-flex; align-items:center; gap:2px; padding:2px; flex:0 0 auto; white-space:nowrap;
  background:var(--ck-surface2); border:1px solid var(--ck-border); border-radius:10px;}
.ck-lvseg-lab-out{font-size:10px; color:var(--ck-text3); margin-right:4px; white-space:nowrap; font-weight:600; letter-spacing:.5px; vertical-align:middle;}
.ck-lvseg-btn{border:none; background:transparent; margin:0; padding:0; width:24px; height:22px;
  border-radius:7px; font-family:inherit; font-size:12px; font-weight:800; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  color:var(--ck-text3); opacity:.5; transition:opacity .15s, color .15s, background .15s;}
.ck-lvseg-btn:hover{opacity:.8;}
.ck-lvseg-btn.on{opacity:1;}
.ck-lvseg-btn.on.lv-s{color:var(--ck-orange); background:color-mix(in srgb,var(--ck-orange) 13%,transparent);}
.ck-lvseg-btn.on.lv-a{color:var(--ck-yellow); background:color-mix(in srgb,var(--ck-yellow) 13%,transparent);}
.ck-lvseg-btn.on.lv-b{color:var(--ck-mk); background:color-mix(in srgb,var(--ck-mk) 13%,transparent);}
.ck-lvseg-btn.on.lv-c{color:var(--ck-green); background:color-mix(in srgb,var(--ck-green) 13%,transparent);}
.ck-lvseg.loading .ck-lvseg-btn{pointer-events:none; opacity:.22;}
/* v1.24.10.3 标题警示灯icon："舱"字右上角、约50%字高（标准警示灯：光线×3+穹顶+底座）；
   颜色随健康灯 red/orange/yellow/green/gray，drop-shadow 发光模拟点亮 */
.ck-tt{position:relative;}
.ck-lamp-ico{position:absolute; top:-.06em; right:-.62em; width:.52em; height:.52em; line-height:1;
  pointer-events:none; filter:drop-shadow(0 0 3px currentColor);}
.ck-lamp-ico svg{display:block; width:100%; height:100%;}
.ck-lamp-ico-red{color:var(--ck-red);}
.ck-lamp-ico-orange{color:var(--ck-orange);}
.ck-lamp-ico-yellow{color:var(--ck-yellow);}
.ck-lamp-ico-green{color:var(--ck-green);}
.ck-lamp-ico-gray{color:var(--ck-gray);}

/* ==================================================================
   v1.23.0.0 三端驾驶舱（deck）——深空青金/电信蓝金皮肤 + Board/Mobile/Screen
   ================================================================== */

/* ---------- 皮肤：深空青金（默认） ---------- */
.ck-root.ck-deep{
  --ck-bg:#040b17;
  --ck-surface:rgba(10,26,50,.62);
  --ck-surface2:rgba(18,40,74,.42);
  --ck-border:rgba(64,196,255,.16);
  --ck-glow:rgba(56,200,255,.42);
  --ck-text:#e8f4ff; --ck-text2:#9dbede; --ck-text3:#63809f;
  --ck-primary:#38c8ff;
  --ck-primary-soft:rgba(56,200,255,.12);
  --ck-mk:#4aa8ff; --ck-nw:#2fe0a8; --ck-sp:#a78bfa;
  --ck-red:#ff5c6c; --ck-orange:#ff9a4d; --ck-yellow:#ffd043; --ck-green:#3ddc97; --ck-gray:#4a5f85; --ck-blue:#38c8ff;
  --ck-gold:#ffd166;
  --ck-county:rgba(14,38,72,.55); --ck-county-line:rgba(70,160,255,.65); --ck-county-text:#8fb8e8;
  --ck-town-fill:rgba(70,160,255,.08); --ck-town-line:rgba(70,160,255,.32);
  --ck-shadow:0 0 0 1px rgba(64,196,255,.06),0 10px 34px rgba(0,8,26,.6);
  background:
    radial-gradient(1100px 520px at 72% -12%, rgba(56,200,255,.13), transparent 62%),
    radial-gradient(900px 480px at 12% 112%, rgba(167,139,250,.11), transparent 58%),
    linear-gradient(178deg,#040b17 0%,#061224 58%,#081831 100%);
  color:var(--ck-text);
}
.ck-root.ck-deep::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.5;
  background:
    linear-gradient(rgba(64,196,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(64,196,255,.045) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask:linear-gradient(180deg,#000 0%,rgba(0,0,0,.25) 60%,transparent 100%);
  mask:linear-gradient(180deg,#000 0%,rgba(0,0,0,.25) 60%,transparent 100%);
}
/* ---------- 皮肤：电信蓝金（v1.23.0.1 改浅色系：白底+电信蓝，呼应电信品牌基因） ---------- */
.ck-root.ck-telecom{
  --ck-bg:#f2f7ff;
  --ck-surface:rgba(255,255,255,.86);
  --ck-surface2:rgba(240,247,255,.6);
  --ck-border:rgba(0,102,204,.14);
  --ck-glow:rgba(0,132,255,.3);
  --ck-text:#0c2a52; --ck-text2:#3d5a80; --ck-text3:#7c93b3;
  --ck-primary:#0070c0;
  --ck-primary-soft:rgba(0,132,255,.08);
  --ck-mk:#1a8cff; --ck-nw:#00b389; --ck-sp:#7c6cf0;
  --ck-red:#e5484d; --ck-orange:#f07818; --ck-yellow:#d9930d; --ck-green:#12a05c; --ck-gray:#9db0c8; --ck-blue:#1a8cff;
  --ck-gold:#f5a623;
  --ck-county:rgba(226,238,252,.9); --ck-county-line:rgba(0,102,204,.4); --ck-county-text:#5a82ad;
  --ck-town-fill:rgba(0,102,204,.06); --ck-town-line:rgba(0,102,204,.20);
  --ck-shadow:0 1px 2px rgba(12,42,82,.05),0 8px 24px rgba(12,42,82,.08);
  background:
    radial-gradient(1000px 480px at 75% -8%, rgba(0,132,255,.1), transparent 60%),
    radial-gradient(800px 420px at 8% 108%, rgba(0,150,255,.06), transparent 55%),
    linear-gradient(178deg,#f4f9ff 0%,#eef5fd 60%,#e8f1fb 100%);
  color:var(--ck-text);
}
.ck-root.ck-telecom::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.35;
  background:
    linear-gradient(rgba(0,102,204,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,102,204,.04) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask:linear-gradient(180deg,#000 0%,rgba(0,0,0,.2) 60%,transparent 100%);
  mask:linear-gradient(180deg,#000 0%,rgba(0,0,0,.2) 60%,transparent 100%);
}
/* 浅色系适配：发光改清爽投影、顶线降调 */
.ck-root.ck-telecom .ckb-kpi b, .ck-root.ck-telecom .cks-kpi b, .ck-root.ck-telecom .ckm-big b{text-shadow:0 2px 14px rgba(0,132,255,.16);}
.ck-root.ck-telecom .ckb-card::after{opacity:.35;}
.ck-root.ck-telecom .ck-top, .ck-root.ck-telecom .ckm-top{background:color-mix(in srgb,#ffffff 82%,transparent);}
.ck-root.ck-telecom .ckb-ticker, .ck-root.ck-telecom .ckm-ai{background:rgba(255,255,255,.75);}
/* 皮肤下玻璃卡 + 顶部霓虹线 */
.ck-root.ck-deep .ck-card, .ck-root.ck-telecom .ck-card,
.ck-root.ck-deep .ckb-card, .ck-root.ck-telecom .ckb-card{
  background:var(--ck-surface);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid var(--ck-border);
  box-shadow:var(--ck-shadow);
  position:relative;
}
.ck-root.ck-deep .ckb-card::after, .ck-root.ck-telecom .ckb-card::after{
  content:""; position:absolute; left:8%; right:8%; top:0; height:1px; pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--ck-glow),transparent); opacity:.55;
}
.ck-root.ck-deep .ckb-title, .ck-root.ck-telecom .ckb-title,
.ck-root.ck-deep .cks-title, .ck-root.ck-telecom .cks-title{
  background:linear-gradient(92deg,var(--ck-text) 15%,var(--ck-primary) 80%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
/* 红橙黄灯呼吸 */
.ck-root.ck-deep .dot.bg-red, .ck-root.ck-telecom .dot.bg-red,
.ck-root.ck-deep .dot.bg-orange, .ck-root.ck-telecom .dot.bg-orange,
.ck-root.ck-deep .dot.bg-yellow, .ck-root.ck-telecom .dot.bg-yellow{animation:ckPulse 2.2s infinite;}
.ck-root.ck-deep .ckb-kpi b, .ck-root.ck-telecom .ckb-kpi b,
.ck-root.ck-deep .cks-kpi b, .ck-root.ck-telecom .cks-kpi b,
.ck-root.ck-deep .ckm-big b, .ck-root.ck-telecom .ckm-big b{text-shadow:0 0 22px var(--ck-glow);}
/* v1.24.3.0 .ck-skin-tip 已删：皮肤按钮移入设置弹层，顶栏浮字提示不再使用 */

/* ---------- 动效 ---------- */
@keyframes ckFadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
@keyframes ckCursor{50%{opacity:0;}}
@keyframes ckPulse{
  0%,100%{box-shadow:0 0 0 0 currentColor; opacity:1;}
  50%{box-shadow:0 0 0 6px transparent; opacity:.6;}
}
[data-ck-typing="1"]::after{content:"▍"; margin-left:1px; color:var(--ck-primary); animation:ckCursor .9s steps(1) infinite;}

/* ==================================================================
   Board：PC 全屏网格（1024px+）
   ================================================================== */
.ck-wrap.ckb{max-width:1920px; padding:0 clamp(14px,1.8vw,40px) 26px; position:relative; z-index:1;}
.ckb-top{position:sticky; top:0; z-index:30;
  background:color-mix(in srgb,var(--ck-bg) 72%,transparent);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--ck-border);}
.ckb-top-in{display:flex; align-items:center; gap:12px; padding:12px clamp(8px,1vw,18px);}
.ckb-title{font-size:clamp(20px,1.6vw,26px); font-weight:800; letter-spacing:2.5px; line-height:1.15;}
.ckb-sub{font-size:12px; color:var(--ck-text2); margin-top:3px; display:flex; align-items:center; gap:10px; white-space:nowrap;}
/* v1.24.10.3 PC 第二行内胶囊与时钟随行缩小（
   sub 字号12px≈标题26px×50%，胶囊 22×18/10.5px 略小于 v1.24.10.1 版） */
.ckb-sub-txt{font-weight:600; letter-spacing:.5px;}
.ckb-sub .ck-lvseg{padding:1px; gap:2px; border-radius:8px;}
/* v1.24.13.18 电脑端标题栏级别筛选器调小（22×18/10.5px → 19×15/9.5px，整体更精致） */
.ckb-sub .ck-lvseg-btn{width:19px; height:15px; font-size:9.5px; border-radius:4px;}
.ckb-lamp{display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700;
  padding:2px 10px; border-radius:999px; border:1px solid var(--ck-border); margin-left:10px;}
.ckb-clock{margin-left:0; font-size:12px; color:var(--ck-text2); font-variant-numeric:tabular-nums; letter-spacing:1px;}
/* AI 态势条 */
.ckb-ticker{display:flex; align-items:center; gap:12px; margin:14px auto 0;
  padding:11px 16px; border:1px solid var(--ck-border); border-left:3px solid var(--ck-primary);
  background:var(--ck-surface2); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-radius:12px; font-size:14px; line-height:1.6; color:var(--ck-text2); min-height:46px;}
.ckb-tick-tag{flex:0 0 auto; font-size:10.5px; font-weight:800; color:var(--ck-primary);
  letter-spacing:1.5px; padding:2px 9px; border:1px solid var(--ck-primary-soft); border-radius:999px;}
/* KPI 数字带 */
.ckb-kpis{display:grid; grid-template-columns:repeat(8,1fr); gap:clamp(8px,1vw,16px); margin:14px auto 0;}
.ckb-kpi{padding:clamp(10px,1.2vw,18px) 6px; text-align:center; border:1px solid var(--ck-border);
  border-radius:14px; background:var(--ck-surface); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  animation:ckFadeUp .5s both;}
.ckb-kpi:nth-child(2){animation-delay:.05s;} .ckb-kpi:nth-child(3){animation-delay:.1s;}
.ckb-kpi:nth-child(4){animation-delay:.15s;} .ckb-kpi:nth-child(5){animation-delay:.2s;}
.ckb-kpi:nth-child(6){animation-delay:.25s;} .ckb-kpi:nth-child(7){animation-delay:.3s;}
.ckb-kpi:nth-child(8){animation-delay:.35s;}
.ckb-kpi b{display:block; font-size:clamp(26px,2.2vw,40px); font-weight:800; font-variant-numeric:tabular-nums; line-height:1.05;}
.ckb-kpi span{display:block; margin-top:6px; font-size:12px; color:var(--ck-text3); letter-spacing:1.5px;}
.ckb-kpi.lk-red b{color:var(--ck-red);} .ckb-kpi.lk-yellow b{color:var(--ck-yellow);}
.ckb-kpi.lk-orange b{color:var(--ck-orange);}
/* 三栏网格 */
.ckb-grid{display:grid; grid-template-columns:minmax(290px,25%) minmax(0,1.5fr) minmax(320px,29%);
  gap:clamp(12px,1vw,20px); margin-top:16px; align-items:start;}
.ckb-col{display:flex; flex-direction:column; gap:clamp(12px,1vw,20px); min-width:0;}
.ckb-card{border-radius:18px; overflow:hidden; animation:ckFadeUp .55s both;}
.ckb-card-donut{animation-delay:.42s;} .ckb-card-lines{animation-delay:.48s;} .ckb-card-thr{animation-delay:.54s;}
.ckb-card-dir{animation-delay:.36s;} .ckb-card-map{animation-delay:.46s;}
.ckb-card-ai{animation-delay:.5s;} .ckb-card-watch{animation-delay:.56s;}
.ckb-card-h{display:flex; align-items:center; gap:8px; padding:13px 16px 8px;
  font-size:14.5px; font-weight:800; letter-spacing:.5px;}
.ckb-card-h .tag{font-size:11px; color:var(--ck-text3); font-weight:400; margin-left:2px;}
.ckb-card-h-star{color:var(--ck-gold);}
.ckb-card-donut .ck-overview{padding:12px 16px 14px;}
.ckb-card-thr .ck-bars{padding:4px 14px 14px;}
/* 重点卡片：公司派发 */
.ckb-dir-sum{margin-left:auto; font-size:12px; color:var(--ck-text2); font-weight:600;}
.ckb-dir-sum b{font-weight:800;}
.ckb-dir-card{display:flex; align-items:flex-start; gap:10px; margin:0 12px; padding:12px 10px;
  border-top:1px solid var(--ck-border); border-radius:10px; transition:background .15s;}
.ckb-dir-card:first-of-type{border-top:none; margin-top:4px;}
.ckb-dir-card:hover{background:var(--ck-primary-soft);}
.ckb-dir-t{font-size:14.5px; font-weight:700; line-height:1.45;}
.ckb-dir-dl{font-size:11.5px; color:var(--ck-text3); margin-top:3px;}
.ckb-dir-s{font-size:12px; color:var(--ck-text2); margin-top:4px; line-height:1.5;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.ckb-dir-go{margin-left:auto; font-size:22px; color:var(--ck-text3); line-height:1; flex:0 0 auto;}
.ckb-dir-none{padding:22px; text-align:center; color:var(--ck-text3); font-size:13px;}
/* 三线迷你 */
.ckb-lines{display:flex; flex-direction:column; gap:10px; padding:6px 14px 14px;}
.ckb-line{border:1px solid var(--ck-border); border-left:3px solid; border-radius:12px;
  padding:10px 12px 11px; background:var(--ck-surface2);}
.ckb-line[data-ckline="mk"]{border-left-color:var(--ck-mk);}
.ckb-line[data-ckline="nw"]{border-left-color:var(--ck-nw);}
.ckb-line[data-ckline="sp"]{border-left-color:var(--ck-sp);}
.ckb-line-head{display:flex; align-items:center; gap:8px;}
.ckb-line-name{font-size:13.5px; font-weight:800; flex:1;}
.ckb-line-lamp{font-size:11px; font-weight:700;}
.ckb-line-nums{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:8px;}
.ckb-ln{text-align:center;}
.ckb-ln b{display:block; font-size:16px; font-weight:800; font-variant-numeric:tabular-nums;}
.ckb-ln span{font-size:10px; color:var(--ck-text3);}
.ckb-line-pct{margin-top:7px; font-size:11px; color:var(--ck-text3);}
/* AI 参谋卡 */
.ckb-ai-body{padding:4px 16px 14px; font-size:13px; line-height:1.65;}
.ckb-ai-wait{color:var(--ck-text3);} .ckb-ai-wait.err{color:var(--ck-orange);}
.ckb-ai-sum{color:var(--ck-text); font-weight:600;}
.ckb-ai-t{margin:10px 0 4px; font-size:11.5px; font-weight:800; color:var(--ck-primary); letter-spacing:1.5px;}
.ckb-ai-list{margin:0; padding-left:16px; color:var(--ck-text2); font-size:12.5px;}
.ckb-ai-list li{margin:3px 0;}
.ckb-ai-cache{margin-top:8px; font-size:10.5px; color:var(--ck-text3); text-align:right;}
/* 次重点 watchlist */
.ckb-watch-list{max-height:340px; overflow-y:auto;}
.ckb-watch{padding:10px 14px; border-top:1px solid var(--ck-border); transition:background .15s;}
.ckb-watch:first-child{border-top:none;}
.ckb-watch:hover{background:var(--ck-primary-soft);}
.ckb-watch-t{font-size:13px; font-weight:600; line-height:1.45; color:var(--ck-text);}
/* Board 中屏（1024-1360）：右栏折下方双列 */
@media(max-width:1360px){
  .ckb-grid{grid-template-columns:minmax(240px,30%) minmax(0,1fr);}
  .ckb-col.ckb-right{grid-column:1 / -1; display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); align-items:start;}
  .ckb-kpis{grid-template-columns:repeat(4,1fr); row-gap:10px;}
}

/* ==================================================================
   Mobile：一屏三问（<1024px）
   ================================================================== */
.ck-wrap.ckm{max-width:760px; padding:0 14px calc(30px + env(safe-area-inset-bottom)); position:relative; z-index:1;}
.ckm-top{position:sticky; top:0; z-index:30;
  background:color-mix(in srgb,var(--ck-bg) 74%,transparent);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--ck-border);}
.ckm-top-in{display:flex; align-items:center; gap:8px; padding:10px 12px;}
/* v1.24.10.1 品牌区可收缩（窄屏让位给级别胶囊与顶栏按钮，防换行撑高） */
.ckm-brand{flex:1 1 auto; min-width:0;}
/* v1.24.10.5 手机标题行改 flex：icon 静态并排（不被 ellipsis 裁剪容器裁掉），
   标题仍可收缩截断；icon 负 margin 左移压"舱"字右上角、约50%字高（17px×50%≈9px） */
.ckm-title-row{display:flex; align-items:flex-start; min-width:0;}
.ckm-title-row .ckm-title{flex:0 1 auto; min-width:0; font-size:17px; font-weight:800; letter-spacing:1.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ckm-title-row .ck-lamp-ico{position:static; flex:0 0 auto; width:9px; height:9px; margin:-1px 0 0 -5px;}
/* v1.24.10.3 手机第二行=缩小约50%字号的级别筛选器（17px×50%≈9.5px，胶囊 20×16） */
.ckm-sub{margin-top:3px; display:flex; align-items:center; gap:6px;}
.ckm-sub .ck-lvseg{padding:1px; gap:2px; border-radius:7px;}
/* v1.24.13.18 手机端标题栏级别筛选器同步调小（20×16/9.5px → 17×13/8.5px） */
.ckm-sub .ck-lvseg-btn{width:17px; height:13px; font-size:8.5px; border-radius:4px;}
/* v1.24.3.4 AI 态势研判一卡（用户拍板整合：原摘要条+要点块合一）；
   min-height 防异步加载撑高跳动；.ckm-ai 旧独立条样式已删（DOM 移除） */
.ckm-ai-united{border:1px solid var(--ck-border); border-left:3px solid var(--ck-primary); border-radius:12px;
  background:var(--ck-surface2); padding:13px 15px; min-height:96px;
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);}
.ckm-ai-sum{font-size:14px; line-height:1.65; color:var(--ck-text); font-weight:600; min-height:46px;}
.ckm-ai-united .ckm-aifocus-list{margin:8px 0 0; padding-left:16px;}
.ckm-ai-united .ckm-aifocus-list li{font-size:12.5px; line-height:1.6; color:var(--ck-text2); margin:3px 0;}
.ckm-bignums{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px;}
.ckm-big{text-align:center; padding:14px 4px 12px; border:1px solid var(--ck-border); border-radius:14px;
  background:var(--ck-surface); animation:ckFadeUp .5s both;}
.ckm-big:nth-child(2){animation-delay:.08s;} .ckm-big:nth-child(3){animation-delay:.16s;}
.ckm-big b{display:block; font-size:33px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1;}
.ckm-big span{display:block; margin-top:5px; font-size:11px; color:var(--ck-text3); letter-spacing:2px;}
.ckm-big.hot b{color:var(--ck-orange);}
.ckm-lines{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px;}
.ckm-line{border:1px solid var(--ck-border); border-radius:12px; padding:10px 8px 9px;
  display:flex; flex-direction:column; align-items:center; gap:3px; background:var(--ck-surface);}
.ckm-line .dot{width:8px; height:8px; border-radius:50%;}
.ckm-line-name{font-size:12px; font-weight:700; color:var(--ck-text);}
.ckm-line b{font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.1;}
.ckm-line span{font-size:10px; color:var(--ck-text3);}
.ckm-line em{font-style:normal; font-size:10.5px; font-weight:700;}
.ckm-sec{margin-top:16px; animation:ckFadeUp .5s both;}
.ckm-sec-t{font-size:12.5px; font-weight:800; letter-spacing:1.5px; color:var(--ck-text2);
  margin-bottom:8px; display:flex; align-items:center; gap:6px;}
.ckm-problem,.ckm-dir{display:flex; align-items:flex-start; gap:9px; padding:12px;
  border:1px solid var(--ck-border); border-radius:12px; background:var(--ck-surface);
  margin-bottom:8px; transition:background .15s;}
.ckm-problem:hover,.ckm-dir:hover{background:var(--ck-primary-soft);}
.ckm-p-t{font-size:13.5px; font-weight:700; line-height:1.5;}
.ckm-dir-dl{font-size:11px; color:var(--ck-text3); margin-top:3px;}
.ckm-allclear{padding:14px; text-align:center; color:var(--ck-text3); font-size:12.5px;
  border:1px dashed var(--ck-border); border-radius:12px;}
.ckm-aifocus{border:1px solid var(--ck-border); border-radius:12px; background:var(--ck-surface);
  padding:13px 15px; font-size:12.5px; line-height:1.65; color:var(--ck-text2);}
.ckm-aifocus-list{margin:0; padding-left:16px;}
.ckm-aifocus-list li{margin:3px 0;}
.ckm-aifocus-none{color:var(--ck-text3); font-size:12.5px;}
.ckm-map{border:1px solid var(--ck-border); border-radius:14px; background:var(--ck-surface); overflow:hidden;}
.ckm-map .ck-map-wrap{padding:0;}
.ckm-map .ck-map-svg{max-height:240px;}
.ckm-map .ck-sec-h{padding:10px 14px 4px;}
/* v1.24.3.5→1.24.3.6 全卡折叠（用户拍板）：7 卡 × 收起、按钮旋转 45°（×→＋展开暗示）、悬浮球废弃 */
.ckm-fold-body{margin-top:0;}
.ckm-fold-body.hidden{display:none;}
.ckm-ai-united.hidden, #ckmMapInline.hidden, #ckmDirBody.hidden, #ckmWatchBody.hidden,
#ckmStatBody.hidden, #ckmWarnBody.hidden, #ckmNeedBody.hidden{display:none;}
.ckm-fold{margin-left:auto; width:30px; height:30px; border-radius:50%; border:1px solid var(--ck-border);
  background:color-mix(in srgb,var(--ck-surface) 80%,transparent); color:var(--ck-text2); font-size:17px; line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform .25s ease, color .25s ease;}
.ckm-fold.folded{transform:rotate(45deg); color:var(--ck-primary);}  /* × 旋转 45°＝＋，暗示可展开 */
.ckm-fold:active{transform:scale(.94);}
/* v1.24.3.2 嵌套拍平：Board 复用卡（部门自报 ckb-card / 红橙预警 ck-card）嵌入 ckm-sec 时去玻璃卡底；
   v1.24.3.7 内层标题隐藏（外层 ckm-sec-t 唯一标题——原复用组件自带标题会造成双重标题，改名后更乱） */
.ckm-sec .ckb-card{margin:0; background:transparent; border:none; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none;}
.ckm-sec .ck-sec{margin:0;}
.ckm-sec .ck-card{background:transparent; border:none; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none;}
.ckm-sec .ck-sec-h, .ckm-sec .ckb-card-h{display:none;}
.ckm-acts{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:18px;
  padding-top:14px; border-top:1px solid var(--ck-border);}
.ckm-act-btn{border:1px solid var(--ck-border); background:var(--ck-surface); color:var(--ck-text2);
  border-radius:999px; padding:7px 15px; font-size:12.5px; font-weight:600; cursor:pointer;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); transition:.15s;}
.ckm-act-btn:active{transform:scale(.95);}

/* ==================================================================
   Screen：投屏轮播（?ckmode=screen）
   ================================================================== */
.ck-root:has(> .cks){overflow:hidden;}
.ck-wrap.cks{position:absolute; inset:0; max-width:none; padding:0;
  display:flex; flex-direction:column; z-index:1;}
.cks-top{display:flex; align-items:center; gap:20px; padding:16px clamp(20px,3vw,48px);
  border-bottom:1px solid var(--ck-border);}
.cks-title{font-size:clamp(20px,2vw,30px); font-weight:800; letter-spacing:4px;}
.cks-clockbox{margin-left:auto; text-align:right; display:flex; flex-direction:column; gap:2px;}
.cks-clock{font-size:clamp(26px,2.6vw,40px); font-weight:800; font-variant-numeric:tabular-nums;
  letter-spacing:2px; line-height:1;}
.cks-date{font-size:13.5px; color:var(--ck-text2);}
.cks-top .ckb-lamp{margin-left:0;}
.cks-exit{border:none; background:transparent; color:var(--ck-text3); font-size:22px; cursor:pointer;
  opacity:.18; transition:.2s; padding:2px 8px;}
.cks-exit:hover{opacity:1;}
.cks-stage{flex:1; position:relative; min-height:0;}
.cks-pane{position:absolute; inset:0; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .9s ease, visibility .9s;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.5vh;
  padding:2.5vh clamp(3vw,4vw,64px); overflow:hidden;}
.cks-pane.on{opacity:1; visibility:visible; pointer-events:auto;}
.cks-pane-t{font-size:clamp(15px,1.5vw,21px); font-weight:800; letter-spacing:5px; color:var(--ck-text2);}
.cks-donut-wrap{transform:scale(1.25); margin:2vh 0 0;}
.cks-donut-wrap .ck-overview{gap:26px;}
.cks-donut-wrap .ck-donut .mid b{font-size:34px;}
.cks-kpis{display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(10px,2vw,26px);
  width:100%; max-width:1500px; margin-top:2.5vh;}
.cks-kpi{text-align:center; border:1px solid var(--ck-border); border-radius:16px;
  padding:clamp(12px,1.6vh,22px) 6px; background:var(--ck-surface);}
.cks-kpi b{display:block; font-size:clamp(34px,3.6vw,58px); font-weight:800;
  font-variant-numeric:tabular-nums; line-height:1;}
.cks-kpi span{display:block; margin-top:8px; font-size:clamp(11px,1vw,14px); color:var(--ck-text3); letter-spacing:3px;}
.cks-kpi.lk-red b{color:var(--ck-red);} .cks-kpi.lk-yellow b{color:var(--ck-yellow);}
.cks-lines{width:100%; max-width:1500px; transform:scale(1.15); transform-origin:top center; margin-top:1vh;}
.cks-map{width:100%; flex:1; min-height:0; display:flex; align-items:center; justify-content:center;}
.cks-map .ck-map-svg{max-height:66vh;}
.cks-map .ck-map-wrap{padding:0 8px;}
.cks-focus{width:100%; max-width:1400px; overflow:hidden;}
.cks-frow{display:flex; align-items:center; gap:14px; padding:clamp(10px,1.4vh,18px) 20px;
  border:1px solid var(--ck-border); border-radius:14px; background:var(--ck-surface);
  margin-bottom:clamp(6px,.8vh,12px);}
.cks-f-t{font-size:clamp(14px,1.35vw,19px); font-weight:700; flex:1; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.cks-f-sub{font-size:12.5px; color:var(--ck-text3); flex:0 0 auto;}
.cks-dots{position:fixed; left:50%; bottom:24px; transform:translateX(-50%);
  display:flex; gap:10px; z-index:5;}
.cks-dots i{width:28px; height:3px; border-radius:2px; background:var(--ck-border);
  opacity:.5; transition:.3s;}
.cks-dots i.on{background:var(--ck-primary); opacity:1; box-shadow:0 0 10px var(--ck-glow);}

/* ==================================================================
   v1.23.0.1 迭代：地图智能缩放 + 电信浅色适配后补 + 投屏滚动流 + 手机地图入口
   ================================================================== */
/* 公司派发任务流列表（中栏主体） */
.ckb-dirf-list{overflow-y:auto;}
.ck-root.ck-map-big .ckb-dirf-list{max-height:30vh;}
.ck-root:not(.ck-map-big) .ckb-dirf-list{max-height:calc(100vh - 250px);}
.ckb-dirf-list .ckb-dir-card{margin:0 12px;}
.ckb-dirf-list .ckb-dir-card:last-child{margin-bottom:14px;}
/* 大图舞台（中栏） */
.ckb-mapstage{position:relative;}
.ckb-mapstage.hidden{display:none;}
.ckb-mapstage .ck-map-wrap{padding:0 8px 4px;}
.ckb-mapstage .ck-map-svg{max-height:calc(52vh - 60px);}
.ckb-map-xbar{position:absolute; top:8px; right:10px; z-index:12;}
.ckb-map-x{border:1px solid var(--ck-border); background:color-mix(in srgb,var(--ck-surface) 80%,transparent); color:var(--ck-text2);
  width:30px; height:30px; border-radius:50%; font-size:17px; line-height:1; cursor:pointer;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); transition:.15s;}
.ckb-map-x:hover{color:var(--ck-text); transform:scale(1.06);}
/* v1.24.3.1 地图停靠小窗：fixed 视窗左下角（用户拍板：电脑端缩小到左下角，点击恢复中栏） */
.ckb-map-mini{position:fixed; left:16px; bottom:16px; z-index:60; width:290px;
  border:1px solid var(--ck-border); border-radius:14px; overflow:hidden;
  background:var(--ck-surface); cursor:pointer; transition:.15s;
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); box-shadow:var(--ck-shadow);}
.ckb-map-mini:hover{border-color:var(--ck-primary);}
.ckb-map-mini.hidden{display:none;}
.ckb-map-mini-h{padding:9px 14px 2px; font-size:12.5px; font-weight:800; letter-spacing:1px;}
.ckb-map-mini svg{width:100%; display:block; max-height:170px;}
.ckb-map-mini-cap{padding:4px 10px 8px; text-align:center; font-size:10.5px; color:var(--ck-text3);}
/* 过渡动画 */
.ck-fadein{animation:ckFadeIn .35s both;}
.ck-fading{animation:ckFadeOut .3s both;}
@keyframes ckFadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes ckFadeOut{from{opacity:1;}to{opacity:0;}}
/* v1.24.3.5 .ckm-map-fab 已删（悬浮球废弃，两卡折叠取代）；#ckmMapSec.hidden 已删（折叠只藏内容行不藏整卡） */
/* 投屏第4屏：交办进展垂直滚动流 */
.cks-marquee-window{width:100%; max-width:1500px; height:64vh; overflow:hidden; position:relative;
  -webkit-mask:linear-gradient(180deg,transparent,#000 5%,#000 95%,transparent);
  mask:linear-gradient(180deg,transparent,#000 5%,#000 95%,transparent);}
.cks-marquee{display:flex; flex-direction:column; animation:cksScroll 30s linear infinite;}
@keyframes cksScroll{from{transform:translateY(0);}to{transform:translateY(-50%);}}
.cks-mrow{display:flex; align-items:flex-start; gap:16px; padding:clamp(12px,1.6vh,20px) 22px;
  border:1px solid var(--ck-border); border-radius:16px; background:var(--ck-surface);
  margin-bottom:clamp(8px,1vh,14px); flex:0 0 auto;}
.cks-mrow .badge{flex:0 0 auto; margin-top:4px;}
.cks-m-main{flex:1; min-width:0;}
.cks-m-t{font-size:clamp(15px,1.4vw,20px); font-weight:800; line-height:1.4;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.cks-m-p{font-size:clamp(13px,1.1vw,16px); color:var(--ck-text2); line-height:1.55; margin-top:5px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.cks-m-none{color:var(--ck-text3); opacity:.7;}
.cks-m-sub{font-size:12.5px; color:var(--ck-text3); margin-top:5px;}
.cks-m-st{flex:0 0 auto; font-size:13px; font-weight:800; margin-top:6px; white-space:nowrap;}
/* v1.24.9.0 KPI 悬停气泡：数字上浮任务明细 tooltip */
.ckb-kpi-tip{position:fixed; z-index:9999; min-width:320px; max-width:420px;
  background:var(--ck-surface); border:1px solid var(--ck-border); border-radius:14px;
  box-shadow:0 12px 40px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.04);
  padding:0; overflow:hidden; animation:ckFadeIn .2s both; pointer-events:auto;}
.ckb-kpi-tip-h{font-size:11.5px; font-weight:800; letter-spacing:1px; color:var(--ck-text2);
  padding:8px 12px 4px; border-bottom:1px solid var(--ck-border);
  background:linear-gradient(92deg,var(--ck-surface2),var(--ck-surface));}
.ckb-kpi-tip{position:fixed; z-index:9999; min-width:300px; max-width:400px;
  font-size:13px; line-height:1.6;
  background:var(--ck-surface); border:1px solid var(--ck-border); border-radius:12px;
  box-shadow:0 10px 32px rgba(0,0,0,.24), 0 0 0 1px rgba(255,255,255,.04);
  padding:0; overflow:hidden; animation:ckFadeIn .18s both; pointer-events:auto;
  backdrop-filter:blur(18px) saturate(1.4); -webkit-backdrop-filter:blur(18px) saturate(1.4);}
/* v1.24.13.16 KPI 气泡美观化：字体大一号、去加粗、加大行距（用户拍板） */
.ckb-kpi-tip-h{font-size:12.5px; font-weight:500; letter-spacing:.3px; color:var(--ck-text2);
  padding:9px 12px 5px; border-bottom:1px solid var(--ck-border);
  background:linear-gradient(92deg,var(--ck-surface2),var(--ck-surface));}
.ckb-kpi-tip-row{display:flex; align-items:center; gap:6px; padding:5px 10px;
  border-bottom:1px solid var(--ck-border); transition:background .12s;}
.ckb-kpi-tip-row:last-of-type{border-bottom:none;}
.ckb-kpi-tip-row:hover{background:var(--ck-surface2);}
/* v1.24.10.7 tooltip 背景调至 85% 不透明（15% 透明）：暗色近实心+亮色近实心，文字清晰 */
.ck-root.ck-deep .ckb-kpi-tip{background:rgba(10,26,50,.95);}
.ck-root.ck-deep .ckb-kpi-tip-row:hover{background:rgba(18,40,74,.80);}
.ck-root.ck-deep .ckb-kpi-tip-row.lk-red{background:rgba(220,38,38,.12);}
.ck-root.ck-deep .ckb-kpi-tip-row.lk-yellow{background:rgba(234,179,8,.12);}
.ck-root.ck-telecom .ckb-kpi-tip{background:rgba(255,255,255,.97);}
.ck-root.ck-telecom .ckb-kpi-tip-row:hover{background:rgba(240,247,255,.88);}
.ck-root.ck-telecom .ckb-kpi-tip-row.lk-red{background:rgba(220,38,38,.10);}
.ck-root.ck-telecom .ckb-kpi-tip-row.lk-yellow{background:rgba(234,179,8,.10);}
.ckb-kpi-tip-row .badge{flex:0 0 auto; width:16px; height:16px; border-radius:4px;
  font-size:10px; font-weight:600; line-height:16px; text-align:center; padding:0;
  display:inline-flex; align-items:center; justify-content:center;}
.ckb-kpi-tip-row .ckb-kpi-tip-t{flex:1; min-width:0; font-size:11px; font-weight:400;
  color:var(--ck-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ckb-kpi-tip-row .ckb-kpi-tip-s{flex:0 0 auto; font-size:10px; color:var(--ck-text2);
  max-width:40px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ckb-kpi-tip-row .ckb-kpi-tip-d{flex:0 0 auto; font-size:11px; color:var(--ck-text3);
  max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ckb-kpi-tip-row{padding:5px 10px; border-bottom:1px solid var(--ck-border); transition:background .1s;}
.ckb-kpi-tip-row:last-of-type{border-bottom:none;}
/* 已完成任务删除线（KPI tooltip 内） */
.ckb-kpi-tip-row.ckb-kpi-done .ckb-kpi-tip-t{text-decoration:line-through;color:var(--ck-text3);font-weight:400;}
.ckb-kpi-tip-empty{padding:16px 12px; text-align:center; font-size:13px;
  color:var(--ck-text3); background:var(--ck-surface2);}
.ckb-kpi-tip-more{padding:6px 12px 7px; font-size:11px; color:var(--ck-text3);
  border-top:1px solid var(--ck-border); background:var(--ck-surface2);}
/* 百分比名词解释 */
.ckb-kpi-tip-def{font-size:11.5px; color:var(--ck-text3); padding:5px 12px 5px;
  border-top:1px solid var(--ck-border); line-height:1.6; white-space:normal;}
/* v1.24.13.16 百分比类KPI（按期办结率/闭环完成度）气泡值：大数字居中、与任务列表统一风格 */
.ckb-kpi-tip-val{padding:16px 12px 18px; font-size:28px; font-weight:600;
  color:var(--ck-text); letter-spacing:.5px; text-align:center;
  background:var(--ck-surface);}
