:root{
  --red:#B01F24;
  --red-dark:#8C171B;
  --red-soft:#FBEDED;
  --gold:#C9A227;
  --gold-soft:#FCF6E4;
  --green:#1F7A54;
  --green-soft:#EAF5F0;
  --blue:#2A6DB0;
  --blue-soft:#EAF2FA;
  --orange:#C4622D;
  --orange-soft:#FBF0E9;
  --purple:#6B4FA8;
  --purple-soft:#F1ECFA;
  --gray:#8A9099;
  --gray-soft:#F1F3F6;
  --ink:#1C2126;
  --ink-2:#4A5560;
  --ink-3:#7A838D;
  --line:#E5E8EC;
  --bg:#F6F7F9;
  --card:#FFFFFF;
  --radius:12px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  font-size:14px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p,ul,ol{margin:0}
ul,ol{padding-left:20px}
button{font-family:inherit}

/* ---------- topbar ---------- */
.topbar{
  background:linear-gradient(120deg,#8C171B 0%,#B01F24 55%,#C0392B 100%);
  color:#fff;
  padding:0 24px;
}
.topbar-inner{
  max-width:1400px;margin:0 auto;
  display:flex;align-items:center;gap:24px;
  padding:16px 0;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:14px;min-width:300px}
.brand-mark{
  width:44px;height:44px;flex:0 0 44px;border-radius:10px;
  background:linear-gradient(135deg,#E8C65A,#C9A227);
  color:#7A1013;font-weight:800;font-size:17px;letter-spacing:.5px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.brand-text h1{font-size:19px;font-weight:700;letter-spacing:.5px}
.brand-text p{font-size:12.5px;opacity:.85;margin-top:2px}
.brand-text .sep{opacity:.45;margin:0 6px}
.topbar-meta{display:flex;gap:26px;margin-left:auto;flex-wrap:wrap}
.meta-item{display:flex;flex-direction:column;line-height:1.35}
.meta-item .k{font-size:11px;opacity:.7}
.meta-item .v{font-size:13px;font-weight:600}
.topbar-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- buttons ---------- */
.btn{
  border:1px solid transparent;border-radius:8px;
  padding:8px 14px;font-size:13px;cursor:pointer;
  background:#fff;color:var(--ink);transition:.15s;white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,#C0392B,#B01F24);color:#fff;box-shadow:0 2px 8px rgba(176,31,36,.28)}
.btn-primary:hover{background:linear-gradient(135deg,#B01F24,#8C171B)}
.btn-lg{padding:11px 26px;font-size:14.5px;font-weight:600}
.btn-ghost{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.24)}
.btn-mini{padding:6px 11px;font-size:12.5px;background:#fff;border-color:var(--line);color:var(--ink-2)}
.btn-mini:hover{border-color:var(--red);color:var(--red)}
.btn-mini.danger:hover{border-color:#C0392B;color:#C0392B}
.icon-btn{border:none;background:none;cursor:pointer;font-size:16px;color:var(--ink-3);line-height:1}
.icon-btn:hover{color:var(--red)}

/* ---------- tabs ---------- */
.tabs{
  background:#fff;border-bottom:1px solid var(--line);
  padding:0 24px;position:sticky;top:0;z-index:40;
}
.tabs-inner{max-width:1400px;margin:0 auto;display:flex;gap:4px}
.tab{
  border:none;background:none;padding:14px 20px;cursor:pointer;
  font-size:14.5px;color:var(--ink-3);position:relative;font-weight:500;
}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--red);font-weight:600}
.tab.active::after{
  content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:2.5px;
  background:var(--red);border-radius:2px;
}
.tab .badge{
  display:inline-block;min-width:20px;padding:0 6px;height:18px;line-height:18px;
  background:var(--red-soft);color:var(--red);border-radius:9px;
  font-size:11.5px;font-weight:700;margin-left:4px;text-align:center;
}

/* ---------- layout ---------- */
.wrap{max-width:1400px;margin:0 auto;padding:22px 24px 60px}
.view{display:none}
.view.active{display:block}

/* ---------- form ---------- */
.form-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.form-head{
  padding:18px 24px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#FCFAF8,#fff);
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
}
.form-head h2{font-size:17px;font-weight:700}
.form-head .sub{font-size:12.5px;color:var(--ink-3);margin-top:4px}
.form-head .sub em{color:var(--red);font-style:normal}
.tag{
  flex:0 0 auto;background:var(--red-soft);color:var(--red);
  border:1px solid #F2D9D9;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600;
}
.fs{border:none;border-top:1px solid var(--line);margin:0;padding:20px 24px 22px}
.fs legend{
  padding:0;margin-left:-8px;font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:8px;
}
.fs legend .num{
  background:linear-gradient(135deg,#C0392B,#B01F24);color:#fff;
  width:22px;height:22px;border-radius:6px;display:inline-flex;
  align-items:center;justify-content:center;font-size:11.5px;font-weight:700;
}
.legend-tip{font-size:11.5px;color:var(--gold);font-weight:600}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px 16px}
.col-3{grid-column:span 3}
.col-4{grid-column:span 4}
.col-6{grid-column:span 6}
.col-12{grid-column:span 12}
.field label{display:block;font-size:12.5px;color:var(--ink-2);font-weight:600;margin-bottom:6px}
.field em{color:var(--red);font-style:normal}
.field input[type=text],.field input[type=tel],.field input[type=email],.field input[type=number],.field select,.field textarea{
  width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  font-size:13.5px;color:var(--ink);background:#fff;outline:none;transition:.15s;font-family:inherit;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(176,31,36,.08)}
.field textarea{resize:vertical;line-height:1.6}
.field input.err{border-color:#C0392B;background:#FFF8F8}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  border:1px solid var(--line);background:#fff;color:var(--ink-2);
  border-radius:20px;padding:6px 14px;font-size:12.5px;cursor:pointer;transition:.15s;
}
.chip:hover{border-color:#D9A9A9}
.chip.active{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
.file-line{display:flex;align-items:center;gap:10px}
.file-hint{font-size:12px;color:var(--ink-3)}
.form-foot{
  border-top:1px solid var(--line);padding:18px 24px;
  background:linear-gradient(180deg,#fff,#FCFAF8);
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.agree-line{max-width:640px}
.cb{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--ink-2);font-weight:400;cursor:pointer}
.cb input{margin-top:3px;accent-color:var(--red)}
.foot-btns{display:flex;gap:10px}

/* ---------- 模式提示 ---------- */
.mode-tip{
  max-width:1400px;margin:12px auto -6px;padding:9px 16px;
  background:var(--gold-soft);border:1px solid #F0E4C0;border-radius:10px;
  font-size:12.5px;color:#8A6D14;line-height:1.7;
}
.mode-tip b{color:#7A5F0E}
.mode-tip code{background:#fff;border:1px solid #EADDBA;border-radius:4px;padding:1px 6px;font-size:12px}

/* ---------- 顶部用户区 ---------- */
.user-box{
  display:flex;align-items:center;gap:10px;margin-left:auto;
  min-width:0;max-width:100%;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
  border-radius:10px;padding:6px 12px 6px 8px;
}
.u-avatar{
  width:34px;height:34px;flex:0 0 34px;border-radius:0;
  background:transparent;color:#78dcff;border:0;box-shadow:none;
  font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.u-info{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.u-name{font-size:14px;font-weight:700;color:#f1f9ff;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u-role{font-size:11px;opacity:.8}
.btn-s{padding:5px 10px;font-size:12px}

/* ---------- 报名 / 登录入口 ---------- */
.entry{
  display:grid;grid-template-columns:1fr 360px;gap:26px;
  padding:32px 40px;border-top:1px solid var(--line);
  background:linear-gradient(180deg,#FCFAF8,#fff);
}
.entry-left h3{font-size:16px;color:var(--red);font-weight:700;margin-bottom:12px;padding-left:11px;border-left:3px solid var(--red)}
.steps{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:8px}
.steps li{
  font-size:13.5px;color:var(--ink-2);display:flex;align-items:center;gap:10px;
  background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;
}
.steps li b{
  font-size:12px;color:#fff;background:linear-gradient(135deg,#C0392B,#B01F24);
  width:24px;height:24px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;
}
.entry-tip{font-size:12.5px;color:var(--ink-3);line-height:1.8}

.entry-right{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:18px;box-shadow:0 4px 18px rgba(16,24,40,.06);align-self:start;
}
.login-tabs{display:flex;gap:6px;margin-bottom:16px}
.ltab{
  flex:1;border:1px solid var(--line);background:#fff;border-radius:8px;
  padding:8px 6px;font-size:13px;cursor:pointer;color:var(--ink-2);transition:.15s;
}
.ltab.active{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
.lt-pane{display:none}
.lt-pane.active{display:block}

.qr-box{
  width:220px;height:220px;margin:0 auto 12px;position:relative;
  border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;
}
.qr-box iframe{width:300px;height:420px;border:0;margin:-52px 0 0 -40px}
.qr-mock{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:#fff;
}
.qr-mock .qr-grid{
  width:170px;height:170px;border-radius:8px;
  background-image:
    linear-gradient(to right,#1C2126 6px,transparent 6px),
    linear-gradient(to bottom,#1C2126 6px,transparent 6px);
  background-size:14px 14px;
  position:relative;opacity:.85;
}
.qr-mock .qr-grid::after{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:38px;height:38px;background:#fff;border:4px solid #1C2126;border-radius:6px;
}
.qr-badge{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:34px;height:34px;border-radius:6px;
  background:linear-gradient(135deg,#C0392B,#B01F24);color:#fff;
  font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;
}
.qr-tip{text-align:center;font-size:12.5px;color:var(--ink-2);line-height:1.7;margin-bottom:6px}
.qr-tip .mini{font-size:11.5px;color:var(--ink-3)}
.qr-tip b{color:var(--green)}

.mock-form{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.mock-form input,.lt-pane input{
  width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  font-size:13.5px;outline:none;font-family:inherit;
}
.lt-pane input{margin-bottom:8px}
.mock-form input:focus,.lt-pane input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(176,31,36,.08)}
.btn-block{width:100%;display:block}
.mini-tip{font-size:11.5px;color:var(--ink-3);line-height:1.7;margin-top:10px}
.mini-tip b{color:var(--orange)}

/* 登录后的用户卡片 */
.uc-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.uc-avatar{
  width:44px;height:44px;flex:0 0 44px;border-radius:0;
  background:transparent;color:#78dcff;border:0;box-shadow:none;
  font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.uc-head>div:last-child{min-width:0}
.uc-name{font-size:20px;font-weight:700;color:#f1f9ff;line-height:1.5;letter-spacing:.4px;overflow-wrap:anywhere}
.uc-role{font-size:12px;color:#91b4d4;margin-top:3px;line-height:1.5;overflow-wrap:anywhere}
.uc-body{
  background:linear-gradient(180deg,#FCFAF8,#fff);border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;margin-bottom:12px;
}
.uc-line{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-3);padding:3px 0}
.uc-line b{color:var(--ink)}
.uc-line .st{padding:2px 8px}
.uc-line.dim{color:var(--ink-3);justify-content:center}
.uc-btns{display:flex;flex-direction:column;gap:8px}

/* ---------- 我的报名 ---------- */
.mine-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  margin-bottom:16px;flex-wrap:wrap;
}
.mine-head h2{font-size:18px;font-weight:700}
.mine-head p{font-size:12.5px;color:var(--ink-3);margin-top:4px;max-width:720px}
.mine-list{display:flex;flex-direction:column;gap:14px}
.mine-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:18px 20px;
}
.mc-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.mc-name{font-size:16.5px;font-weight:700;color:var(--ink)}
.mc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 16px;margin-bottom:12px}
.mc-item{display:flex;flex-direction:column;gap:2px}
.mc-item .k{font-size:11.5px;color:var(--ink-3)}
.mc-item .v{font-size:13.5px;color:var(--ink);font-weight:600}
.mc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.mc-remark{font-size:12.5px;color:var(--ink-2);background:var(--gray-soft);border-radius:8px;padding:8px 12px;margin-bottom:10px}
.mc-ops{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mc-ops button{
  border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 14px;
  font-size:13px;cursor:pointer;color:var(--ink-2);
}
.mc-ops button:hover{border-color:var(--red);color:var(--red)}
.mc-ops button.danger:hover{border-color:#C0392B;color:#C0392B;background:#FDF3F2}
.mc-lock{font-size:12px;color:var(--ink-3)}
.mc-tip{
  margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);
  font-size:12.5px;color:var(--ink-3);
}
.mine-note{
  margin-top:16px;background:var(--blue-soft);border:1px solid #D6E6F5;border-radius:10px;
  padding:12px 16px;font-size:12.5px;color:#1C4F80;line-height:1.8;
}

/* ---------- 弹窗 ---------- */
.modal-mask{position:fixed;inset:0;background:rgba(16,24,40,.4);opacity:0;pointer-events:none;transition:.2s;z-index:70}
.modal-mask.show{opacity:1;pointer-events:auto}
.modal{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.97);
  width:380px;max-width:92vw;background:#fff;border-radius:14px;z-index:71;
  padding:22px 24px 20px;box-shadow:0 20px 60px rgba(16,24,40,.24);
  opacity:0;pointer-events:none;transition:.22s;
}
.modal.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.modal h3{font-size:16px;font-weight:700;margin-bottom:6px}
.modal .m-sub{font-size:12.5px;color:var(--ink-3);margin-bottom:14px}
.modal label{display:block;font-size:12.5px;color:var(--ink-2);font-weight:600;margin:8px 0 5px}
.modal input{
  width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  font-size:13.5px;outline:none;font-family:inherit;
}
.modal input:focus{border-color:var(--red)}
.m-btns{display:flex;gap:10px;margin-top:18px}
.m-btns .btn-primary{flex:1}

/* ---------- toolbar ---------- */
.toolbar{
  display:flex;gap:12px;justify-content:space-between;align-items:center;
  margin-bottom:14px;flex-wrap:wrap;
}
.tb-left,.tb-right{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.search{
  width:290px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;
  font-size:13.5px;outline:none;background:#fff;
}
.search:focus{border-color:var(--red)}
#fltProvince,#fltIndustry,#fltStatus,#fltAi,#fltQual{
  padding:8px 10px;border:1px solid var(--line);border-radius:8px;
  font-size:13px;background:#fff;outline:none;color:var(--ink-2);
}

/* ---------- table ---------- */
.table-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.table-scroll{overflow-x:auto}
.tb{width:100%;border-collapse:collapse;min-width:1180px}
.tb th{
  background:#FAFBFC;text-align:left;padding:11px 12px;font-size:12.5px;
  color:var(--ink-2);font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap;
}
.tb th.sortable{cursor:pointer;user-select:none}
.tb th.sortable:hover{color:var(--red)}
.tb th.sortable::after{content:"↕";opacity:.35;margin-left:4px;font-size:11px}
.tb td{padding:11px 12px;border-bottom:1px solid #F1F3F6;font-size:13px;vertical-align:middle}
.tb tbody tr:hover{background:#FDFBFA}
.tb tbody tr.sel{background:var(--red-soft)}
.c-chk,.c-idx{width:36px}
.c-idx{color:var(--ink-3);font-size:12px}
.c-op{width:172px}
.tb .co{font-weight:600;color:var(--ink);cursor:pointer}
.tb .co:hover{color:var(--red);text-decoration:underline}
.tb .sub{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.tb .phone{font-variant-numeric:tabular-nums;letter-spacing:.2px}
.pills{display:flex;flex-wrap:wrap;gap:4px;max-width:210px}
.pill{
  font-size:11px;padding:2px 7px;border-radius:5px;white-space:nowrap;
  background:var(--gray-soft);color:var(--ink-2);
}
.pill.q{background:var(--gold-soft);color:#8A6D14}
.pill.n{background:var(--blue-soft);color:#1C4F80}
.pill.s{background:var(--purple-soft);color:#4E377F}
.st{
  display:inline-block;font-size:11.5px;padding:3px 9px;border-radius:20px;font-weight:600;white-space:nowrap;
}
.st-待审核{background:var(--gray-soft);color:#6B727A}
.st-审核通过{background:var(--blue-soft);color:#1C4F80}
.st-已确认参会{background:var(--green-soft);color:var(--green)}
.st-已签到{background:#E6F6EC;color:#12703F;border:1px solid #A8D8BC}
.st-已取消{background:#F3F3F3;color:#9AA0A6;text-decoration:line-through}
.lv{font-size:12.5px;font-weight:600}
.lv-已规模化应用{color:var(--green)}
.lv-部分环节应用{color:var(--blue)}
.lv-正在试点{color:var(--orange)}
.lv-暂未应用{color:var(--gray)}
.lv-尚不了解{color:#9AA0A6}
.op-btns{display:flex;gap:6px}
.op-btns button{
  border:1px solid var(--line);background:#fff;border-radius:6px;
  padding:4px 8px;font-size:12px;cursor:pointer;color:var(--ink-2);
}
.op-btns button:hover{border-color:var(--red);color:var(--red)}
.table-foot{
  padding:11px 14px;display:flex;align-items:center;justify-content:space-between;
  border-top:1px solid var(--line);background:#FAFBFC;flex-wrap:wrap;gap:10px;
}
.tf-info{font-size:12.5px;color:var(--ink-3)}
.pager{display:flex;gap:5px;align-items:center}
.pager button{
  min-width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:6px;
  cursor:pointer;font-size:12.5px;color:var(--ink-2);padding:0 8px;
}
.pager button:hover{border-color:var(--red);color:var(--red)}
.pager button.active{background:var(--red);border-color:var(--red);color:#fff}
.pager button:disabled{opacity:.4;cursor:not-allowed}
.empty{padding:56px 20px;text-align:center;color:var(--ink-3);font-size:13.5px}
.empty b{display:block;font-size:15px;color:var(--ink-2);margin-bottom:6px}

/* ---------- kpi ---------- */
.kpi-row{
  display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:16px;
}
.kpi{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red)}
.kpi:nth-child(2)::before{background:var(--blue)}
.kpi:nth-child(3)::before{background:var(--green)}
.kpi:nth-child(4)::before{background:var(--gold)}
.kpi:nth-child(5)::before{background:var(--purple)}
.kpi:nth-child(6)::before{background:var(--orange)}
.kpi .k{font-size:12.5px;color:var(--ink-3)}
.kpi .v{font-size:26px;font-weight:800;line-height:1.25;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .v small{font-size:13px;font-weight:600;color:var(--ink-3);margin-left:2px}
.kpi .d{font-size:11.5px;color:var(--ink-3);margin-top:2px}

/* ---------- charts ---------- */
.chart-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.chart-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px 18px;box-shadow:var(--shadow);min-width:0;
}
.span-4{grid-column:span 4}
.span-6{grid-column:span 6}
.span-12{grid-column:span 12}
.chart-card h3{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--ink)}
.bars{display:flex;flex-direction:column;gap:9px}
.bar-item{display:grid;grid-template-columns:132px 1fr 52px;gap:10px;align-items:center;font-size:12.5px}
.bar-item .bl{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-track{height:9px;background:var(--gray-soft);border-radius:6px;overflow:hidden}
.bar-fill{height:100%;border-radius:6px;transition:width .5s ease}
.bar-item .bv{text-align:right;color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}
.ring-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ring-legend{display:flex;flex-direction:column;gap:7px;flex:1;min-width:150px}
.lg-item{display:flex;align-items:center;gap:7px;font-size:12.5px}
.lg-dot{width:9px;height:9px;border-radius:3px;flex:0 0 9px}
.lg-item .lgv{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}
.lg-item .lgp{color:var(--ink-3);font-size:11.5px;width:38px;text-align:right}
.columns{display:flex;align-items:flex-end;gap:6px;height:168px;padding-top:6px}
.col-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.col-bar{width:100%;background:linear-gradient(180deg,#C0392B,#E4705F);border-radius:5px 5px 0 0;min-height:3px;transition:height .5s ease}
.col-item .cl{font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.col-item .cv{font-size:11px;font-weight:700;color:var(--ink-2)}
.none-tip{color:var(--ink-3);font-size:13px;padding:22px 0;text-align:center}

/* ---------- brief ---------- */
.brief{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.brief-hero{
  background:linear-gradient(120deg,#8C171B,#B01F24 60%,#C0392B);
  color:#fff;padding:34px 40px;text-align:center;
}
.brief-hero h2{font-size:27px;font-weight:800;letter-spacing:2px}
.brief-sub{font-size:14px;opacity:.85;margin-top:8px;letter-spacing:1px}
.brief-tags{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.brief-tags span{
  border:1px solid rgba(255,255,255,.4);border-radius:20px;
  padding:4px 14px;font-size:12.5px;background:rgba(255,255,255,.1);
}
/* ---------- 组织机构 ---------- */
.orgs{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border-bottom:1px solid var(--line);
}
.org{background:#fff;padding:14px 18px;display:flex;flex-direction:column;gap:3px}
.org-k{font-size:11.5px;color:var(--ink-3);letter-spacing:1px}
.org-v{font-size:14px;font-weight:700;color:var(--ink)}
.org-hl{background:linear-gradient(180deg,#FDF7F5,#fff)}
.org-hl .org-k{color:var(--red)}
.org-hl .org-v{color:var(--red);font-size:15.5px}
.org-inline{font-size:12px;color:var(--ink-3);margin-top:6px;display:flex;gap:14px;flex-wrap:wrap}
.org-inline b{color:var(--ink-2);font-weight:600}
.org-inline span:not(:last-child){position:relative}
.org-inline span:not(:last-child)::after{content:"";position:absolute;right:-8px;top:3px;bottom:3px;width:1px;background:var(--line)}

/* ---------- 承办方介绍 ---------- */
.org-intro{padding:26px 40px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#FCFAF8,#fff)}
.oi-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.oi-logo{
  width:46px;height:46px;flex:0 0 46px;border-radius:10px;
  background:linear-gradient(135deg,#C0392B,#8C171B);color:#fff;
  font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(140,23,27,.25);
}
.oi-head h4{font-size:16.5px;font-weight:700;color:var(--ink)}
.oi-sub{font-size:12.5px;color:var(--ink-3);margin-top:2px}
.oi-desc{font-size:14px;color:var(--ink-2);line-height:1.85;margin-bottom:16px}
.oi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.oi-item{
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px 15px;
  border-top:2px solid var(--gold);
}
.oi-item h5{font-size:13.5px;font-weight:700;color:var(--red);margin-bottom:5px}
.oi-item p{font-size:12.5px;color:var(--ink-2);line-height:1.75}
.oi-role{
  font-size:13px;color:var(--ink-2);line-height:1.85;background:var(--gold-soft);
  border:1px solid #F0E4C0;border-radius:10px;padding:12px 16px;
}
.oi-role b{color:#8A6D14}

.brief-body{padding:28px 40px 36px;font-size:14.5px;color:var(--ink-2);line-height:1.85}
.brief-body p{margin-bottom:12px}
.brief-body .to{font-weight:700;color:var(--ink)}
.brief-body h3{
  font-size:16px;color:var(--red);font-weight:700;margin:24px 0 10px;
  padding-left:11px;border-left:3px solid var(--red);
}
.brief-body li{margin-bottom:6px}
.brief-body b{color:var(--ink)}
.brief-tb{width:100%;border-collapse:collapse;margin-top:8px;font-size:13.5px}
.brief-tb th{
  background:var(--red-soft);color:var(--red);text-align:left;padding:9px 12px;font-size:12.5px;
}
.brief-tb td{padding:9px 12px;border-bottom:1px solid var(--line)}
.brief-tb td:first-child{font-weight:600;color:var(--ink);white-space:nowrap;width:120px;font-variant-numeric:tabular-nums}
.brief-tb td:nth-child(2){width:130px;font-weight:600;color:var(--ink)}
.note{font-size:12.5px;color:var(--ink-3);margin-top:8px}
.brief-contact{background:linear-gradient(180deg,#FCFAF8,#fff);margin-top:26px;padding:18px 22px;border:1px solid var(--line);border-radius:10px}
.brief-contact h3{margin-top:0}
.sign{text-align:center;margin-top:22px;color:var(--ink);font-weight:600}
.sign-right{text-align:right;margin-top:10px;line-height:1.7;color:var(--ink-2)}

/* ---------- drawer ---------- */
.drawer-mask{position:fixed;inset:0;background:rgba(16,24,40,.35);opacity:0;pointer-events:none;transition:.2s;z-index:60}
.drawer-mask.show{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:520px;max-width:92vw;background:#fff;
  box-shadow:-8px 0 32px rgba(16,24,40,.14);z-index:61;
  transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
}
.drawer.show{transform:translateX(0)}
.drawer-head{
  padding:16px 20px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(120deg,#8C171B,#B01F24);color:#fff;
}
.drawer-head h3{font-size:15.5px;font-weight:700}
.drawer-head .icon-btn{color:rgba(255,255,255,.85);font-size:15px}
.drawer-body{padding:18px 20px 32px;overflow-y:auto;flex:1}
.dw-sec{margin-bottom:18px}
.dw-sec h4{
  font-size:12px;color:var(--red);font-weight:700;letter-spacing:1px;
  margin-bottom:8px;padding-bottom:5px;border-bottom:1px dashed var(--line);
}
.dw-row{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:13.5px;margin-bottom:6px}
.dw-row .k{color:var(--ink-3)}
.dw-row .v{color:var(--ink);word-break:break-all}
.dw-tags{display:flex;flex-wrap:wrap;gap:6px}
.dw-certs{display:flex;flex-wrap:wrap;gap:8px}
.dw-certs img{width:96px;height:70px;object-fit:cover;border:1px solid var(--line);border-radius:6px;cursor:zoom-in}
.dw-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}

/* ---------- toast ---------- */
.toast{
  position:fixed;left:50%;bottom:36px;transform:translate(-50%,20px);
  background:#1C2126;color:#fff;padding:11px 20px;border-radius:8px;font-size:13.5px;
  opacity:0;pointer-events:none;transition:.24s;z-index:90;box-shadow:0 8px 24px rgba(0,0,0,.2);
  max-width:80vw;text-align:center;
}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{background:var(--green)}
.toast.err{background:#B01F24}

/* ---------- print ---------- */
.print-area{display:none}
@media print{
  body{background:#fff}
  .topbar,.tabs,.toolbar,.table-card,.drawer,.drawer-mask,.toast,.kpi-row,.chart-grid,
  .modal,.modal-mask,.mode-tip{display:none!important}
  .wrap{padding:0;max-width:none}
  .view{display:none!important}
  .print-area{display:block;padding:0}
  .print-area h1{font-size:20px;text-align:center;color:#B01F24;margin-bottom:4px}
  .print-area .p-sub{text-align:center;font-size:12px;color:#666;margin-bottom:16px}
  .print-area h2{font-size:14px;margin:14px 0 6px;padding-left:8px;border-left:3px solid #B01F24;color:#B01F24}
  .print-area table{width:100%;border-collapse:collapse;font-size:10.5px}
  .print-area th{background:#FBEDED!important;color:#8C171B!important;border:1px solid #ccc;padding:5px 6px}
  .print-area td{border:1px solid #ddd;padding:5px 6px;vertical-align:top}
  .print-area tr{page-break-inside:avoid}
  .print-area .p-foot{margin-top:14px;font-size:11px;color:#666;text-align:right}
  @page{margin:12mm}
}
@media (max-width:1180px){
  .kpi-row{grid-template-columns:repeat(3,1fr)}
  .span-4,.span-6{grid-column:span 12}
  .col-3{grid-column:span 6}
  .col-4{grid-column:span 6}
  .col-6{grid-column:span 12}
  .oi-grid{grid-template-columns:repeat(2,1fr)}
  .orgs{grid-template-columns:repeat(2,1fr)}
  .entry{grid-template-columns:1fr}
  .entry-right{max-width:420px;margin:0 auto;width:100%}
  .mc-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:720px){
  .topbar{padding:0 14px}
  .topbar-meta{display:none}
  .tabs{padding:0 8px;overflow-x:auto}
  .tabs-inner{width:max-content}
  .wrap{padding:16px 14px 50px}
  .kpi-row{grid-template-columns:repeat(2,1fr)}
  .fs{padding:16px 14px}
  .form-head,.form-foot{padding:14px}
  .search{width:100%}
  .toolbar .tb-left{width:100%}
  .brief-hero{padding:26px 18px}
  .brief-body{padding:20px 18px 28px}
  .entry{padding:24px 18px;gap:20px}
  .brief-hero h2{font-size:21px;letter-spacing:1px}
  .orgs{grid-template-columns:1fr}
  .oi-grid{grid-template-columns:1fr}
  .org-intro{padding:20px 18px}
  .org-inline{gap:10px;font-size:11.5px}
  .foot-btns{width:100%}
  .foot-btns .btn{flex:1}
}

/* ---------- 品牌与科技主视觉 ---------- */
body{
  background-color:#f2f5fa;
  background-image:radial-gradient(ellipse at 10% 0%,rgba(58,107,173,.09),transparent 45%),linear-gradient(rgba(90,121,159,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(90,121,159,.035) 1px,transparent 1px);
  background-size:auto,36px 36px,36px 36px;
}
.topbar{background:linear-gradient(110deg,#09172a,#142b47 70%,#472231);border-bottom:1px solid rgba(220,174,91,.3)}
.brand{min-width:0;gap:16px}
.brand-text{min-width:0}
.brand-logo{display:block;width:60px;height:60px;flex:0 0 60px;object-fit:contain;border-radius:50%;padding:3px;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.07),0 4px 20px rgba(0,0,0,.2)}
.brand-text h1{letter-spacing:1px}
.tabs{border-bottom-color:#dbe3ed;background:rgba(255,255,255,.96)}
.brief{border-radius:20px;border-color:#dbe3ed;box-shadow:0 20px 60px rgba(24,48,82,.08)}
.brief-hero{
  position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 340px;
  align-items:center;gap:36px;min-height:420px;padding:50px 56px;text-align:left;
  background:radial-gradient(ellipse at 92% 20%,#193a5e 0,transparent 55%),radial-gradient(ellipse at 5% 105%,#742538 0,transparent 50%),#0b192d;
}
.brief-hero::before{
  content:"";position:absolute;inset:-70px;z-index:-1;pointer-events:none;opacity:.3;
  background-image:linear-gradient(rgba(132,190,233,.17) 1px,transparent 1px),linear-gradient(90deg,rgba(132,190,233,.17) 1px,transparent 1px);
  background-size:48px 48px;transform:translateY(0);animation:tech-grid-flow 22s linear infinite;
  -webkit-mask-image:linear-gradient(120deg,transparent,#000 75%);mask-image:linear-gradient(120deg,transparent,#000 75%);
}
.brief-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,#dcb66d 30%,#77c9f7 75%,transparent);opacity:.8}
.hero-copy{position:relative;z-index:1;animation:hero-arrive .85s ease-out both}
.hero-eyebrow{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:3px;font-weight:600;color:#c2d5e8;margin-bottom:19px}
.live-dot{height:7px;width:7px;position:relative;display:inline-block;border-radius:50%;background:#f0c57a;box-shadow:0 0 12px #eab55d}
.live-dot::after{content:"";position:absolute;inset:-5px;border:1px solid rgba(240,197,122,.6);border-radius:50%;animation:signal-pulse 3s ease-out infinite}
.brief-hero h2{font-size:46px;line-height:1.28;letter-spacing:3px;font-weight:800}
.brief-hero h2 span{color:#f1ce8f;text-shadow:0 4px 32px rgba(229,178,86,.12)}
.brief-sub{max-width:570px;font-size:14px;letter-spacing:.5px;line-height:1.9;color:#e4ebf3;opacity:1;margin-top:20px}
.hero-lead{font-size:13px;color:#9eb3ca;margin-top:7px;line-height:1.9}
.brief-tags{justify-content:flex-start;gap:8px;margin-top:24px}
.brief-tags span{font-size:11.5px;padding:5px 11px;letter-spacing:.3px;border-color:rgba(156,186,214,.25);background:rgba(144,179,210,.07);color:#d4e0ee}
.tech-visual{width:320px;height:320px;position:relative;justify-self:center;display:flex;align-items:center;justify-content:center}
.tech-visual::before{content:"";position:absolute;inset:5%;background:radial-gradient(circle,rgba(74,169,227,.11),transparent 70%);border-radius:50%}
.tech-orbit{position:absolute;border-radius:50%;border:1px solid rgba(119,201,247,.22);pointer-events:none}
.orbit-outer{inset:16px;animation:orbit-spin 35s linear infinite;border-style:dashed;border-color:rgba(119,201,247,.24)}
.orbit-inner{inset:52px;animation:orbit-spin 24s linear infinite reverse;border-color:rgba(235,192,113,.35)}
.tech-orbit::after{content:"";position:absolute;top:-3px;left:50%;height:6px;width:6px;background:#7ed1f7;border-radius:50%;box-shadow:0 0 15px #69c6f6}
.orbit-inner::after{background:#edc679;box-shadow:0 0 15px #edc679}
.tech-core{position:relative;width:132px;height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle at 35% 25%,#244d70,#112b48 70%);border:1px solid rgba(162,209,241,.4);box-shadow:0 0 35px rgba(83,173,233,.14),inset 0 0 26px rgba(90,173,228,.12)}
.tech-core::after{content:"";position:absolute;inset:-13px;border:1px solid rgba(118,199,241,.2);border-radius:50%;animation:core-breathe 5s ease-in-out infinite}
.tech-core strong{font-size:46px;font-weight:700;line-height:1.15;letter-spacing:3px;color:#eef8ff;text-shadow:0 0 25px rgba(143,219,255,.35)}
.tech-core span{font-size:11px;letter-spacing:4px;color:#a9c8e1;margin-top:7px;padding-left:4px}
.tech-node{position:absolute;width:48px;height:54px;border:1px solid rgba(145,192,225,.3);border-radius:12px;background:#132e4b;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:19px;line-height:1.25;font-weight:600;color:#f0ca84;box-shadow:0 6px 20px rgba(0,0,0,.18);animation:node-float 5s ease-in-out infinite}
.tech-node small{font-size:9px;color:#a5bed4;font-weight:400;margin-top:3px;letter-spacing:1px}
.node-jing{top:0;left:136px}.node-jin{right:0;top:133px;animation-delay:-1.2s}.node-ji{bottom:0;left:136px;animation-delay:-2.4s}.node-lu{left:0;top:133px;animation-delay:-3.6s}
.tech-caption{position:absolute;bottom:-31px;font-size:9px;letter-spacing:3px;color:#86a7c6;text-align:center;white-space:nowrap}
.orgs{gap:0;background:#f9fbfe}
.org{padding:21px 24px;position:relative;background:#fff;border-right:1px solid #e6ecf3}
.org:last-child{border-right:0}.org-hl{background:linear-gradient(135deg,#fff9ee,#fff)}
.org-hl::after{content:"";position:absolute;left:24px;top:0;width:35px;height:3px;background:#cba75f;border-radius:0 0 2px 2px}
.org-k{font-size:10.5px;letter-spacing:2px;color:#8090a3;margin-bottom:4px}
.org-v{font-size:13.5px;color:#233b55;line-height:1.7}
.org-hl .org-v{font-size:15px}
.org-intro{padding:34px 48px;background:linear-gradient(180deg,#f9fbfe,#fff)}
.oi-head{gap:19px;margin-bottom:20px}
.oi-logo{width:88px;height:88px;flex:0 0 88px;object-fit:contain;background:#fff;padding:3px;border-radius:50%;box-shadow:0 5px 22px rgba(31,61,97,.09)}
.oi-head h4{font-size:19px;color:#16334f;letter-spacing:.3px}
.oi-sub{color:#718397;line-height:1.8;margin-top:5px}
.oi-desc{font-size:14px;line-height:2;color:#536478}
.oi-item{position:relative;border-color:#e2e8f0;border-top:2px solid #bd9d63;border-radius:12px;padding:18px 19px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.oi-item h5{color:#294c6c;font-size:14px;margin:0 0 7px}
.oi-item p{color:#6c7d90;line-height:1.85}
.oi-role{background:#f9f6ef;border-color:#ece2cd;border-radius:12px;padding:16px 20px}
.brief-body{padding:34px 48px 40px;line-height:2;color:#526478}
.brief-body h3{color:#173b5b;font-size:18px;border-left-color:#c3a163;margin-top:32px;margin-bottom:14px}
.brief-body .to{color:#223e57;font-size:15px}
.brief-tb{border:1px solid #e1e7ef;border-radius:10px;overflow:hidden;border-collapse:separate;border-spacing:0}
.brief-tb th{background:#edf2f8;color:#294e70;padding:12px 15px}
.brief-tb td{padding:12px 15px;font-size:13px}
.brief-tb tbody tr:nth-child(even){background:#fafbfd}
.brief-tb tbody tr:last-child td{border-bottom:0}
.brief-contact{background:linear-gradient(125deg,#f5f8fc,#fffcf6);border-color:#e0e7ef;border-radius:14px;padding:24px 28px}
.entry{padding:36px 48px;background:radial-gradient(ellipse at 0 100%,#eaf1fa,transparent 60%),#f8fafd;border-top:1px solid #dbe4ef;align-items:start}
.entry-left h3{font-size:20px;color:#173b5b;border-left-color:#c3a163;margin-bottom:18px}
.steps li{border-color:#dfe7f0;border-radius:10px;padding:12px 14px;color:#54687d}
.steps li b{background:linear-gradient(135deg,#315d80,#153958);border-radius:7px}
.entry-right{border-color:#dde5ee;border-radius:16px;padding:22px;box-shadow:0 14px 40px rgba(28,56,90,.07)}
.btn{transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}
.btn:active{transform:translateY(1px)}
button:focus-visible,a:focus-visible{outline:3px solid #74b4dc;outline-offset:3px}
.reveal-block{opacity:0;transform:translate3d(0,18px,0);transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s ease var(--reveal-delay,0ms)}
.reveal-block.is-revealed{opacity:1;transform:none}
@keyframes tech-grid-flow{to{transform:translateY(48px)}}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
@keyframes node-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes core-breathe{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.06);opacity:1}}
@keyframes signal-pulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.65);opacity:0}}
@keyframes hero-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media (hover:hover){
  .oi-item:hover{transform:translateY(-4px);box-shadow:0 12px 25px rgba(31,67,105,.08);border-color:#bccddb}
  .btn-primary:hover{box-shadow:0 5px 15px rgba(176,31,36,.2)}
}
@media (max-width:1180px){
  .brief-hero{grid-template-columns:minmax(0,1fr) 270px;padding:42px 36px;gap:20px}
  .tech-visual{width:270px;height:270px}.node-jing,.node-ji{left:111px}.node-jin,.node-lu{top:108px}
  .brief-hero h2{font-size:40px}.orbit-inner{inset:44px}.orbit-outer{inset:12px}
  .tech-core{width:116px;height:116px}.tech-caption{letter-spacing:2px;font-size:8px;bottom:-27px}
}
@media (max-width:720px){
  .brand{gap:12px}.brand-logo{width:50px;height:50px;flex-basis:50px;padding:2px}
  .brand-text h1{font-size:16px;letter-spacing:.5px}.brand-text p{font-size:10.5px;line-height:1.8}
  .brief{border-radius:16px}.brief-hero{grid-template-columns:1fr;padding:34px 24px 50px;gap:33px;min-height:0;text-align:left}
  .hero-eyebrow{font-size:9px;letter-spacing:2.3px;margin-bottom:15px}.brief-hero h2{font-size:35px;letter-spacing:2px}
  .brief-sub{font-size:12.5px;margin-top:17px;line-height:1.9}.hero-lead{font-size:11.5px}
  .brief-tags{gap:6px;margin-top:19px}.brief-tags span{font-size:10px;padding:4px 9px}
  .tech-visual{width:240px;height:240px}.tech-core{width:106px;height:106px}.tech-core strong{font-size:38px}
  .tech-node{width:42px;height:48px;font-size:17px}.node-jing,.node-ji{left:99px}.node-jin,.node-lu{top:96px}
  .tech-caption{font-size:7px;bottom:-26px}.orbit-outer{inset:9px}.orbit-inner{inset:38px}
  .orgs{grid-template-columns:repeat(2,minmax(0,1fr))}.org{padding:16px;border-bottom:1px solid #e6ecf3}.org:nth-child(2){border-right:0}
  .org-k{font-size:9px;letter-spacing:1.4px}.org-v{font-size:11.5px}.org-hl .org-v{font-size:12.5px}.org-hl::after{left:16px}
  .org-intro{padding:25px 20px}.oi-head{gap:13px}.oi-logo{width:64px;height:64px;flex-basis:64px;padding:2px}
  .oi-head h4{font-size:15px;line-height:1.6}.oi-sub{font-size:11px}.oi-desc{font-size:13px}
  .oi-item{padding:17px}.oi-role{padding:14px;font-size:12px}
  .brief-body{padding:24px 20px 28px;font-size:13px}.brief-body h3{font-size:16px}.brief-body li{margin-bottom:10px}
  .brief-tb th,.brief-tb td{padding:9px 7px;font-size:11px}.brief-tb td:first-child{width:80px}.brief-tb td:nth-child(2){width:75px}
  .brief-contact{padding:18px 15px}.entry{padding:26px 20px;gap:23px}.entry-left h3{font-size:18px}.entry-right{padding:18px}
  .steps li{font-size:12px;line-height:1.9;align-items:flex-start;padding:10px}.steps li b{margin-top:2px}.entry-tip{font-size:11.5px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal-block{opacity:1;transform:none}
}
@media print{.reveal-block{opacity:1!important;transform:none!important}}

/* ---------- 全蓝沉浸式科技主题 ---------- */
:root{--red:#2685f7;--red-dark:#145ccd;--red-soft:#eaf3ff;--gold:#4bceff;--gold-soft:#eaf7ff}
body{background-color:#040d1c;background-image:radial-gradient(ellipse at 10% 0,rgba(18,93,208,.2),transparent 50%),linear-gradient(rgba(64,139,221,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(64,139,221,.035) 1px,transparent 1px)}
.topbar{background:linear-gradient(110deg,#061225,#0b2c53 80%,#0e3c67);border-bottom-color:rgba(64,171,255,.22)}
.topbar-inner{padding:19px 0}.brand-text h1{color:#f1f9ff}.brand-logo{box-shadow:0 0 0 4px rgba(71,180,255,.1),0 0 24px rgba(28,136,243,.18)}
.tabs{background:rgba(6,19,38,.97);border-color:#153554}.tab{color:#91abc9}.tab.active{color:#68d9ff}.tab.active::after{background:#4bcaff;box-shadow:0 0 12px rgba(51,190,255,.7)}
.tab:hover{color:#e3f6ff}
.brief{background:#08182d;border-color:#173d61;box-shadow:0 30px 80px rgba(0,0,0,.22)}
.brief-hero{grid-template-columns:minmax(0,1fr) 420px;gap:25px 45px;padding:58px 58px 0;min-height:560px;background:radial-gradient(ellipse at 76% 42%,rgba(17,103,213,.31),transparent 54%),radial-gradient(ellipse at 0 0,rgba(0,172,232,.13),transparent 56%),linear-gradient(120deg,#071329,#092951)}
.brief-hero::before{opacity:.42;background-size:42px 42px;background-image:linear-gradient(rgba(80,167,250,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(80,167,250,.16) 1px,transparent 1px)}
.brief-hero::after{height:1px;background:linear-gradient(90deg,transparent,#1585ff,#65e5ff,#1585ff,transparent)}
.hero-particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.65}
.hero-copy{padding:10px 0;z-index:2}.hero-eyebrow{color:#76d7ff;letter-spacing:4px;margin-bottom:23px}
.live-dot{background:#67e4ff;box-shadow:0 0 16px #22b5ff}.live-dot::after{border-color:rgba(74,207,255,.6)}
.brief-hero h2{font-size:64px;letter-spacing:5px;line-height:1.22;color:#f0f8ff;text-shadow:0 0 40px rgba(73,155,250,.15)}
.brief-hero h2 span{color:#66ddff;background:linear-gradient(90deg,#e3faff,#59dcff 55%,#418dff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}
.brief-sub{font-size:15px;line-height:2;margin-top:24px;color:#cce4ff;max-width:540px}.hero-lead{font-size:13px;color:#80a5cc;margin-top:6px}
.brief-tags{margin-top:27px;gap:8px}.brief-tags span{color:#9cd8ff;border-color:rgba(63,162,246,.3);background:rgba(20,98,177,.13);border-radius:6px;padding:5px 10px}
.tech-visual{width:400px;height:400px;z-index:1;perspective:700px;filter:drop-shadow(0 0 24px rgba(12,129,255,.12))}
.tech-visual::before{inset:0;background:radial-gradient(circle,rgba(33,149,255,.17),transparent 69%)}
.holo-globe{position:absolute;inset:0;width:100%;height:100%;animation:globe-float 9s ease-in-out infinite}
.orbit-outer{inset:-8px;border-color:rgba(57,169,255,.55);border-style:solid;animation:hologram-orbit 28s linear infinite;box-shadow:0 0 15px rgba(34,128,255,.07)}
.orbit-inner{inset:6px;border-color:rgba(99,222,255,.5);animation:hologram-cross 35s linear infinite}
.tech-orbit::after,.orbit-inner::after{background:#80ecff;box-shadow:0 0 10px #00baff,0 0 22px #228dff}
.tech-core{width:130px;height:130px;border-color:rgba(132,225,255,.6);background:radial-gradient(circle at 35% 25%,rgba(47,124,201,.92),rgba(7,39,86,.96) 75%);box-shadow:0 0 60px rgba(18,139,255,.25),inset 0 0 30px rgba(69,180,255,.22)}
.tech-core strong{color:#e6faff;font-size:49px;text-shadow:0 0 28px rgba(96,218,255,.6)}
.tech-core span{color:#7bceff}.tech-core::after{border-color:rgba(67,195,255,.4)}
.tech-node{width:54px;height:60px;font-size:22px;border-radius:13px;color:#8be8ff;background:linear-gradient(145deg,rgba(19,69,117,.96),rgba(7,30,64,.96));border-color:rgba(76,180,255,.5);box-shadow:0 0 20px rgba(15,113,218,.13),inset 0 0 14px rgba(24,119,218,.1)}
.tech-node small{color:#83b7e3;font-size:10px}.node-jing{top:12px;left:173px}.node-jin{right:3px;top:170px}.node-ji{bottom:12px;left:173px}.node-lu{left:3px;top:170px}
.tech-caption{bottom:-13px;color:#63a4dc;letter-spacing:4px;font-size:8px}
.hero-band{grid-column:1/-1;position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:20px;padding:23px 0 26px;border-top:1px solid rgba(68,157,235,.24)}
.hero-band>div{display:flex;align-items:center;gap:14px}.band-number{font:300 28px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(77,166,240,.62)}
.hero-band p{display:flex;flex-direction:column;gap:3px}.hero-band b{font-size:14px;color:#c5eaff;font-weight:600;letter-spacing:1px}.hero-band small{font-size:10px;color:#6e9ec8;letter-spacing:1px}
.orgs{background:#0b213c}.org{background:rgba(11,35,64,.88);border-color:#163b5e}.org:last-child{border-right:0}.org-hl{background:linear-gradient(130deg,#0d3158,#0a203b)}
.org-k,.org-hl .org-k{color:#6598c6}.org-v,.org-hl .org-v{color:#c0e7ff}.org-hl::after{background:#36bbff;box-shadow:0 0 16px rgba(36,173,255,.6)}
.org-intro{background:linear-gradient(180deg,#0a1d34,#081a30);border-color:#173758;padding:40px 48px}
.oi-head h4{color:#dbf2ff}.oi-sub{color:#7fa5cc}.oi-desc{color:#a3bdd8}.oi-logo{box-shadow:0 0 0 5px rgba(71,172,244,.06),0 0 30px rgba(27,126,230,.12)}
.oi-grid{gap:16px}.oi-item{background:linear-gradient(135deg,#0c2746,#0a203b);border-color:#1b4267;border-top-color:#2597df;overflow:hidden;box-shadow:inset 0 1px 0 rgba(98,191,255,.04)}
.oi-item::after{content:"";position:absolute;right:13px;top:15px;width:5px;height:5px;border-radius:50%;background:#48bdf5;box-shadow:0 0 10px rgba(72,189,245,.5)}
.oi-item h5{color:#83d7ff}.oi-item p{color:#8eafce}.oi-role{background:rgba(18,65,109,.24);border-color:#1a4268;color:#97b7d7}.oi-role b{color:#6ac9ff}
.brief-body{background:linear-gradient(180deg,#08182d,#091c34);color:#a5bfd9}.brief-body h3{color:#8bd9ff;border-left-color:#27a9f4}.brief-body b,.brief-body .to{color:#d7edff}
.brief-tb{border-color:#1c4266}.brief-tb th{color:#8ed8ff;background:#0d2d4c}.brief-tb td{border-color:#173859;color:#9fbdd8}.brief-tb td:first-child,.brief-tb td:nth-child(2){color:#c3e4ff}.brief-tb tbody tr:nth-child(even){background:#0b223e}

/* 手机上将三列表格改为纵向议程卡片，让环节和介绍都有足够宽度。 */
@media (max-width: 600px) {
  .brief-tb { display:block; border:0; overflow:visible; }
  .brief-tb thead { display:none; }
  .brief-tb tbody { display:grid; gap:10px; }
  .brief-tb tbody tr, .brief-tb tbody tr:nth-child(even) {
    display:grid; grid-template-columns:minmax(0,1fr); gap:5px;
    padding:14px 15px; background:#0b2745; border:1px solid #1c4266; border-radius:9px;
  }
  .brief-tb tbody tr td, .brief-tb tbody tr td:first-child, .brief-tb tbody tr td:nth-child(2) {
    display:block; width:auto; min-width:0; padding:0; border:0; white-space:normal;
    font-size:14px; line-height:1.65; overflow-wrap:anywhere;
  }
  .brief-tb tbody tr td:first-child { color:#7fd8ff; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; }
  .brief-tb tbody tr td:nth-child(2) { color:#eef8ff; font-size:15px; font-weight:700; }
  .brief-tb tbody tr td:nth-child(3), .brief-tb tbody tr:not([data-agenda-id]) td:first-child { color:#c3d9ec; font-size:14px; font-weight:400; }
}
.brief .note{color:#6589af}.brief-contact{background:linear-gradient(120deg,#0b2949,#0a203c);border-color:#1b456c}.brief-contact .sign,.brief-contact .sign-right{color:#afcde9}
.entry{background:radial-gradient(ellipse at 10% 100%,rgba(13,96,169,.2),transparent 65%),#081b33;border-color:#1b4368}.entry-left h3{color:#a0e2ff;border-left-color:#25b4ff}.entry-tip{color:#7299be}
.steps li{background:#0c2745;border-color:#1b4266;color:#abcbe7}.steps li b{background:linear-gradient(135deg,#258ce7,#1564bd);box-shadow:0 0 12px rgba(25,126,230,.18)}
.entry-right{background:linear-gradient(145deg,#0d2b4d,#0a203d);border-color:#22517b;box-shadow:0 20px 50px rgba(0,0,0,.15),inset 0 1px 0 rgba(117,211,255,.07)}
.entry .ltab{background:#0b2442;border-color:#244f76;color:#88b6dd}.entry .ltab.active{color:#fff;background:linear-gradient(120deg,#1762d7,#1599df);border-color:#268bea}
.entry .lt-pane input,.entry .mock-form input{background:#081d36;border-color:#234c71;color:#d4ecff}.entry input::placeholder{color:#668caf}.entry .mini-tip,.entry .qr-tip{color:#89b1d4}.entry .qr-tip b{color:#bfe7ff}
.btn-primary{background:linear-gradient(120deg,#2168e8,#159de4);box-shadow:0 4px 18px rgba(19,110,231,.22)}.btn-primary:hover{background:linear-gradient(120deg,#317ef5,#1db7ed)}
.field input:focus,.field select:focus,.field textarea:focus,.lt-pane input:focus{box-shadow:0 0 0 3px rgba(29,137,241,.14)}
.drawer-head{background:linear-gradient(120deg,#114993,#1785c7)}
@keyframes hologram-orbit{from{transform:rotateX(62deg) rotateZ(0)}to{transform:rotateX(62deg) rotateZ(360deg)}}
@keyframes hologram-cross{from{transform:rotateX(-50deg) rotateY(28deg) rotateZ(0)}to{transform:rotateX(-50deg) rotateY(28deg) rotateZ(-360deg)}}
@keyframes globe-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media (hover:hover){.oi-item:hover{border-color:#3185c0;box-shadow:0 12px 32px rgba(0,93,174,.12)}.btn-primary:hover{box-shadow:0 6px 24px rgba(22,134,235,.3)}}
@media (max-width:1180px){
  .brief-hero{grid-template-columns:minmax(0,1fr) 325px;padding:45px 36px 0;gap:22px;min-height:510px}.brief-hero h2{font-size:51px}
  .tech-visual{width:310px;height:310px}.node-jing,.node-ji{left:128px}.node-jin,.node-lu{top:125px}.tech-node{font-size:20px}
  .tech-core{width:110px;height:110px}.tech-core strong{font-size:42px}.hero-band{margin-top:10px;gap:18px}
}
@media (max-width:720px){
  .topbar-inner{padding:17px 0}.brand-text h1{font-size:16px}.brief-hero{grid-template-columns:1fr;padding:34px 24px 0;gap:23px;min-height:0}
  .brief-hero h2{font-size:40px;letter-spacing:3px}.hero-eyebrow{font-size:9px;letter-spacing:2.5px;margin-bottom:18px}.hero-copy{padding:0}
  .brief-sub{font-size:12px;margin-top:18px}.hero-lead{font-size:11.5px}.brief-tags{margin-top:20px;gap:6px}.brief-tags span{font-size:10px;padding:4px 8px}
  .tech-visual{width:250px;height:250px;margin:0 0 11px}.tech-core{width:90px;height:90px}.tech-core strong{font-size:35px}.tech-core span{font-size:9px;letter-spacing:3px}
  .tech-node{width:40px;height:45px;border-radius:10px;font-size:17px}.tech-node small{font-size:8px}.node-jing,.node-ji{left:105px}.node-jin,.node-lu{top:102px}.node-jing{top:7px}.node-ji{bottom:7px}.tech-caption{font-size:6px;letter-spacing:2px;bottom:-17px}
  .hero-band{gap:7px;padding:18px 0 20px;margin-top:3px}.hero-band>div{gap:6px;align-items:flex-start}.band-number{font-size:17px;line-height:1.45}.hero-band b{font-size:11px;letter-spacing:0}.hero-band small{font-size:8px;letter-spacing:0;line-height:1.7}
  .org{border-color:#193c60}.org-intro{padding:28px 20px}.oi-grid{gap:13px}.entry-right{box-shadow:0 12px 30px rgba(0,0,0,.1)}
}
@media (max-width:360px){.brief-hero{padding-left:19px;padding-right:19px}.brief-hero h2{font-size:36px}.band-number{display:none}.hero-band{gap:10px}}
@media (prefers-reduced-motion:reduce){.hero-particles{display:none}.holo-globe,.tech-orbit{animation:none!important}.tech-orbit{transform:none}.reveal-block{opacity:1;transform:none}}

.qr-box iframe.qr-account{width:100%;height:100%;margin:0;background:#fff}
#wechatMobileLogin{display:block;text-align:center;text-decoration:none;padding:14px 18px;margin:8px 0 16px}

.hero-register{margin-top:22px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 8px 28px rgba(20,120,255,.28)}

/* 现场签到与报表 */
.checkin-welcome{padding:26px;margin:0 0 20px;border:1px solid #2767a8;background:#0b2e54;border-radius:14px;color:#d5eaff}.checkin-welcome p{margin:10px 0 16px}
.checkin-card{padding:30px;text-align:center;max-width:680px;margin:0 auto;width:100%}.checkin-card h3{font-size:26px;margin:12px 0}.checkin-card p{line-height:1.9;color:#516278}.checkin-card .checkin-company{font-size:19px;font-weight:700;color:#12375a}.checkin-card .btn{margin-top:20px}.checkin-symbol{margin:auto;width:74px;height:74px;display:grid;place-items:center;border-radius:50%;font-size:40px;color:#168bff;background:#e8f4ff}.checkin-symbol.is-signed{color:#108452;background:#e2f8ee}.checkin-time{font-weight:600}.checkin-actions{margin-top:20px}
.attendance-overview{display:grid;grid-template-columns:300px 1fr;gap:24px;margin:24px 0}.checkin-qr-card{text-align:center;padding:22px}.checkin-qr-card img{display:block;max-width:100%;height:auto;margin:12px auto;background:white}.checkin-qr-card p{font-size:12px;line-height:1.8;margin:12px 0;color:#536b83}.checkin-qr-card a{display:block;font-size:13px;margin-top:14px}.attendance-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.attendance-note{font-size:12px;color:#58718b;line-height:1.8;margin-top:12px}.attendance-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:25px 0 14px}.attendance-toolbar label{font-weight:600}.attendance-toolbar select{padding:8px;margin-left:8px;border:1px solid #c7d6e6;border-radius:7px}.attendance-toolbar span{color:#61758b;font-size:12px}.attendance-group th,.attendance-group td{padding:11px 10px}.attendance-group{min-width:320px}.attendance-group th:first-child{min-width:120px}#attendanceHours .bl{width:150px;flex:0 0 150px}#attendanceHours{max-height:360px;overflow:auto}.span-12{grid-column:span 12}
@media(max-width:760px){.attendance-overview{grid-template-columns:1fr;gap:16px}.attendance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.checkin-qr-card{max-width:360px;width:100%;margin:auto}.checkin-card{padding:24px 18px}.attendance-toolbar .btn{width:100%}#attendanceHours .bl{width:125px;flex-basis:125px}.span-12{grid-column:1 / -1}}

#view-checkin .mine-head h2,#view-attendance .mine-head h2{color:#d8efff}#view-checkin .mine-head p,#view-attendance .mine-head p,.attendance-note,.attendance-toolbar span{color:#9fb9d2}.attendance-toolbar label{color:#d8eafa}.attendance-toolbar select{color:#183149;background:#fff}

.public-event-codes{display:grid;grid-template-columns:minmax(0,420px);justify-content:center;gap:22px;padding:32px 48px;background:#081b33;border-top:1px solid #1b4368}.event-code-card{text-align:center;border:1px solid #22517b;border-radius:15px;padding:24px 18px;background:#0c2948}.event-code-card h3{font-size:21px;color:#b2e7ff}.event-code-card p{color:#95b9db;font-size:12px;line-height:1.8;margin:10px 0 18px}.event-code-card img{display:block;width:240px;max-width:100%;height:auto;background:white;margin:0 auto 18px;border-radius:8px}.event-code-card a{text-decoration:none}.qr-section-label{margin-top:28px;padding-top:22px;border-top:1px solid #dce6ef}#adminRegistrationQr{width:200px;height:200px}.checkin-qr-card h4{margin-top:14px;color:#1a4264;font-size:15px}@media(max-width:600px){.public-event-codes{grid-template-columns:1fr;padding:24px 20px;gap:18px}}

.contact-details{margin:14px 0}.brief-contact .contact-details p{display:flex;align-items:baseline;gap:8px;margin:8px 0;line-height:1.9}.contact-details b{flex:0 0 80px}.contact-details span,.contact-details a{color:#d3eaff}.contact-details a{text-decoration:none;overflow-wrap:anywhere}.contact-details a:hover{text-decoration:underline}

.admin-entry-card{max-width:460px;margin:30px auto;padding:32px;background:#fff;border:1px solid #cbddec;border-radius:16px;box-shadow:0 18px 55px #0002}.admin-entry-card h2{color:#12395a;font-size:24px;margin-bottom:12px}.admin-entry-card p{color:#607b92;font-size:13px;line-height:1.8;margin-bottom:24px}.admin-entry-card label{display:block;color:#2b4a66;font-size:13px;font-weight:600;margin:18px 0 8px}.admin-entry-card input{display:block;width:100%;height:46px;padding:11px 13px;border:1px solid #c2d3e3;border-radius:8px;color:#153b5a;background:#f8fbff;font-size:15px}.admin-entry-card form .btn{margin-top:26px}.admin-entry-card>#btnAdminBack{margin-top:15px}@media(max-width:480px){.admin-entry-card{margin:18px auto;padding:24px 20px}}

.checkin-gate-control{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;background:#0c2b4b;border:1px solid #27577f;border-radius:12px;color:#b9dcf8}.checkin-gate-control span{line-height:1.8;font-size:13px}@media(max-width:480px){.checkin-gate-control{align-items:stretch;flex-direction:column}}

.site-footer{padding:22px 16px 28px;border-top:1px solid #193b5e;text-align:center;color:#90b2d2;font-size:13px;line-height:1.8;letter-spacing:.3px;background:#07182d}@media(max-width:480px){.site-footer{font-size:12px;padding:20px 12px 24px}}@media print{.site-footer{display:none}}

.roster-notice{padding:16px 18px;border:1px solid #b9d9f4;border-radius:10px;background:#edf7ff;color:#1b527c}.roster-notice b{font-size:13px}.roster-notice p{font-size:12px;line-height:1.9;margin-top:6px;color:#416880}

.registration-extra{margin:8px 0 20px;border:1px solid #d5e3ee;border-radius:10px;background:#f8fbfe}.registration-extra summary{cursor:pointer;padding:15px 18px;color:#28608c;font-size:13px;font-weight:600}.registration-extra>.grid{padding:4px 18px 20px}.registration-extra[open] summary{margin-bottom:8px}.roster-notice{margin:18px 0}

.brief-tb .agenda-person{margin:0 0 8px;line-height:1.65}.brief-tb .agenda-person:last-child{margin-bottom:0}
