#model-section,
#reports-section {
  position: relative;
  z-index: var(--as-z-raised);
  --reports-font-mono: var(--ds-font-mono-ui);
  --reports-font-serif: var(--ds-font-serif-ui);
  --reports-font-sans: var(--as-font-sans-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
  --reports-slide-btn-rgb: var(--color-accent);
  --reports-slide-btn-text: rgba(var(--color-highlight), .82);
  --reports-slide-btn-text-strong: rgba(var(--color-highlight), .94);
  --reports-slide-btn-border: rgba(var(--reports-slide-btn-rgb), .24);
  --reports-slide-btn-border-hover: rgba(var(--reports-slide-btn-rgb), .36);
  --reports-slide-btn-bg-top: rgba(var(--reports-slide-btn-rgb), .12);
  --reports-slide-btn-bg-bottom: rgba(var(--reports-slide-btn-rgb), .06);
  --reports-slide-btn-bg-top-hover: rgba(var(--reports-slide-btn-rgb), .2);
  --reports-slide-btn-bg-bottom-hover: rgba(var(--reports-slide-btn-rgb), .1);
  --reports-slide-btn-bg-top-active: rgba(var(--reports-slide-btn-rgb), .24);
  --reports-slide-btn-bg-bottom-active: rgba(var(--reports-slide-btn-rgb), .12);
  --reports-panel-radius: 0.5rem;
  --reports-panel-padding: 0.9rem;
  --reports-stack-gap: 0.9rem;
  --reports-panel-shadow: var(--ds-card-shadow-soft);
  --reports-panel-shadow-hover: var(--ds-card-shadow-rich);
  --reports-border-soft: rgba(var(--color-accent), 0.12);
  --reports-border-base: rgba(var(--color-accent), 0.2);
  --reports-border-strong: rgba(var(--color-accent), 0.35);
  --reports-bg-base: rgba(var(--color-accent), 0.1);
  --reports-bg-hover: rgba(var(--color-accent), 0.2);
  --reports-bg-active: rgba(var(--color-accent), 0.28);
  --reports-text-muted: rgba(var(--color-sub-text), 0.56);
  --reports-text-bright: rgba(var(--color-highlight), 0.78);
  --reports-control-font-size: calc(0.8rem + var(--reports-font-step));
  --reports-control-letter-spacing: var(--ds-letter-ui-normal);
  --reports-palette-1-rgb: 157, 172, 194;
  --reports-palette-2-rgb: 241, 190, 82;
  --reports-palette-3-rgb: 92, 145, 255;
  --reports-palette-4-rgb: 78, 203, 185;
  --reports-palette-5-rgb: 255, 126, 92;
  --reports-palette-6-rgb: 114, 209, 117;
  --reports-palette-7-rgb: 216, 133, 98;
  --reports-palette-8-rgb: 255, 111, 181;
  --reports-palette-9-rgb: 96, 207, 255;
  --reports-palette-10-rgb: 208, 218, 108;
}

#reports-section {
  padding-bottom: 1.2rem;
}

#reports-section .is-palette-1 { --reports-palette-rgb: var(--reports-palette-1-rgb); }
#reports-section .is-palette-2 { --reports-palette-rgb: var(--reports-palette-2-rgb); }
#reports-section .is-palette-3 { --reports-palette-rgb: var(--reports-palette-3-rgb); }
#reports-section .is-palette-4 { --reports-palette-rgb: var(--reports-palette-4-rgb); }
#reports-section .is-palette-5 { --reports-palette-rgb: var(--reports-palette-5-rgb); }
#reports-section .is-palette-6 { --reports-palette-rgb: var(--reports-palette-6-rgb); }
#reports-section .is-palette-7 { --reports-palette-rgb: var(--reports-palette-7-rgb); }
#reports-section .is-palette-8 { --reports-palette-rgb: var(--reports-palette-8-rgb); }
#reports-section .is-palette-9 { --reports-palette-rgb: var(--reports-palette-9-rgb); }
#reports-section .is-palette-10 { --reports-palette-rgb: var(--reports-palette-10-rgb); }

.reports-progress-chip,
.report-metric-card.reports-progress-card,
.reports-domain-item {
  --reports-palette-rgb: var(--reports-palette-1-rgb);
}

