:root {
  color-scheme: light;
  --review-ink: #103f2c;
  --review-paper: #f6f5ef;
  --review-edge: #d8e1da;
}

* { box-sizing: border-box; }

html,
body {
  width: 100%;
  min-width: 1440px;
  height: 100%;
  margin: 0;
  overflow: hidden;
}

body {
  color: var(--review-ink);
  background:
    radial-gradient(circle at 18% -10%, rgba(86, 126, 107, 0.12), transparent 32%),
    linear-gradient(145deg, #eceee8 0%, #f7f5ef 42%, #eef2ed 100%);
}

.lifecycle-review-shell {
  width: 100%;
  height: 100vh;
  padding: 18px;
}

.lifecycle-review-map {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(32, 79, 60, 0.18);
  border-radius: 18px;
  background: rgba(250, 250, 247, 0.95);
  box-shadow: 0 24px 70px rgba(28, 56, 45, 0.13);
}

.lifecycle-review-map .project-lifecycle-rule-head {
  min-height: 104px;
  padding: 22px 32px 18px;
}

.lifecycle-review-map .project-lifecycle-rule-head h1 {
  margin: 2px 0 5px;
  font-family: "STZhongsong", "Songti SC", serif;
  font-size: 28px;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.lifecycle-review-map .project-lifecycle-rule-toolbar {
  min-height: 54px;
  padding-inline: 30px;
}

.lifecycle-review-map .project-lifecycle-rule-workspace {
  min-height: 0;
  height: auto;
  border-radius: 0 0 17px 17px;
}

.lifecycle-review-map .project-lifecycle-rule-chart,
.lifecycle-review-map .project-lifecycle-rule-svg {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.lifecycle-review-map .project-lifecycle-rule-chart {
  cursor: grab;
}

.lifecycle-review-map .project-lifecycle-rule-chart:active {
  cursor: grabbing;
}

.lifecycle-review-map .project-lifecycle-rule-detail {
  max-width: min(620px, calc(100% - 32px));
}

@media (prefers-reduced-motion: reduce) {
  .lifecycle-review-map *,
  .lifecycle-review-map *::before,
  .lifecycle-review-map *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
