:root{
  --b:#0b3d91; --a:#e8590c; --g:#f4f6fa; --t:#1d2433; --m:#5b6475; --l:#dde3ec;
  --card:#fff; --shadow:0 8px 28px rgba(11,61,145,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{
  font-family:-apple-system,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  color:var(--t); background:var(--g); font-size:15px; line-height:1.6;
}
a{color:var(--b); text-decoration:none}
a:hover{color:var(--a)}

/* ===== gate ===== */
.gate{
  min-height:100vh; display:flex; flex-direction:column;
  background:
    radial-gradient(1200px 500px at 10% -10%, rgba(11,61,145,.12), transparent 60%),
    radial-gradient(900px 420px at 90% 0%, rgba(232,89,12,.10), transparent 55%),
    linear-gradient(180deg,#f8fafc 0%, #eef2f8 100%);
}
.gate-top{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 32px 10px; gap:16px; flex-wrap:wrap;
}
.gate-brand{display:flex; align-items:center; gap:16px; flex-wrap:wrap}
.gate-logo{height:44px; width:auto; display:block; object-fit:contain}
.gate-sig{font-weight:700; color:var(--b); font-size:18px; line-height:1.35}
.gate-sig small{display:block; font-weight:400; color:var(--m); font-size:14px; margin-top:3px}
.gate-meta{color:var(--m); font-size:14px}
.gate-main{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:28px 24px 56px; gap:32px;
}
.gate-title{text-align:center; margin:0}
.gate-title h1{margin:0 0 10px; font-size:40px; color:var(--b); letter-spacing:.02em}
.gate-title p{margin:0; color:var(--m); font-size:18px}
.gate-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-areas:
    "panorama panorama"
    "process discrete";
  gap:24px; width:100%; max-width:920px;
}
.gate-card.panorama{grid-area:panorama}
.gate-card.process{grid-area:process}
.gate-card.discrete{grid-area:discrete}
@media (max-width:700px){
  .gate-cards{
    grid-template-columns:1fr;
    grid-template-areas:
      "panorama"
      "process"
      "discrete";
    max-width:440px;
  }
  .gate-title h1{font-size:30px}
  .gate-title p{font-size:16px}
  .gate-logo{height:36px}
}
.gate-card{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:16px; min-height:240px; padding:32px 24px;
  background:var(--card); border:1px solid var(--l); border-radius:20px;
  box-shadow:var(--shadow); cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, border-color .18s;
  color:inherit; text-align:center;
}
.gate-card:hover,.gate-card:focus{
  transform:translateY(-4px); border-color:var(--b);
  box-shadow:0 14px 36px rgba(11,61,145,.16); outline:none;
}
.gate-card .icon{
  width:88px; height:88px; border-radius:22px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(145deg, #0b3d91, #1c5bb8); color:#fff;
  font-size:34px; font-weight:700; letter-spacing:-.02em;
}

.gate-card.discrete .icon{background:linear-gradient(145deg,#0b7285,#14919b)}
.gate-card.process .icon{background:linear-gradient(145deg,#e8590c,#f08c00)}
.gate-card h2{margin:0; font-size:28px; color:var(--b)}
.gate-card p{margin:0; color:var(--m); font-size:16px; max-width:420px; line-height:1.55}
.gate-card .ver{display:inline-block; margin-top:2px; font-size:13px; color:#fff;
  background:var(--b); padding:4px 12px; border-radius:12px; font-weight:600}
.gate-card.discrete .ver{background:#0b7285}
.gate-card.process .ver{background:#e8590c}
.gate-foot{text-align:center; color:var(--m); font-size:14px; padding:0 16px 32px}

/* ===== section chrome ===== */
.chrome{
  position:sticky; top:0; z-index:40; background:#fff;
  border-bottom:1px solid var(--l); box-shadow:0 1px 0 rgba(0,0,0,.04);
}
.chrome-row{
  display:flex; align-items:center; gap:12px; padding:8px 16px; flex-wrap:wrap;
}
.sig{font-weight:700; color:var(--b); font-size:14px; line-height:1.25; flex:0 0 auto}
.sig small{display:block; font-weight:400; color:var(--m); font-size:11px; margin-top:2px}
.crumb{
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  font-size:13px; color:var(--m); flex:1; min-width:180px;
}
.crumb a{color:var(--b); font-weight:600}
.crumb a:hover{color:var(--a)}
.crumb .sep{color:#a0a8b8; user-select:none}
.crumb .cur{color:var(--t); font-weight:600}
.actions{display:flex; gap:8px; margin-left:auto; flex:0 0 auto}
.btn{
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--b); background:#fff; color:var(--b);
  border-radius:16px; padding:7px 14px; font-size:13px; font-weight:600;
  cursor:pointer; min-height:36px; text-decoration:none;
}
.btn:hover{background:var(--b); color:#fff}
.btn.ghost{border-color:var(--l); color:var(--m)}
.btn.ghost:hover{border-color:var(--b); color:var(--b); background:#eef3ff}
.subline{
  padding:4px 16px 10px; font-size:12px; color:var(--m);
  background:var(--g); border-top:1px solid var(--l);
}
.frame-wrap{height:calc(100vh - 78px); width:100%; background:#fff}
.frame-wrap iframe{width:100%; height:100%; border:0; display:block; background:#fff}
@media (max-width:640px){
  .chrome-row{padding:8px 10px}
  .actions .btn span.hide-sm{display:none}
  .frame-wrap{height:calc(100vh - 96px)}
}

/* ===== impact guide rail (影响力引导条) ===== */
.impact-rail{
  display:flex; align-items:stretch; gap:10px;
  padding:8px 16px 10px;
  background:linear-gradient(180deg,#f8fafc 0%, #eef3f9 100%);
  border-bottom:1px solid var(--l);
  max-height:92px;
}
.impact-rail-label{
  flex:0 0 auto; display:flex; flex-direction:column; justify-content:center;
  min-width:72px; padding-right:4px;
  font-size:11px; font-weight:800; color:var(--b); letter-spacing:.04em;
  line-height:1.25; border-right:2px solid var(--b);
}
.impact-rail-label span{
  display:block; font-weight:500; color:var(--m); font-size:10px; margin-top:2px;
}
.impact-rail-track{
  flex:1; min-width:0;
  display:flex; gap:8px; overflow-x:auto; overflow-y:hidden;
  scrollbar-width:thin; padding-bottom:2px; -webkit-overflow-scrolling:touch;
}
.impact-rail-track::-webkit-scrollbar{height:4px}
.impact-rail-track::-webkit-scrollbar-thumb{background:#c5d0e0; border-radius:4px}
.impact-tile{
  flex:0 0 auto; width:148px; max-width:160px;
  display:flex; flex-direction:column; gap:3px;
  padding:7px 9px 8px;
  background:#fff; border:1px solid var(--l); border-radius:10px;
  box-shadow:0 2px 8px rgba(11,61,145,.06);
  color:inherit; text-decoration:none; cursor:pointer;
  transition:border-color .15s, transform .15s, box-shadow .15s;
}
.impact-tile:hover,.impact-tile:focus{
  border-color:var(--b); transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(11,61,145,.14); outline:none; color:inherit;
}
.impact-tile .rank{
  display:inline-flex; align-items:center; gap:4px;
  font-size:10px; font-weight:800; letter-spacing:.02em;
}
.impact-tile .rank .lv{
  display:inline-block; padding:0 5px; border-radius:6px; line-height:16px;
  color:#fff; background:var(--b);
}
.impact-tile .rank .lv.mid{background:var(--a)}
.impact-tile .rank .dt{color:var(--m); font-weight:600}
.impact-tile .ttl{
  font-size:12px; font-weight:700; color:var(--t);
  line-height:1.35; max-height:2.7em; overflow:hidden;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
.impact-tile .why{
  font-size:10px; color:var(--m); line-height:1.35;
  max-height:2.7em; overflow:hidden;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
.impact-rail.empty,.impact-rail[hidden]{display:none}
body.chrome-page{
  display:flex; flex-direction:column; height:100%; overflow:hidden;
}
body.chrome-page .chrome{flex:0 0 auto}
body.chrome-page .impact-rail{flex:0 0 auto}
body.chrome-page .frame-wrap{
  flex:1 1 auto; height:auto; min-height:0;
}
@media (max-width:640px){
  .impact-rail{padding:6px 10px 8px; max-height:100px}
  .impact-tile{width:132px}
  .impact-rail-label{min-width:56px; font-size:10px}
}

/* ===== view tabs (全景报告 / 每日更新) — top-left sticky ===== */
.view-tabs{
  display:inline-flex; align-items:center; gap:0; order:0;
  border:1px solid var(--l); border-radius:18px; overflow:hidden;
  background:#f1f4f9; flex:0 0 auto; margin:0 8px 0 0;
}
.view-tab{
  display:inline-flex; align-items:center; justify-content:center;
  padding:7px 16px; min-height:34px; font-size:13px; font-weight:700;
  color:var(--m); background:transparent; border:0; text-decoration:none;
  transition:background .15s, color .15s;
}
.view-tab:hover{color:var(--b); background:#e8eef8}
.view-tab.active{
  background:var(--b); color:#fff;
}
.view-tab.active:hover{background:#0a347c; color:#fff}
.chrome-row .sig{order:1}
.chrome-row .crumb{order:2}
.chrome-row .actions{order:3}
@media (max-width:720px){
  .view-tabs{width:auto; margin:0 6px 0 0}
  .view-tab{padding:6px 12px; font-size:12px}
  .chrome-row .sig small{display:none}
}

/* ===== daily updates feed ===== */
body.updates-page{overflow:auto}
body.updates-page .updates-main{
  flex:1 1 auto; min-height:0; overflow:auto;
  padding:16px 20px 48px; max-width:920px; width:100%; margin:0 auto;
}
.updates-toolbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; flex-wrap:wrap; margin-bottom:14px;
}
.updates-meta{font-size:13px; color:var(--m); font-weight:600}
.filter-chips{display:flex; gap:6px; flex-wrap:wrap}
.chip{
  border:1px solid var(--l); background:#fff; color:var(--m);
  border-radius:14px; padding:5px 12px; font-size:12px; font-weight:700;
  cursor:pointer; min-height:30px;
}
.chip:hover{border-color:var(--b); color:var(--b)}
.chip.active{background:var(--b); border-color:var(--b); color:#fff}
.updates-feed{display:flex; flex-direction:column; gap:12px}
.ucard{
  background:var(--card); border:1px solid var(--l); border-radius:14px;
  padding:14px 16px 12px; box-shadow:0 2px 10px rgba(11,61,145,.05);
}
.ucard-head{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:12px; color:var(--m); margin-bottom:6px;
}
.ucard-head .date{font-weight:800; color:var(--b)}
.ucard-head .org{
  font-weight:600; color:var(--t);
  background:#eef3ff; padding:2px 8px; border-radius:8px;
}
.ucard-head .stage{
  font-weight:600; color:var(--a);
  background:#fff4eb; padding:2px 8px; border-radius:8px;
}
.ucard-head .track{
  margin-left:auto; font-size:11px; font-weight:700; color:#8892a4;
}
.ucard h3{
  margin:0 0 6px; font-size:16px; line-height:1.4; color:var(--t); font-weight:800;
}
.ucard .summary{margin:0 0 8px; font-size:14px; color:var(--t); line-height:1.55}
.ucard .relevance{
  margin:0 0 6px; font-size:13px; color:#0b3d91; line-height:1.5;
  padding:8px 10px; background:#f0f5ff; border-radius:10px; border-left:3px solid var(--b);
}
.ucard .relevance strong{font-weight:800}
.ucard .caveat{
  margin:0 0 8px; font-size:12px; color:#7a5a00; line-height:1.45;
  padding:6px 10px; background:#fff8e8; border-radius:8px;
}
.ucard .sources{
  display:flex; flex-wrap:wrap; gap:6px 10px; margin:0; padding:0; list-style:none;
  font-size:12px;
}
.ucard .sources a{font-weight:600}
.ucard .topics{display:flex; flex-wrap:wrap; gap:4px; margin:8px 0 0}
.ucard .topic{
  font-size:11px; font-weight:700; color:var(--m);
  background:#f1f4f9; padding:2px 7px; border-radius:7px;
}
.updates-empty{
  text-align:center; color:var(--m); padding:48px 16px; font-size:14px;
}


/* secondary tech columns on gate */
.gate-secondary{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%;max-width:920px;margin-top:-8px;
}
.gate-sec{
  display:block;background:#fff;border:1px solid var(--l);border-radius:16px;padding:18px 20px;
  box-shadow:var(--shadow);color:inherit;
}
.gate-sec:hover{border-color:var(--b);color:inherit}
.gate-sec strong{display:block;color:var(--b);font-size:18px;margin-bottom:6px}
.gate-sec span{font-size:14px;color:var(--m);line-height:1.45}
@media (max-width:700px){.gate-secondary{grid-template-columns:1fr;max-width:440px}}

/* ===== panel left rail (全景报告 | 每日更新 + 章节锚点) — panorama shell ===== */
.panel-shell{
  display:flex; align-items:stretch; gap:0;
  flex:1 1 auto; min-height:0; width:100%;
  background:#fff;
}
.panel-rail{
  flex:0 0 148px; width:148px;
  position:relative; z-index:25;
  padding:10px 8px 24px 10px;
  background:linear-gradient(180deg,#f8fafc 0%,#eef3f9 100%);
  border-right:1px solid var(--l);
  overflow-y:auto; overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  box-sizing:border-box;
}
.panel-rail .view-tabs{
  display:flex; flex-direction:column; width:100%;
  border:1px solid var(--l); border-radius:12px; overflow:hidden;
  background:#f1f4f9; margin:0 0 10px; order:unset;
}
.panel-rail .view-tab{
  display:flex; align-items:center; justify-content:center; width:100%;
  padding:10px 8px; min-height:40px; font-size:13px; font-weight:800;
  color:var(--m); background:transparent; border:0;
  border-bottom:1px solid var(--l); text-decoration:none; cursor:pointer;
  text-align:center; line-height:1.25; border-radius:0;
}
.panel-rail .view-tab:last-child{border-bottom:0}
.panel-rail .view-tab:hover{color:var(--b); background:#e8eef8}
.panel-rail .view-tab.active{background:var(--b); color:#fff}
.panel-rail .view-tab.active:hover{background:#0a347c; color:#fff}
.panel-rail .secnav{
  display:flex; flex-direction:column; gap:4px;
  padding:0; margin:0; background:transparent; border:0;
  position:static; overflow:visible; flex-wrap:nowrap;
}
.panel-rail .secnav a{
  display:block; padding:6px 8px; border-radius:8px;
  font-size:11px; line-height:1.3; white-space:normal;
  background:#fff; border:1px solid var(--l); color:var(--t);
  text-decoration:none; font-weight:600;
}
.panel-rail .secnav a:hover,
.panel-rail .secnav a:focus{border-color:var(--b); color:var(--b); outline:none}
.panel-rail .secnav a.active{
  border-color:var(--b); color:var(--b); background:#eef3ff;
}
.panel-main{
  flex:1; min-width:0; min-height:0;
  display:flex; flex-direction:column;
  background:#fff;
}
.panel-main .frame-wrap{
  flex:1 1 auto; height:auto; min-height:0; width:100%;
}
.panel-main .impact-rail{flex:0 0 auto}
.panel-main .updates-main{
  flex:1 1 auto; min-height:0; overflow:auto;
  max-width:920px; width:100%; margin:0; padding:16px 20px 48px;
}
body.chrome-page.with-panel{
  display:flex; flex-direction:column; height:100%; overflow:hidden;
}
body.chrome-page.with-panel .chrome{flex:0 0 auto}
body.chrome-page.with-panel .panel-shell{flex:1 1 auto; min-height:0}
body.chrome-page.with-panel.updates-page{overflow:hidden}
@media (max-width:860px){
  .panel-shell{flex-direction:column}
  .panel-rail{
    width:100%; flex:0 0 auto; min-height:0;
    padding:8px 10px; border-right:0; border-bottom:1px solid var(--l);
    overflow:visible; max-height:none;
  }
  .panel-rail .view-tabs{
    flex-direction:row; width:auto; display:inline-flex; margin-bottom:6px;
  }
  .panel-rail .view-tab{
    width:auto; border-bottom:0; border-right:1px solid var(--l);
    padding:8px 12px; min-height:36px; font-size:12px;
  }
  .panel-rail .view-tab:last-child{border-right:0}
  .panel-rail .secnav{
    flex-direction:row; flex-wrap:nowrap; overflow-x:auto;
    -webkit-overflow-scrolling:touch; gap:4px;
  }
  .panel-rail .secnav a{flex:0 0 auto; white-space:nowrap; font-size:11px}
}