#reports-primary-actions .btn,
#reports-table-filters .btn {
  --bs-btn-color: var(--reports-text-muted);
  --bs-btn-bg: var(--reports-bg-base);
  --bs-btn-border-color: var(--reports-border-base);
  --bs-btn-hover-color: var(--reports-text-bright);
  --bs-btn-hover-bg: var(--reports-bg-hover);
  --bs-btn-hover-border-color: var(--reports-border-strong);
  --bs-btn-active-color: rgba(var(--color-highlight), 0.9);
  --bs-btn-active-bg: var(--reports-bg-active);
  --bs-btn-active-border-color: rgba(var(--color-accent), 0.45);
  --bs-btn-focus-shadow-rgb: var(--color-accent);
  --bs-btn-border-radius: var(--ds-radius-sm);
  font-family: var(--reports-font-serif);
  font-size: var(--reports-control-font-size);
  letter-spacing: var(--ds-letter-ui-tight);
  text-transform: none;
  transition: border-color var(--ds-transition-standard), background var(--ds-transition-standard), color var(--ds-transition-standard), box-shadow var(--ds-transition-standard);
}

#reports-table-filters .reports-filter-btn:not([data-filter="all"]) {
  --bs-btn-color: rgba(var(--reports-palette-rgb), 0.98);
  --bs-btn-border-color: rgba(var(--reports-palette-rgb), 0.5);
  --bs-btn-bg: rgba(var(--reports-palette-rgb), 0.12);
  --bs-btn-hover-color: rgba(var(--reports-palette-rgb), 0.98);
  --bs-btn-hover-border-color: rgba(var(--reports-palette-rgb), 0.64);
  --bs-btn-hover-bg: rgba(var(--reports-palette-rgb), 0.18);
  --bs-btn-active-color: rgba(var(--reports-palette-rgb), 0.98);
  --bs-btn-active-border-color: rgba(var(--reports-palette-rgb), 0.72);
  --bs-btn-active-bg: rgba(var(--reports-palette-rgb), 0.22);
  --bs-btn-focus-shadow-rgb: var(--reports-palette-rgb);
  background-image: linear-gradient(180deg, rgba(var(--reports-palette-rgb), 0.18), rgba(var(--reports-palette-rgb), 0.08));
  box-shadow: inset 0 0 0 1px #ffffff08, 0 0 0.55rem rgba(var(--reports-palette-rgb), 0.08);
}

#reports-table-filters .reports-filter-btn.active:not([data-filter="all"]) {
  background-image: linear-gradient(180deg, rgba(var(--reports-palette-rgb), 0.3), rgba(var(--reports-palette-rgb), 0.16));
  box-shadow: inset 0 0 0 1px #ffffff0a, 0 0 0 1px rgba(var(--reports-palette-rgb), 0.22), 0 0 0.75rem rgba(var(--reports-palette-rgb), 0.14);
}

.reports-overview,
.reports-tab-content {
  border: 1px solid var(--reports-border-soft);
  border-radius: var(--reports-panel-radius);
  background: var(--as-card-bg);
  padding: var(--reports-panel-padding);
  box-shadow: var(--reports-panel-shadow);
}

.reports-feature-card {
  min-height: 8.6rem;
  cursor: pointer;
  border: 1px solid rgba(var(--color-accent), 0.18);
  background: linear-gradient(180deg, rgba(var(--color-accent), 0.12), rgba(var(--color-accent), 0.05));
  transition: border-color var(--ds-transition-snappy), box-shadow var(--ds-transition-snappy), transform var(--ds-transition-snappy), background-color var(--ds-transition-snappy);
}

.reports-feature-card:hover {
  border-color: rgba(var(--color-accent), 0.36);
  box-shadow: var(--reports-panel-shadow-hover);
  transform: translateY(-1px);
}

.reports-feature-card:focus-visible {
  outline: 2px solid rgba(var(--color-accent), 0.36);
  outline-offset: 2px;
}

.reports-feature-description {
  color: rgba(var(--color-sub-text), 0.78);
  font-size: 0.875rem;
  line-height: 1.6;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  text-wrap: pretty;
}

.reports-stack-section + .reports-stack-section {
  margin-top: var(--reports-stack-gap);
  padding-top: var(--reports-stack-gap);
  border-top: 1px solid rgba(var(--color-accent), 0.08);
}

.reports-subheading {
  margin: 0 0 0.65rem;
  color: var(--as-topbar-link-color);
  font-size: var(--ds-card-title, 1.0rem);
  letter-spacing: var(--ds-letter-ui-heading);
  font-family: var(--ds-font-serif-display);
  font-weight: 400;
}

