
:root {
      --bg: #f4f1ea;
      --panel: rgba(255,255,255,0.92);
      --panel-strong: #ffffff;
      --ink: #1f2933;
      --muted: #66717c;
      --line: #d6d6ce;
      --blue: #295d8a;
      --blue-soft: #dbe8f2;
      --teal: #4f8b7a;
      --amber: #b98332;
      --rose: #b35c5c;
      --sand: #e9deca;
      --shadow: 0 18px 50px rgba(27, 39, 48, 0.10);
      --radius: 24px;
    }
    * { box-sizing: border-box; }
    body {
      margin: 0;
      color: var(--ink);
      font-family: "Avenir Next", "Gill Sans", "Trebuchet MS", sans-serif;
      background:
        radial-gradient(circle at top left, rgba(41, 93, 138, 0.08), transparent 32%),
        radial-gradient(circle at top right, rgba(185, 131, 50, 0.10), transparent 25%),
        linear-gradient(180deg, #f8f6f1 0%, var(--bg) 100%);
    }
    .shell {
      max-width: 1440px;
      margin: 0 auto;
      padding: 28px 20px 80px;
    }
    .hero {
      display: grid;
      grid-template-columns: 1.2fr 0.8fr;
      gap: 20px;
      margin-bottom: 22px;
    }
    .hero-card, .panel {
      background: var(--panel);
      backdrop-filter: blur(16px);
      border: 1px solid rgba(255,255,255,0.6);
      box-shadow: var(--shadow);
      border-radius: var(--radius);
    }
    .hero-card {
      padding: 28px 28px 24px;
      position: relative;
      overflow: hidden;
    }
    .hero-card::after {
      content: "";
      position: absolute;
      inset: auto -40px -50px auto;
      width: 220px;
      height: 220px;
      border-radius: 50%;
      background: linear-gradient(135deg, rgba(41,93,138,0.14), rgba(79,139,122,0.08));
    }
    .eyebrow {
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: 0.16em;
      color: var(--blue);
      font-weight: 700;
      margin-bottom: 14px;
    }
    h1 {
      margin: 0 0 12px;
      font-family: "Iowan Old Style", "Georgia", serif;
      font-size: clamp(30px, 4vw, 46px);
      line-height: 1.04;
      font-weight: 600;
    }
    .hero-copy {
      max-width: 720px;
      color: var(--muted);
      font-size: 17px;
      line-height: 1.55;
      margin: 0 0 18px;
    }
    .hero-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .pill {
      border-radius: 999px;
      padding: 10px 14px;
      background: rgba(41, 93, 138, 0.09);
      color: var(--blue);
      font-size: 13px;
      font-weight: 700;
    }
    .stats-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      padding: 22px;
    }
    .stat {
      background: var(--panel-strong);
      border: 1px solid var(--line);
      border-radius: 20px;
      padding: 16px;
      min-height: 108px;
    }
    .stat .label {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.35;
      margin-bottom: 14px;
    }
    .stat .value {
      font-size: 32px;
      line-height: 1;
      font-weight: 800;
      color: var(--ink);
    }
    .toolbar {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr)) auto auto auto;
      gap: 14px;
      padding: 18px;
      margin-bottom: 20px;
      align-items: end;
    }
    .compare-grid {
      display: grid;
      grid-template-columns: 1fr 0.95fr 1fr;
      gap: 20px;
      align-items: start;
    }
    .comparison-kpis {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 14px;
    }
    .comparison-center {
      text-align: center;
    }
    .comparison-value {
      font-size: 44px;
      line-height: 1;
      font-weight: 800;
      color: var(--blue);
      margin: 12px 0 8px;
    }
    .comparison-delta {
      font-size: 17px;
      line-height: 1.5;
      color: var(--ink);
      margin-bottom: 14px;
    }
    .comparison-note {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.5;
    }
    .section-block {
      margin-bottom: 22px;
    }
    .section-intro {
      padding: 22px 24px;
    }
    .section-intro h2 {
      margin: 0 0 8px;
      font-size: 30px;
      line-height: 1.1;
      color: var(--blue);
      font-family: "Iowan Old Style", "Georgia", serif;
      font-weight: 600;
    }
    .section-intro p {
      margin: 0;
      color: var(--muted);
      line-height: 1.6;
      font-size: 15px;
      max-width: 860px;
    }
    .internal-toolbar {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 14px;
      margin-bottom: 18px;
      align-items: end;
    }
    .control {
      display: flex;
      flex-direction: column;
      gap: 7px;
      min-width: 0;
    }
    .control label {
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: var(--muted);
      font-weight: 700;
    }
    select, button {
      width: 100%;
      appearance: none;
      border: 1px solid var(--line);
      border-radius: 16px;
      padding: 13px 16px;
      font-size: 15px;
      background: #fff;
      color: var(--ink);
    }
    button {
      background: var(--blue);
      color: #fff;
      font-weight: 700;
      cursor: pointer;
      min-width: 132px;
    }
    button.secondary {
      background: #fff;
      color: var(--blue);
    }
    button.export {
      background: linear-gradient(135deg, var(--blue), var(--teal));
    }
    .main-grid {
      display: grid;
      grid-template-columns: 0.9fr 1.1fr;
      gap: 20px;
      align-items: start;
    }
    .balanced-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      align-items: start;
    }
    .split-panels {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      align-items: start;
    }
    .panel {
      padding: 22px;
      margin-bottom: 20px;
    }
    .panel h2 {
      margin: 0 0 8px;
      font-size: 24px;
      line-height: 1.15;
      color: var(--blue);
    }
    .panel .sub {
      color: var(--muted);
      margin: 0 0 18px;
      line-height: 1.5;
      font-size: 14px;
    }
    .panel-toolbar {
      display: grid;
      grid-template-columns: 1fr 280px;
      gap: 16px;
      align-items: end;
      margin-bottom: 14px;
    }
    .mini-toolbar {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .mini-toolbar label {
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      color: var(--muted);
      font-weight: 700;
    }
    .kpi-row {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin-bottom: 18px;
    }
    .mini-card, .leader-card {
      border-radius: 18px;
      border: 1px solid var(--line);
      background: linear-gradient(180deg, #fff 0%, #faf8f3 100%);
      padding: 15px;
    }
    .mini-card .k {
      font-size: 12px;
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: 0.12em;
      margin-bottom: 12px;
    }
    .mini-card .v {
      font-size: 26px;
      font-weight: 800;
    }
    .two-col {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    .bar-list {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .bar-item {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 12px;
    }
    .bar-meta {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      font-size: 14px;
      margin-bottom: 6px;
      color: var(--ink);
    }
    .bar-track {
      height: 11px;
      background: #ece8dd;
      border-radius: 999px;
      overflow: hidden;
    }
    .bar-fill {
      height: 100%;
      border-radius: 999px;
      background: linear-gradient(90deg, var(--blue), var(--teal));
    }
    .risk-fill {
      background: linear-gradient(90deg, #bf7a32, var(--rose));
    }
    .legend {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 14px;
      font-size: 12px;
      color: var(--muted);
      margin-top: 10px;
    }
    .legend span {
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }
    .legend i {
      width: 12px;
      height: 12px;
      border-radius: 999px;
      display: inline-block;
    }
    .stages {
      display: grid;
      gap: 10px;
    }
    .stage-row {
      display: grid;
      grid-template-columns: 150px 1fr 44px;
      gap: 12px;
      align-items: center;
    }
    .stage-stack {
      height: 12px;
      border-radius: 999px;
      background: #ece8dd;
      overflow: hidden;
      display: flex;
    }
    .stage-segment { height: 100%; }
    .stage-0 { background: #4f8b7a; }
    .stage-1 { background: #caa14b; }
    .stage-2 { background: #c46b4a; }
    .stage-3 { background: #9f4b63; }
    .insight-list, .action-list {
      margin: 0;
      padding-left: 18px;
      color: var(--ink);
      line-height: 1.55;
      display: grid;
      gap: 9px;
    }
    .report-grid {
      display: grid;
      gap: 14px;
    }
    .badge-row {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .report-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 10px 12px;
      border-radius: 999px;
      background: rgba(41, 93, 138, 0.08);
      color: var(--blue);
      font-size: 13px;
      font-weight: 700;
    }
    .text-block {
      color: var(--ink);
      line-height: 1.6;
      font-size: 15px;
    }
    .text-block p {
      margin: 0 0 12px;
    }
    .leader-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin-bottom: 16px;
    }
    .leader-rank {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 34px;
      height: 34px;
      border-radius: 50%;
      background: rgba(41, 93, 138, 0.12);
      color: var(--blue);
      font-size: 13px;
      font-weight: 800;
      margin-bottom: 12px;
    }
    .leader-metric {
      font-size: 28px;
      font-weight: 800;
      margin: 10px 0 6px;
    }
    .small-note {
      font-size: 13px;
      line-height: 1.5;
      color: var(--muted);
    }
    .table-wrap {
      overflow: auto;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
    }
    th, td {
      border-bottom: 1px solid var(--line);
      padding: 10px 8px;
      text-align: left;
      vertical-align: top;
    }
    th {
      color: var(--muted);
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      font-weight: 700;
    }
    tr.highlight {
      background: rgba(41, 93, 138, 0.08);
    }
    .section-label {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 12px;
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: 0.14em;
      font-weight: 700;
      margin-bottom: 14px;
    }
    .section-label::before {
      content: "";
      width: 20px;
      height: 1px;
      background: var(--amber);
    }
    .foot {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.45;
      margin-top: 18px;
    }
    .muted { color: var(--muted); }
    .score-good { color: var(--teal); }
    .score-risk { color: var(--rose); }
    .empty {
      padding: 18px;
      border-radius: 18px;
      border: 1px dashed var(--line);
      color: var(--muted);
      background: rgba(255,255,255,0.6);
    }
    .nowrap { white-space: nowrap; }
    @media (max-width: 1180px) {
      .hero, .main-grid, .balanced-grid, .compare-grid, .split-panels { grid-template-columns: 1fr; }
      .toolbar { grid-template-columns: 1fr 1fr 1fr; }
      .panel-toolbar, .two-col, .leader-grid, .kpi-row, .internal-toolbar { grid-template-columns: 1fr; }
      button { min-width: 0; }
    }
    @media (max-width: 720px) {
      .shell { padding: 18px 14px 56px; }
      .toolbar, .stats-grid { grid-template-columns: 1fr; }
      .stage-row { grid-template-columns: 120px 1fr 34px; }
      h1 { font-size: 30px; }
    }
</style>
