/* AIS-TIP intelligence reports — rebuilt from the Figma daily/weekly frames. */
html.is-report-mode,
body.is-report-mode { background:#fff; }
body.is-report-mode { overflow-x:hidden; }
.app.is-report-mode {
  width:100%;
  min-width:0;
  height:auto;
  min-height:100vh;
  overflow:visible;
  background:#fff;
}
.app.is-report-mode > .page-background,
.app.is-report-mode > .hero-globe-layer,
.app.is-report-mode > .ais-orbit3d-layer,
.app.is-report-mode > .ais-orbit3d-node-host,
.app.is-report-mode > .hero,
.app.is-report-mode > .search-focus-panel,
.app.is-report-mode > .content,
.app.is-report-mode > .page-footer { display:none !important; }
html.is-report-mode .page-background,
html.is-report-mode .hero-globe-layer,
html.is-report-mode .ais-orbit3d-layer,
html.is-report-mode .ais-orbit3d-node-host,
html.is-report-mode .hero,
html.is-report-mode .search-focus-panel,
html.is-report-mode .content,
html.is-report-mode .page-footer { display:none !important; visibility:hidden !important; opacity:0 !important; pointer-events:none !important; }
.app.is-report-mode .topbar .nav-item[aria-current="page"] { color:rgba(0,0,0,.9) !important; }
.app.is-report-mode .topbar { background:#fff !important; border-bottom-color:#e9ecf1 !important; backdrop-filter:none !important; box-shadow:none !important; }
.report-view[hidden] { display:none !important; }
.report-view {
  --report-sidebar:280px;
  --report-section-gap:32px;
  padding-top:50px;
  min-height:100vh;
  background:#fff;
  color:rgba(0,0,0,.9);
  font-family:var(--font);
}
.report-view button,
.report-view a { font-family:inherit; }
.report-layout {
  display:grid;
  grid-template-columns:var(--report-sidebar) minmax(0,1fr);
  align-items:stretch;
  min-height:calc(100vh - 50px);
}
.report-sidebar {
  position:relative;
  top:auto;
  z-index:2;
  box-sizing:border-box;
  min-width:0;
  height:auto;
  overflow:visible;
  padding:21px 24px 32px;
  border-right:1px solid #e6e9ef;
  background:#fff;
}

.report-sidebar,
.report-archive,
.report-archive-group,
.report-archive-items {
  overflow-x:visible;
  overflow-y:visible;
  scrollbar-width:none;
}
.report-sidebar::-webkit-scrollbar,
.report-archive::-webkit-scrollbar,
.report-archive-group::-webkit-scrollbar,
.report-archive-items::-webkit-scrollbar { display:none; width:0; height:0; }

.report-type-tabs {
  display:grid;
  grid-template-columns:1fr 1fr;
  width:232px;
  height:40px;
  margin:0 0 8px;
  border-radius:6px;
}
.report-type-tab {
  appearance:none;
  -webkit-appearance:none;
  min-width:0;
  height:40px;
  margin:0;
  padding:8px 24px;
  border:1px solid #dcdde1;
  background:#fff;
  color:rgba(0,0,0,.6);
  font-size:16px;
  font-weight:400;
  line-height:24px;
  text-align:center;
  cursor:pointer;
  outline:0;
}
.report-type-tab:first-child { border-radius:6px 0 0 6px; }
.report-type-tab:last-child { border-radius:0 6px 6px 0; }
.report-type-tab:first-child:not(.is-active) { border-right:0; }
.report-type-tab:last-child:not(.is-active) { border-left:0; }
.report-type-tab.is-active {
  position:relative;
  z-index:1;
  border:1px solid #0052d9;
  color:#0052d9;
  background:#fff;
}
.report-type-tab:focus-visible { box-shadow:inset 0 0 0 2px rgba(0,82,217,.16); }
.report-archive { width:232px; }
.report-archive-group { border-bottom:1px solid #e6e9ef; padding:8px 0 0; }
.report-archive-group.is-collapsed { padding-bottom:7px; }
.report-month-button {
  display:grid;
  grid-template-columns:14px 1fr auto;
  align-items:center;
  gap:8px;
  width:100%;
  height:32px;
  padding:0 4px;
  border:0;
  background:#fff;
  color:rgba(0,0,0,.7);
  font-size:12px;
  line-height:20px;
  font-weight:600;
  text-align:left;
  cursor:pointer;
}
.report-month-chevron {
  width:14px;
  height:14px;
  background:url("assets/report/chevron-down.svg") center/14px 14px no-repeat;
  transition:transform 140ms ease;
}
.report-archive-group.is-collapsed .report-month-chevron { transform:rotate(-90deg); }
.report-month-count { color:rgba(0,0,0,.5); font-weight:400; }
.report-archive-items { display:block; padding:2px 0 3px; }
.report-archive-group.is-collapsed .report-archive-items { display:none; }
.report-archive-item {
  display:grid;
  grid-template-columns:minmax(28px,max-content) minmax(0,1fr);
  column-gap:12px;
  align-items:start;
  box-sizing:border-box;
  width:232px;
  height:53px;
  min-height:53px;
  margin:4px 0;
  padding:6px 12px 7px;
  overflow:hidden;
  border:0;
  border-radius:6px;
  background:#fff;
  color:rgba(0,0,0,.5);
  font-size:12px;
  line-height:20px;
  text-align:left;
  cursor:pointer;
}
.report-archive-item:hover { background:#f7f8fb; color:rgba(0,0,0,.7); }
.report-archive-item.is-active {
  background:linear-gradient(90deg,rgba(212,227,252,.42),rgba(227,236,255,.42));
  color:#0052d9;
}
.report-archive-key { font-weight:600; white-space:nowrap; }
.report-view.is-weekly .report-archive-item { grid-template-columns:minmax(40px,max-content) minmax(0,1fr); column-gap:12px; }
.report-view.is-daily .report-archive-item { grid-template-columns:minmax(28px,max-content) minmax(0,1fr); column-gap:12px; }
.report-archive-copy {
  display:-webkit-box;
  overflow:hidden;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  min-width:0;
}
.report-main {
  min-width:0;
  padding:20px 24px 24px;
  background:#fff;
}
.report-main-inner { width:100%; max-width:1112px; margin:0 auto 0 0; }
.report-header {
  position:relative;
  min-height:89px;
  padding-right:250px;
}
.report-title {
  margin:0;
  color:rgba(0,0,0,.9);
  font-size:30px;
  line-height:42px;
  font-weight:600;
  letter-spacing:0;
}
.report-meta-row {
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-height:24px;
  margin-top:7px;
}
.report-meta-label {
  flex:0 0 auto;
  color:rgba(0,0,0,.7);
  font-size:12px;
  line-height:24px;
  font-weight:600;
}
.report-topic-tags { display:flex; flex:1 1 auto; min-width:0; flex-wrap:nowrap; gap:8px; overflow:hidden; }
.report-tag {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 8px;
  border-radius:3px;
  background:#f7f8fb;
  color:rgba(0,0,0,.9);
  font-size:12px;
  line-height:20px;
  white-space:nowrap;
}
.report-actions {
  position:absolute;
  top:9px;
  right:0;
  display:flex;
  align-items:center;
  gap:8px;
  height:24px;
}
.report-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  height:24px;
  padding:2px 8px;
  border:0;
  border-radius:3px;
  background:transparent;
  color:rgba(0,0,0,.9);
  font-size:12px;
  line-height:20px;
  cursor:pointer;
}
.report-action[data-report-download] { padding-right:7px; }
.report-action[data-report-share] { padding-left:7px; }
.report-action:hover { background:#f2f4f8; }
.report-action img { width:14px; height:14px; object-fit:contain; }
.report-action-divider { height:16px; width:1px; background:#e6e9ef; }
.report-generated {
  position:absolute;
  top:51px;
  right:0;
  color:rgba(0,0,0,.5);
  font-size:12px;
  line-height:20px;
  width:201px;
  text-align:right;
  white-space:nowrap;
}
.report-overview-card {
  position:relative;
  display:flex;
  min-height:184px;
  overflow:hidden;
  border:1px solid #e6e9ef;
  border-radius:6px;
  background:#fff;
}
.report-overview-art {
  position:absolute;
  z-index:1;
  top:0;
  right:0;
  height:100%;
  width:auto;
  max-width:none;
  object-fit:contain;
  object-position:right center;
  pointer-events:none;
  user-select:none;
}

.report-overview-content {
  position:relative;
  z-index:2;
  box-sizing:border-box;
  width:min(784px,72%);
  padding:14px 16px 16px;
  transform:translate(-1px,1px);
}
.report-overview-content h2,
.report-section-title {
  margin:0;
  color:rgba(0,0,0,.9);
  font-size:18px;
  line-height:26px;
  font-weight:600;
}
.report-overview-content p {
  margin:10px 0 0;
  color:rgba(0,0,0,.7);
  font-size:14px;
  line-height:22px;
}
.report-section { margin-top:16px; scroll-margin-top:70px; }
.report-view.is-weekly .report-section { margin-top:var(--report-section-gap); }
.report-events-section { margin-top:24px; }
.report-events-section > .report-section-title { margin:0 0 4px 16px; }
.report-section-title { margin-bottom:12px; }
.report-events { display:grid; }
.report-event {
  position:relative;
  display:grid;
  grid-template-columns:27px minmax(0,1fr) 32px auto;
  column-gap:8px;
  row-gap:0;
  box-sizing:border-box;
  min-height:137px;
  padding:13px 0 16px 16px;
  border-bottom:0;
}
.report-event::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:4px;
  height:1px;
  background:#e6e9ef;
}
.report-event-index { color:#0052d9; font-size:14px; line-height:22px; font-weight:600; }
.report-event-body { min-width:0; }
.report-event-title { margin:0; color:rgba(0,0,0,.9); font-size:14px; line-height:22px; font-weight:600; }
.report-event-summary { margin:8px 0 0; color:rgba(0,0,0,.7); font-size:14px; line-height:22px; }
.report-event-sources { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:10px; color:rgba(0,0,0,.5); font-size:12px; line-height:20px; }
.report-source-label { color:rgba(0,0,0,.7); font-weight:600; }
.report-source { text-decoration:underline dotted; text-underline-offset:2px; }
.report-event-badges { grid-column:4; display:flex; gap:8px; align-items:flex-start; padding-left:0; transform:translateY(-1px); }
.report-severity {
  display:inline-flex;
  align-items:center;
  height:24px;
  padding:2px 8px;
  border-radius:3px;
  font-size:12px;
  line-height:20px;
  white-space:nowrap;
}
.report-severity.high { color:#f64041; background:#fce8e8; }
.report-severity.medium { color:#ff7800; background:#ffeddf; }
.report-severity.unknown { color:rgba(0,0,0,.9); background:#f2f4f8; }
.report-week-cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:76px;
  margin-top:16px;
  padding:12px 16px;
  border-radius:6px;
  background:linear-gradient(90deg,#f7f8f9 0%,#fafafb 25%,#fafbfc 50%,#fafbfc 75%,#f6f8fa 100%);
}
.report-week-cta strong { display:block; font-size:14px; line-height:22px; font-weight:600; }
.report-week-cta p { margin:4px 0 0; color:rgba(0,0,0,.7); font-size:14px; line-height:22px; }
.report-primary-button {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  gap:8px;
  height:32px;
  padding:5px 16px;
  border:0;
  border-radius:3px;
  background:#0052d9;
  color:#fff;
  font-size:14px;
  line-height:22px;
  cursor:pointer;
}
.report-primary-button:hover { background:#266fe8; }
.report-primary-button img { width:16px; height:16px; object-fit:contain; }
.report-pager {
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:24px;
  margin-top:20px;
}
.report-pager-button {
  display:inline-flex;
  align-items:center;
  gap:4px;
  height:24px;
  padding:2px 8px;
  border:0;
  border-radius:3px;
  background:transparent;
  color:rgba(0,0,0,.7);
  font-size:12px;
  line-height:20px;
  cursor:pointer;
}
.report-pager-button:hover:not(:disabled) { background:#f2f4f8; }
.report-pager-button:disabled { color:rgba(0,0,0,.3); cursor:default; }
.report-pager-icon { width:14px; height:14px; object-fit:contain; }
.report-pager-button:disabled .report-pager-icon { opacity:.3; }

/* Weekly frame */
.report-view.is-weekly .report-main { padding:20px 0 22px 24px; }
.report-weekly-grid {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,882px) 200px;
  gap:56px;
  width:1138px;
  max-width:100%;
}
.report-weekly-content { min-width:0; }
.report-weekly-content .report-main-inner { width:882px; max-width:100%; margin:0; }
/* Figma weekly body is inset 16px from the 882px report column; the header/summary are not. */
.report-view.is-weekly .report-weekly-content > .report-main-inner > .report-section {
  width:869px;
  max-width:calc(100% - 13px);
  margin-left:16px;
}
.report-view.is-weekly .report-weekly-content > .report-main-inner > .report-pager {
  width:100%;
  max-width:100%;
}
.report-weekly-summary {
  box-sizing:border-box;
  min-height:max-content;
  height:auto;
  padding:14px 16px 16px;
  border:2px solid #fff;
  border-radius:6px;
  background:linear-gradient(180deg,#f3f5f7 0%,#fff 100%);
  box-shadow:4px 4px 16px rgba(55,98,170,.08);
  scroll-margin-top:70px;
}
.report-weekly-summary .report-section-title { margin-bottom:10px; }
.report-weekly-summary p { margin:0; color:rgba(0,0,0,.9); font-size:14px; line-height:22px; }
.report-toc {
  position:relative;
  top:auto;
  align-self:start;
  width:200px;
  margin-top:92px;
  padding:0;
}
.report-toc h2 { margin:0 0 12px; font-size:14px; line-height:22px; font-weight:600; }
.report-toc nav { display:grid; }
.report-toc a {
  position:relative;
  display:block;
  min-height:28px;
  padding:4px 0 4px 16px;
  color:rgba(0,0,0,.9);
  font-size:12px;
  line-height:20px;
}
.report-toc a::before { content:""; position:absolute; left:0; top:0; bottom:0; width:1px; background:#e7e8eb; }
.report-toc a.is-active { color:#0052d9; }
.report-toc a.is-active::after { content:""; position:absolute; left:0; top:6px; width:1px; height:16px; background:#0052d9; }
.report-week-events { position:relative; }
.report-week-events::before {
  content:"";
  position:absolute;
  left:52px;
  top:20px;
  bottom:13px;
  width:1px;
  border-radius:1px;
  background:linear-gradient(180deg,#f9fafb 0%,#f5f6f8 8%,#f5f6f8 92%,#f9fafb 100%);
}
.report-week-event {
  position:relative;
  display:grid;
  grid-template-columns:69px minmax(0,1fr) 32px max-content;
  min-height:60px;
  padding:8px 0;
}
.report-week-date { color:rgba(0,0,0,.7); font-size:12px; line-height:20px; font-weight:600; }
.report-week-dot {
  position:absolute;
  left:49px;
  top:12px;
  width:6px;
  height:6px;
  border:0;
  border-radius:50%;
  background:#246ee8;
  box-shadow:none;
}
.report-week-event-copy { min-width:0; padding-right:0; overflow-wrap:anywhere; }
.report-week-event-copy h3 { margin:0; font-size:14px; line-height:22px; font-weight:600; }
.report-week-event-copy p { margin:2px 0 0; color:rgba(0,0,0,.5); font-size:14px; line-height:22px; }
.report-week-ref { color:#0052d9; font-size:12px; }
.report-week-event > .report-severity { grid-column:4; align-self:start; justify-self:end; margin-top:2px; }
.report-ioc-table { border-top:1px solid #e6e9ef; }
.report-ioc-row {
  display:grid;
  grid-template-columns:145px minmax(0,1fr);
  gap:18px;
  padding:20px 0;
  border-bottom:1px solid #e6e9ef;
}
.report-ioc-name { font-size:14px; line-height:22px; font-weight:600; }
.report-ioc-value { font-size:14px; line-height:22px; overflow-wrap:anywhere; }
.report-paragraph { margin:0; color:rgba(0,0,0,.9); font-size:14px; line-height:22px; }
.report-bullet-list { display:grid; gap:12px; margin:0; padding-left:20px; font-size:14px; line-height:22px; }
.report-section-title-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.report-section-title-row .report-section-title { margin:0; }
.report-copy { flex:0 0 auto; }
.report-defense-box {
  padding:16px;
  border-radius:6px;
  background:linear-gradient(90deg,#f7f8f9 0%,#fafafb 25%,#fafbfc 50%,#fafbfc 75%,#f6f8fa 100%);
}
.report-defense-box ol { margin:0; padding-left:22px; font-size:14px; line-height:22px; }
.report-reference-list { display:grid; gap:8px; font-size:12px; line-height:20px; }
.report-reference-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; min-width:0; }
.report-reference-link { color:rgba(0,0,0,.7); text-decoration-line:underline; text-decoration-style:dotted; text-underline-offset:2px; overflow-wrap:anywhere; }
.report-reference-meta { color:rgba(0,0,0,.5); text-decoration:none; white-space:normal; }

/* Major weekly report sections keep one 32px vertical rhythm across current and historical issues. */
.report-view.is-weekly #weekly-section-2,
.report-view.is-weekly #weekly-section-3,
.report-view.is-weekly #weekly-section-4,
.report-view.is-weekly #weekly-section-5,
.report-view.is-weekly #weekly-section-6,
.report-view.is-weekly #weekly-section-7 { margin-top:var(--report-section-gap); }

/* Chinese pixel geometry is only valid at the 1440–1442px Figma baseline.
   At other widths the content must use natural height so Chinese does not inherit
   English-sized blank space after the canvas becomes wider or narrower. */
@media (min-width:1440px) and (max-width:1442px) {
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-2 > .report-section-title { margin-bottom:14px; }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-week-event {
    box-sizing:border-box;
    height:60px;
    min-height:60px;
    padding:4px 0;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-week-event:last-child {
    height:50px;
    min-height:50px;
    padding-bottom:0;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-week-event > .report-severity { margin-top:11px; }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-week-date { padding-top:1px; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-3 > .report-section-title { margin-bottom:14px; }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-ioc-row { padding:19px 0; }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-ioc-row:nth-child(2) { padding-bottom:20px; }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-ioc-row:last-child { padding-bottom:18px; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-4 > .report-section-title { margin-bottom:14px; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-4 > .report-paragraph { min-height:131px; height:131px; overflow:visible; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-5 > .report-section-title { margin-bottom:16px; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-5 .report-bullet-list { gap:16px; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-5 .report-bullet-list li { min-height:43px; height:43px; overflow:visible; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-6 .report-section-title-row { margin-bottom:16px; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-6 .report-defense-box { box-sizing:border-box; min-height:229px; height:229px; overflow:visible; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-7 > .report-section-title { margin-bottom:16px; }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-7 + .report-pager { margin-top:32px; }
}

@media (max-width: 1359px) {
  .report-view { --report-sidebar:280px; }
  .report-sidebar { padding-left:24px; padding-right:24px; }
  .report-type-tabs,.report-archive,.report-archive-item { width:232px; }
  .report-main { padding-left:24px; padding-right:24px; }
  .report-main-inner { max-width:none; }
  .report-header { padding-right:220px; }
  .report-view.is-weekly .report-main { padding-left:24px; padding-right:24px; }
  .report-weekly-grid { width:100%; display:block; }
  .report-weekly-content .report-main-inner { width:100%; }
  .report-view.is-weekly .report-weekly-content > .report-main-inner > .report-section { width:auto; max-width:none; margin-left:16px; margin-right:0; }
  .report-view.is-weekly .report-weekly-content > .report-main-inner > .report-pager { width:100%; max-width:none; }
  .report-toc { display:none; }
}

@media (max-width: 980px) {
  .report-layout { display:block; }
  .report-sidebar {
    position:relative;
    top:auto;
    width:100%;
    height:auto;
    overflow:visible;
    padding:14px 16px;
    border-right:0;
    border-bottom:1px solid #e6e9ef;
  }
  .report-type-tabs { width:232px; }
  .report-archive { display:flex; flex-wrap:wrap; gap:10px; width:100%; overflow:visible; padding-bottom:2px; }
  .report-archive-group { flex:0 0 260px; border:1px solid #e6e9ef; border-radius:6px; padding:8px; }
  .report-archive-item { width:100%; }
  .report-archive-group:not(:first-child) { flex-basis:190px; }
  .report-archive-group:not(:first-child) .report-archive-items { display:none; }
  .report-main,.report-view.is-weekly .report-main { padding:20px 16px 30px; }
  .report-main-inner { max-width:none; }
  .report-weekly-grid { display:block; }
  .report-view.is-weekly .report-weekly-content > .report-main-inner > .report-section { margin-left:0; }
  .report-toc { display:none; }
}

@media (max-width: 700px) {
  .report-overview-card::after {
    content:"";
    position:absolute;
    z-index:1;
    inset:0;
    background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 62%,rgba(255,255,255,.3) 100%);
    pointer-events:none;
  }
  .report-overview-content { z-index:2; }

  .report-sidebar { padding:12px; }
  .report-type-tabs { width:100%; }
  .report-archive-group:first-child { max-height:none; overflow:visible; }
  .report-main,.report-view.is-weekly .report-main { padding:16px 12px 24px; }
  .report-header { display:flex; flex-direction:column; min-height:0; padding-right:0; }
  .report-title { font-size:24px; line-height:34px; }
  .report-meta-row { margin-top:4px; }
  .report-actions { position:static; order:3; align-self:flex-start; margin-top:8px; }
  .report-generated { position:static; order:4; width:auto; text-align:left; margin-top:4px; white-space:normal; }
  .report-overview-card { min-height:auto; }
  .report-overview-content { width:100%; padding:14px; padding-right:14px; }
  .report-overview-art { height:100%; min-height:100%; right:0; opacity:.72; }
  .report-event { grid-template-columns:28px minmax(0,1fr); min-height:auto; padding-left:0; column-gap:8px; }
  .report-event-badges { grid-column:2; padding:4px 0 0; }
  .report-week-cta { flex-direction:column; align-items:flex-start; }
  .report-primary-button { width:100%; justify-content:center; }
  .report-week-event { grid-template-columns:58px minmax(0,1fr); padding-bottom:40px; }
  .report-week-events::before { left:39px; }
  .report-week-dot { left:36px; }
  .report-week-event > .report-severity { grid-column:auto; position:absolute; left:58px; bottom:8px; }
  .report-ioc-row { grid-template-columns:1fr; gap:4px; padding:14px 0; }
  .report-section-title-row { align-items:flex-start; }
}

@media print {
  .topbar,.report-sidebar,.report-actions,.report-toc,.report-pager,.report-week-cta,.home-message { display:none !important; }
  .report-view { padding-top:0; }
  .report-layout,.report-weekly-grid { display:block; }
  .report-main,.report-view.is-weekly .report-main { padding:0; }
  .report-header { padding-right:0; }
  .report-generated { position:static; margin-top:4px; }
  .report-main-inner,.report-weekly-content .report-main-inner { width:100%; max-width:none; }
}

/* Weekly section anchors use the page scroller on desktop; the 24px offset complements the fixed 50px top bar. */
.report-view.is-weekly [id^="weekly-section-"] { scroll-margin-top:24px; }

/* Desktop report interaction model.
   Weekly follows a Tencent-Cloud-like document model: the browser page scrolls,
   the archive and Contents are viewport-fixed, and the only visible scrollbar is the page scrollbar.
   Daily keeps its compact fixed-shell behavior. */
@media screen and (min-width: 981px) {
  html.is-report-mode,
  body.is-report-mode {
    min-height:100%;
    height:auto;
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }

  .app.is-report-mode {
    min-height:100vh;
    height:auto;
    overflow:visible;
  }

  /* Daily: fixed left archive + independently scrollable content, scrollbar hidden. */
  .report-view.is-daily {
    box-sizing:border-box;
    height:100vh;
    min-height:0;
    overflow:hidden;
  }
  .report-view.is-daily .report-layout {
    height:100%;
    min-height:0;
    overflow:hidden;
  }
  .report-view.is-daily .report-sidebar {
    height:100%;
    min-height:0;
    overflow:hidden !important;
  }
  .report-view.is-daily .report-main {
    box-sizing:border-box;
    height:100%;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .report-view.is-daily .report-main::-webkit-scrollbar {
    display:none;
    width:0;
    height:0;
  }

  /* Weekly: one browser/page scrollbar. The archive and Contents are viewport-fixed;
     wheel input over any column still scrolls the page underneath. */
  .report-view.is-weekly {
    height:auto;
    min-height:100vh;
    overflow:visible;
  }
  .report-view.is-weekly .report-layout {
    display:block;
    min-height:calc(100vh - 50px);
    height:auto;
    overflow:visible;
  }
  .report-view.is-weekly .report-sidebar {
    position:fixed;
    z-index:4;
    top:50px;
    bottom:0;
    left:0;
    width:var(--report-sidebar);
    height:auto;
    min-height:0;
    overflow:hidden !important;
    background:#fff;
  }
  .report-view.is-weekly .report-main {
    box-sizing:border-box;
    width:calc(100% - var(--report-sidebar));
    height:auto;
    min-height:calc(100vh - 50px);
    margin-left:var(--report-sidebar);
    overflow:visible;
  }
  .report-view.is-weekly .report-weekly-grid {
    height:auto;
    min-height:0;
    max-height:none;
    overflow:visible;
    align-items:start;
  }
  .report-view.is-weekly .report-weekly-content {
    height:auto;
    min-height:0;
    overflow:visible;
  }
}

/* Figma desktop width: reserve the fixed Contents rail at the right edge.
   Its initial y is 162px and it stays at that exact viewport position while the page scrolls. */
@media screen and (min-width: 1440px) {
  .report-weekly-grid {
    display:grid;
    grid-template-columns:minmax(0,882px) 200px;
    gap:56px;
  }

  .report-view.is-weekly .report-toc {
    position:fixed;
    z-index:4;
    top:162px;
    right:0;
    left:auto;
    width:200px;
    margin-top:0;
    background:#fff;
  }
}

@media screen and (min-width: 1360px) and (max-width: 1439px) {
  .report-view.is-weekly .report-weekly-grid {
    display:block;
    width:100%;
  }
  .report-view.is-weekly .report-toc { display:none; }
}

/* V14 responsive report model -------------------------------------------------
   Mobile/tablet is content-first: the archive becomes a compact issue picker,
   the desktop Contents rail becomes a collapsible in-flow menu, and the report
   body keeps one readable column. Desktop fixed-rail behavior above 980px is
   intentionally untouched. */
.report-mobile-archive-toggle,
.report-mobile-toc { display:none; }

@media screen and (max-width:980px) {
  html.is-report-mode,
  body.is-report-mode {
    min-height:100%;
    height:auto;
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }

  .app.is-report-mode,
  .report-view,
  .report-layout {
    height:auto;
    min-height:100vh;
    overflow:visible;
  }

  .report-layout { display:block; }

  /* Compact report switcher + current issue picker. Do not dump the complete
     archive above the article on first load. */
  .report-sidebar {
    position:relative !important;
    inset:auto !important;
    z-index:2;
    width:100% !important;
    height:auto !important;
    padding:12px 16px 14px;
    overflow:visible !important;
    border-right:0;
    border-bottom:1px solid #e6e9ef;
    background:#fff;
  }
  .report-type-tabs {
    width:100%;
    max-width:none;
    height:40px;
    margin:0 0 10px;
  }
  .report-type-tab { height:40px; }

  .report-mobile-archive-toggle {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) 16px;
    align-items:center;
    column-gap:10px;
    box-sizing:border-box;
    width:100%;
    min-height:44px;
    padding:8px 12px;
    border:1px solid #e6e9ef;
    border-radius:6px;
    background:#fff;
    color:rgba(0,0,0,.7);
    text-align:left;
    cursor:pointer;
  }
  .report-mobile-archive-key {
    color:#0052d9;
    font-size:12px;
    line-height:20px;
    font-weight:600;
    white-space:nowrap;
  }
  .report-mobile-archive-copy {
    min-width:0;
    overflow:hidden;
    color:rgba(0,0,0,.7);
    font-size:13px;
    line-height:20px;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .report-mobile-archive-chevron {
    width:16px;
    height:16px;
    background:url("assets/report/chevron-down.svg") center/14px 14px no-repeat;
    transition:transform 140ms ease;
  }
  .report-sidebar.is-mobile-archive-open .report-mobile-archive-chevron { transform:rotate(180deg); }

  .report-archive {
    display:none;
    width:100%;
    padding:8px 0 0;
  }
  .report-sidebar.is-mobile-archive-open .report-archive { display:block; }
  .report-archive-group,
  .report-archive-group:not(:first-child) {
    display:block;
    width:100%;
    padding:6px 0 0;
    border:0;
    border-bottom:1px solid #e6e9ef;
    border-radius:0;
  }
  .report-archive-group:last-child { border-bottom:0; }
  .report-archive-group:not(:first-child) .report-archive-items { display:block; }
  .report-archive-group.is-collapsed .report-archive-items { display:none; }
  .report-archive-item,
  .report-type-tabs,
  .report-archive { max-width:none; }
  .report-archive-item {
    width:100%;
    min-height:48px;
    height:auto;
    margin:2px 0;
    padding:5px 10px 6px;
  }

  /* The article is the primary mobile task. */
  .report-main,
  .report-view.is-weekly .report-main {
    width:100% !important;
    min-width:0;
    height:auto !important;
    min-height:0;
    margin-left:0 !important;
    padding:22px 20px 36px;
    overflow:visible !important;
  }
  .report-main-inner,
  .report-weekly-content .report-main-inner { width:100%; max-width:none; }
  .report-weekly-grid { display:block !important; width:100%; max-width:none; }
  .report-weekly-content { width:100%; min-width:0; }
  .report-view.is-weekly .report-weekly-content > .report-main-inner > .report-section {
    width:100%;
    max-width:none;
    margin-left:0;
    margin-right:0;
  }
  .report-toc { display:none !important; }

  /* Mobile Contents keeps section navigation without occupying a fixed rail. */
  .report-mobile-toc {
    display:block;
    box-sizing:border-box;
    margin:0 0 20px;
    border:1px solid #e6e9ef;
    border-radius:6px;
    background:#fff;
  }
  .report-mobile-toc summary {
    position:relative;
    padding:10px 36px 10px 12px;
    color:rgba(0,0,0,.9);
    font-size:14px;
    line-height:22px;
    font-weight:600;
    cursor:pointer;
    list-style:none;
  }
  .report-mobile-toc summary::-webkit-details-marker { display:none; }
  .report-mobile-toc summary::after {
    content:"";
    position:absolute;
    right:12px;
    top:13px;
    width:16px;
    height:16px;
    background:url("assets/report/chevron-down.svg") center/14px 14px no-repeat;
    transition:transform 140ms ease;
  }
  .report-mobile-toc[open] summary::after { transform:rotate(180deg); }
  .report-mobile-toc nav {
    display:grid;
    padding:0 12px 10px;
    border-top:1px solid #f2f4f8;
  }
  .report-mobile-toc a {
    position:relative;
    display:block;
    min-height:34px;
    padding:7px 8px 7px 12px;
    color:rgba(0,0,0,.7);
    font-size:13px;
    line-height:20px;
  }
  .report-mobile-toc a.is-active { color:#0052d9; }
  .report-mobile-toc a.is-active::before {
    content:"";
    position:absolute;
    left:0;
    top:9px;
    width:2px;
    height:16px;
    border-radius:1px;
    background:#0052d9;
  }

  .report-header {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    min-height:0;
    padding-right:0;
    margin-bottom:18px;
  }
  .report-title {
    font-size:26px;
    line-height:36px;
    overflow-wrap:anywhere;
  }
  .report-meta-row {
    flex-wrap:wrap;
    align-items:flex-start;
    gap:6px 8px;
    margin-top:7px;
  }
  .report-actions {
    position:static;
    display:flex;
    order:3;
    align-items:center;
    width:max-content;
    max-width:100%;
    height:auto;
    margin-top:10px;
  }
  .report-generated {
    position:static;
    order:4;
    width:auto;
    margin-top:6px;
    text-align:left;
    white-space:normal;
  }

  .report-weekly-summary,
  .report-overview-card { margin-top:0; }
  .report-weekly-summary { padding:14px 16px 16px; }
  .report-weekly-summary p,
  .report-paragraph,
  .report-bullet-list,
  .report-ioc-name,
  .report-ioc-value,
  .report-defense-box ol { font-size:14px; line-height:22px; }

  /* Mobile weekly timeline: keep date, dot and content readable; put severity
     below the copy instead of consuming the narrow right edge. */
  .report-week-events::before { left:48px; top:17px; bottom:18px; }
  .report-week-event {
    grid-template-columns:48px minmax(0,1fr);
    column-gap:14px;
    min-height:0;
    padding:8px 0 18px;
  }
  .report-week-date { padding-top:0; }
  .report-week-dot { left:45px; top:13px; }
  .report-week-event-copy { grid-column:2; }
  .report-week-event > .report-severity {
    position:static;
    grid-column:2;
    justify-self:start;
    margin:8px 0 0;
  }

  .report-ioc-row { grid-template-columns:1fr; gap:5px; padding:14px 0; }
  .report-defense-box { padding:14px 14px 14px 12px; }
  .report-reference-row { gap:4px 8px; }
  .report-reference-link { max-width:100%; }
  .report-pager { margin-top:24px; }

  /* Daily content also becomes one clean column. */
  .report-overview-content {
    width:100%;
    padding:14px 16px 16px;
    transform:none;
  }
  .report-overview-art { opacity:.42; }
  .report-events-section > .report-section-title { margin-left:0; }
  .report-event {
    grid-template-columns:28px minmax(0,1fr);
    column-gap:10px;
    min-height:0;
    padding:14px 0 18px;
  }
  .report-event-badges {
    grid-column:2;
    flex-wrap:wrap;
    padding-top:8px;
    transform:none;
  }
  .report-event::after { bottom:0; }
  .report-week-cta { margin-top:20px; }
}

@media screen and (max-width:700px) {
  .report-sidebar { padding:10px 12px 12px; }
  .report-main,
  .report-view.is-weekly .report-main { padding:20px 16px 32px; }
  .report-title { font-size:24px; line-height:34px; }
  .report-section-title,
  .report-overview-content h2 { font-size:18px; line-height:26px; }
  .report-view.is-weekly #weekly-section-2,
  .report-view.is-weekly #weekly-section-3,
  .report-view.is-weekly #weekly-section-4,
  .report-view.is-weekly #weekly-section-5,
  .report-view.is-weekly #weekly-section-6,
  .report-view.is-weekly #weekly-section-7 { margin-top:28px; }
  .report-week-cta { flex-direction:column; align-items:stretch; }
  .report-primary-button { width:100%; justify-content:center; }
}

@media screen and (max-width:480px) {
  .report-sidebar { padding:10px 12px 12px; }
  .report-type-tab { padding-left:12px; padding-right:12px; font-size:15px; }
  .report-mobile-archive-toggle { min-height:42px; padding:7px 10px; }
  .report-main,
  .report-view.is-weekly .report-main { padding:18px 16px 30px; }
  .report-title { font-size:23px; line-height:32px; }
  .report-actions { flex-wrap:wrap; gap:4px; }
  .report-action { padding-left:6px; padding-right:6px; }
  .report-topic-tags { gap:6px; }
  .report-tag { padding-left:7px; padding-right:7px; }
  .report-weekly-summary { padding:13px 14px 15px; }
  .report-week-events::before { left:44px; }
  .report-week-event { grid-template-columns:44px minmax(0,1fr); column-gap:12px; }
  .report-week-dot { left:41px; }
  .report-week-event-copy h3,
  .report-event-title { font-size:14px; line-height:22px; }
  .report-week-event-copy p,
  .report-event-summary { font-size:14px; line-height:22px; }
  .report-defense-box { padding:12px; }
  .report-defense-box ol { padding-left:20px; }
  .report-reference-row { display:block; }
  .report-reference-meta { display:block; margin-top:2px; }
  .report-pager-button { padding-left:4px; padding-right:4px; }
}

/* Release V15: preserve section navigation across medium desktop/tablet-landscape
   widths where the 200px fixed Contents rail no longer fits beside the 280px archive.
   The compact in-flow Contents control bridges 981–1439px; >=1440 keeps the Figma rail,
   <=980 keeps the mobile content-first control already defined above. */
@media screen and (min-width:981px) and (max-width:1439px) {
  .report-view.is-weekly .report-mobile-toc {
    display:block;
    box-sizing:border-box;
    width:100%;
    margin:0 0 20px;
    border:1px solid #e6e9ef;
    border-radius:6px;
    background:#fff;
  }
  .report-view.is-weekly .report-mobile-toc summary {
    position:relative;
    padding:9px 38px 9px 12px;
    color:rgba(0,0,0,.9);
    font-size:14px;
    line-height:22px;
    font-weight:600;
    cursor:pointer;
    list-style:none;
  }
  .report-view.is-weekly .report-mobile-toc summary::-webkit-details-marker { display:none; }
  .report-view.is-weekly .report-mobile-toc summary::after {
    content:"";
    position:absolute;
    right:12px;
    top:12px;
    width:16px;
    height:16px;
    background:url("assets/report/chevron-down.svg") center/14px 14px no-repeat;
    transition:transform 140ms ease;
  }
  .report-view.is-weekly .report-mobile-toc[open] summary::after { transform:rotate(180deg); }
  .report-view.is-weekly .report-mobile-toc nav {
    display:grid;
    padding:0 12px 10px;
    border-top:1px solid #f2f4f8;
  }
  .report-view.is-weekly .report-mobile-toc a {
    position:relative;
    display:block;
    min-height:34px;
    padding:7px 8px 7px 12px;
    color:rgba(0,0,0,.7);
    font-size:13px;
    line-height:20px;
  }
  .report-view.is-weekly .report-mobile-toc a.is-active { color:#0052d9; }
  .report-view.is-weekly .report-mobile-toc a.is-active::before {
    content:"";
    position:absolute;
    left:0;
    top:9px;
    width:2px;
    height:16px;
    border-radius:1px;
    background:#0052d9;
  }
}

/* V16 desktop archive usability ------------------------------------------------
   The desktop archive rail stays fixed, but its content can exceed the viewport.
   Give the rail its own hidden-scrollbar scroller so wheel/trackpad input over the
   archive scrolls the archive itself instead of making lower months unreachable. */
@media screen and (min-width:981px) {
  .report-view.is-daily .report-sidebar,
  .report-view.is-weekly .report-sidebar {
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior-y:contain;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .report-view.is-daily .report-sidebar::-webkit-scrollbar,
  .report-view.is-weekly .report-sidebar::-webkit-scrollbar {
    display:none;
    width:0;
    height:0;
  }
}

/* V16 accordion invariant: one expanded month at most.  Keep this rule more
   specific than earlier responsive declarations that exposed non-first groups. */
.report-sidebar .report-archive-group.is-collapsed .report-archive-items {
  display:none !important;
}


/* V17 wide-screen fluid layout + single-line topic tags ----------------------
   1440–1442px remains the Figma desktop baseline. Above that width the report
   expands into the available canvas instead of leaving a large unused right area. */
@media screen and (min-width:1443px) {
  .report-view.is-daily .report-main-inner {
    width:100%;
    max-width:none;
  }

  .report-view.is-weekly .report-weekly-grid {
    box-sizing:border-box;
    width:100%;
    max-width:none;
    grid-template-columns:minmax(0,1fr) 200px;
    gap:56px;
  }
  .report-view.is-weekly .report-weekly-content,
  .report-view.is-weekly .report-weekly-content .report-main-inner {
    width:100%;
    max-width:none;
  }
  .report-view.is-weekly .report-weekly-content > .report-main-inner > .report-section {
    width:calc(100% - 13px);
    max-width:none;
  }
}

/* Topic chips are always a single line. JavaScript progressively removes chips
   from the end when the available width cannot fit them as whole pills. */
.report-meta-row { min-width:0; }
.report-topic-tags { white-space:nowrap; }
.report-topic-tags .report-tag { flex:0 0 auto; }

/* V17: topic rows never wrap; trailing pills are removed by fitTopicTags() when space is tight. */
.report-view.is-daily .report-meta-row { flex-wrap:nowrap; }

/* V18 wide daily overview -----------------------------------------------------
   The Figma 1442px baseline keeps its original 784px copy block. On wider
   canvases the card grows, so the copy should consume that new space as well,
   while the right-hand illustration keeps a protected visual zone. The source
   art renders at ~346px wide when the card is 184px tall. Keeping the wrapper
   328px clear of the card edge preserves the Figma geometry. The exported art
   contains a soft/transparent-looking lead-in before the visible shield, so the
   normal 16px content padding still keeps a generous visual safety gap while
   allowing the copy to use all newly available wide-screen space. */
@media screen and (min-width:1443px) {
  .report-view.is-daily .report-overview-content {
    box-sizing:border-box;
    width:calc(100% - 328px);
    max-width:none;
    padding-right:16px;
  }
}


/* V19 — locale-safe vertical rhythm -----------------------------------------
   Chinese copy is denser than English. Outside the exact Figma baseline, all
   report blocks use intrinsic height and the same semantic title/content gaps.
   This prevents fixed Chinese heights from producing large blank bands on wide
   screens and keeps language switching from changing the component rhythm. */
@media screen and (min-width:981px) and (max-width:1439px),
       screen and (min-width:1443px) {
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-2 > .report-section-title,
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-3 > .report-section-title,
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-4 > .report-section-title,
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-5 > .report-section-title,
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-7 > .report-section-title {
    margin-bottom:12px;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-6 .report-section-title-row {
    margin-bottom:12px;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-week-event,
  html[data-locale="zh-CN"] .report-view.is-weekly .report-week-event:last-child {
    height:auto;
    min-height:60px;
    padding:8px 0;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-week-event > .report-severity {
    margin-top:2px;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-week-date {
    padding-top:0;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly .report-ioc-row,
  html[data-locale="zh-CN"] .report-view.is-weekly .report-ioc-row:nth-child(2),
  html[data-locale="zh-CN"] .report-view.is-weekly .report-ioc-row:last-child {
    padding:20px 0;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-4 > .report-paragraph,
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-5 .report-bullet-list li,
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-6 .report-defense-box {
    height:auto;
    min-height:0;
    overflow:visible;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-5 .report-bullet-list {
    gap:12px;
  }
  html[data-locale="zh-CN"] .report-view.is-weekly #weekly-section-7 + .report-pager {
    margin-top:20px;
  }
}

/* Wide daily Chinese rows also size to their actual copy. The 137px row is a
   1442px Figma baseline measurement, not a permanent minimum on wider canvases. */
@media screen and (min-width:1443px) {
  html[data-locale="zh-CN"] .report-view.is-daily .report-event {
    min-height:0;
  }
}

/* In report mode the Home item is intentionally not selected. It should still
   behave like every other navigation item on hover/focus. */
.app.is-report-mode .topbar .nav-item[aria-current="page"]:hover,
.app.is-report-mode .topbar .nav-item[aria-current="page"]:focus-visible {
  color:#0052d9 !important;
}
.app.is-report-mode .topbar .nav-item[aria-current="page"]:not(:hover):not(:focus-visible) > img.nav-icon {
  filter:brightness(0) saturate(100%) !important;
}
.app.is-report-mode .topbar .nav-item[aria-current="page"]:hover > img.nav-icon,
.app.is-report-mode .topbar .nav-item[aria-current="page"]:focus-visible > img.nav-icon {
  filter:brightness(0) saturate(100%) invert(22%) sepia(89%) saturate(2628%) hue-rotate(208deg) brightness(86%) contrast(103%) !important;
}