.reports-ai-notice,
.reports-level-legend {
  color: var(--as-topbar-link-color);
  font-size: 0.875rem;
  line-height: 1.6;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.reports-ai-notice {
  margin: 0 0 0.85rem;
}

.reports-level-legend-prefix {
  color: rgba(var(--color-heading), 0.56);
  letter-spacing: 0.08em;
}

.reports-level-legend-description {
  color: rgba(var(--color-sub-text), 0.72);
}

.reports-progress-chip {
  border: 1px solid rgba(var(--reports-palette-rgb), 0.42);
  background: linear-gradient(180deg, rgba(var(--reports-palette-rgb), 0.22), rgba(var(--reports-palette-rgb), 0.14));
  color: rgba(var(--reports-palette-rgb), 0.98);
  box-shadow: inset 0 0 0 1px #ffffff08;
}

#reports-primary-actions .reports-status-cta {
  min-width: clamp(10.6rem, 24vw, 15.4rem);
  min-height: 3.3rem;
  padding: 0.72rem 1rem;
  border-color: var(--reports-border-strong);
  border-width: 1px;
  border-radius: var(--ds-radius-md);
  background: rgba(var(--color-accent), 0.2);
  color: rgba(var(--color-highlight), 0.92);
  font-family: var(--reports-font-serif);
  font-size: clamp(calc(0.79rem + var(--reports-font-step)), calc(2.35vmin + var(--reports-font-step)), calc(0.94rem + var(--reports-font-step)));
  letter-spacing: var(--ds-letter-ui-tight);
  box-shadow: 0 0 0.8rem rgba(var(--color-accent), 0.12);
}

.report-metric-card {
  background: var(--as-card-bg);
  border: 1px solid var(--ds-card-border);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--reports-panel-shadow);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.report-metric-label {
  color: rgba(var(--color-heading), 0.5);
  font-size: calc(0.8rem + var(--reports-font-step));
  letter-spacing: var(--ds-letter-ui-tight);
  font-family: var(--reports-font-serif);
}

.report-metric-value {
  margin-top: 0.22rem;
  color: rgba(var(--color-heading), 0.92);
  font-size: calc(0.88rem + var(--reports-font-step));
  letter-spacing: 0.03em;
  font-family: var(--reports-font-serif);
}

.report-metric-card.reports-progress-card {
  border-color: rgba(var(--reports-palette-rgb), 0.34);
  background: linear-gradient(180deg, rgba(var(--reports-palette-rgb), 0.1), rgba(var(--reports-palette-rgb), 0.04));
}

.report-metric-card.reports-progress-card .report-metric-label {
  color: rgba(var(--reports-palette-rgb), 0.78);
}

.report-metric-card.reports-progress-card .report-metric-value {
  color: rgba(var(--reports-palette-rgb), 0.98);
}

.reports-domain-item[role="button"] {
  cursor: pointer;
}

.reports-domain-item {
  min-height: 3.45rem;
  padding: 0;
  border: 1px solid rgba(var(--reports-palette-rgb), 0.28);
  background: linear-gradient(180deg, rgba(var(--reports-palette-rgb), 0.09), rgba(var(--reports-palette-rgb), 0.04));
  color: rgba(var(--color-heading), 0.82);
  box-shadow: 0 2px 8px #0000002e;
  font-family: var(--reports-font-serif);
  font-size: var(--reports-control-font-size);
  letter-spacing: var(--reports-control-letter-spacing);
  transition: border-color var(--ds-transition-snappy), background-color var(--ds-transition-snappy), box-shadow var(--ds-transition-snappy), transform var(--ds-transition-snappy), opacity var(--ds-transition-snappy);
}

.reports-domain-item:hover {
  border-color: rgba(var(--reports-palette-rgb), 0.54);
  color: var(--reports-text-bright);
  background: linear-gradient(180deg, rgba(var(--reports-palette-rgb), 0.16), rgba(var(--reports-palette-rgb), 0.08));
  box-shadow: var(--reports-panel-shadow-hover);
  transform: translateY(-1px);
}

.reports-domain-item:focus-visible {
  outline: 2px solid rgba(var(--reports-palette-rgb), 0.38);
  outline-offset: 1px;
}

.reports-domain-item.is-filter-muted {
  opacity: 0.34;
  filter: saturate(0.75);
}

.reports-domain-item-id {
  color: rgba(var(--color-sub-text), 0.85);
  letter-spacing: 0.08em;
  font-size: calc(0.8rem + var(--reports-font-step));
}

.reports-domain-item-status {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: left;
  line-height: 1.2;
  padding-inline: 0.55em;
  font-family: var(--reports-font-mono);
  font-size: calc(0.8rem + var(--reports-font-step));
  letter-spacing: 0.04em;
}

.reports-domain-item-name {
  color: rgba(var(--color-heading), 0.82);
  font-size: calc(0.8rem + var(--reports-font-step));
  font-family: var(--ds-font-serif-display);
  line-height: 1.2;
  letter-spacing: 0.03em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-wrap: pretty;
}

/* RESEARCH の領域の並べ方（#63-5）。決まった列数の枠に入れず、枚数と幅に合わせて列を詰める。
   1 枚だけでも右が大きく空かず、枚数が増えたら列が増え、狭い幅では折り返す。 */
.reports-domain-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
  gap: 0.5rem;
}

.reports-domain-grid > .col {
  min-width: 0;
}

.reports-domain-grid > .reports-domain-empty {
  grid-column: 1 / -1;
}

.reports-domain-empty {
  border: 1px dashed rgba(var(--color-accent), 0.2);
  border-radius: 0.4rem;
  padding: 0.8rem;
  background: rgba(var(--color-accent), 0.04);
}

.reports-slide-btn {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  z-index: var(--as-z-content-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(5.4rem, 24vw, 6.5rem);
  min-height: 2.25rem;
  padding: .38rem .82rem;
  border: 1px solid var(--reports-slide-btn-border);
  border-radius: 999px;
  background: linear-gradient(180deg, var(--reports-slide-btn-bg-top), var(--reports-slide-btn-bg-bottom));
  color: var(--reports-slide-btn-text);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 .4rem 1rem rgba(0, 0, 0, .22), 0 0 .85rem rgba(var(--reports-slide-btn-rgb), .12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-family: var(--reports-font-sans);
  font-size: clamp(.78rem, 2.1vmin, .86rem);
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.1;
  white-space: nowrap;
  text-shadow: 0 0 10px rgba(var(--reports-slide-btn-rgb), .1);
  cursor: pointer;
  touch-action: manipulation;
  transition: border-color var(--ds-transition-standard), background var(--ds-transition-standard), color var(--ds-transition-standard), box-shadow var(--ds-transition-standard), transform var(--ds-transition-snappy);
}

.reports-slide-btn:hover,
.reports-slide-btn:focus-visible {
  border-color: var(--reports-slide-btn-border-hover);
  background: linear-gradient(180deg, var(--reports-slide-btn-bg-top-hover), var(--reports-slide-btn-bg-bottom-hover));
  color: var(--reports-slide-btn-text-strong);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 .55rem 1.1rem rgba(0, 0, 0, .24), 0 0 1rem rgba(var(--reports-slide-btn-rgb), .18);
  transform: translateY(-1px);
}

.reports-slide-btn:focus-visible {
  outline: 2px solid rgba(var(--reports-slide-btn-rgb), .5);
  outline-offset: 2px;
}

.reports-slide-btn:active {
  background: linear-gradient(180deg, var(--reports-slide-btn-bg-top-active), var(--reports-slide-btn-bg-bottom-active));
  transform: translateY(0);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 .28rem .7rem rgba(0, 0, 0, .22), 0 0 .85rem rgba(var(--reports-slide-btn-rgb), .12);
}

.reports-slide-btn:disabled {
  opacity: .48;
  transform: none;
  box-shadow: none;
}

.reports-domain-item .reports-slide-btn {
  --reports-slide-btn-rgb: var(--reports-palette-rgb);
}

.reports-md-modal-content {
  background: var(--as-offcanvas-bg);
  color: rgba(var(--color-heading), 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 1.25rem 3rem #00000073;
}

.reports-md-modal-content .modal-header {
  border-color: rgba(var(--color-accent), 0.12);
  background: rgba(var(--color-accent), 0.06);
}

/* 長い題に押されて × が画面の外へ出ないよう、題は折り返せるようにする */
.reports-md-modal-content .modal-title {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* 狭い幅では、PDF・Wiki・× を題の下の行へ回す */
@media (max-width: 575.98px) {
  .reports-md-modal-content .modal-header {
    flex-wrap: wrap;
    row-gap: 0.5rem;
  }
}

#reports-md-meta {
  color: rgba(var(--color-sub-text), 0.62) !important;
  font-family: var(--reports-font-mono);
  font-size: calc(0.8rem + var(--reports-font-step));
  letter-spacing: 0.05em;
}

.reports-md-content .md-article {
  background: rgba(var(--color-accent), 0.04);
  border: 1px solid rgba(var(--color-accent), 0.1);
  border-radius: 0.34rem;
  padding: 1rem 1.1rem 1.35rem;
}

@media (max-width: 760px) {
  .reports-domain-item {
    min-height: 3.9rem;
  }

  .reports-subheading,
  .reports-ai-notice {
    font-size: calc(0.8rem + var(--reports-font-step));
  }

  #reports-primary-actions .reports-status-cta {
    width: 100%;
    min-width: 0;
    min-height: 2.9rem;
  }

  .report-metric-value {
    font-size: calc(0.84rem + var(--reports-font-step));
  }

  .reports-md-content .md-article {
    padding: 0.9rem 0.75rem 1.1rem;
  }
}
