﻿:root {
      --color-primary:        #1A1A1A;
      --color-primary-mid:    #2A2A2A;
      --color-primary-light:  #3A3A3A;
      --color-secondary:      #374151;
      --color-secondary-soft: #6B7280;
      --color-accent:         #CC1515;
      --color-accent-light:   #E02525;
      --color-accent-pale:    #FEF2F2;
      --color-surface:        #FAFAF8;
      --color-white:          #FFFFFF;
      --color-border:         #E5E7EB;
      --color-border-soft:    #F0F0EE;

      --font-sans:   'IBM Plex Sans', system-ui, sans-serif;
      --font-serif:  'IBM Plex Serif', Georgia, serif;
      --font-mono:   'IBM Plex Mono', monospace;

      --text-xs:    0.6875rem;
      --text-sm:    0.8125rem;
      --text-base:  0.9375rem;
      --text-md:    1.0625rem;
      --text-lg:    1.25rem;
      --text-xl:    1.5rem;
      --text-2xl:   2rem;
      --text-3xl:   2.75rem;
      --text-4xl:   3.75rem;
      --text-5xl:   5rem;
      --text-hero:  7.5rem;

      --space-1:  0.25rem;
      --space-2:  0.5rem;
      --space-3:  0.75rem;
      --space-4:  1rem;
      --space-5:  1.25rem;
      --space-6:  1.5rem;
      --space-8:  2rem;
      --space-10: 2.5rem;
      --space-12: 3rem;
      --space-16: 4rem;
      --space-20: 5rem;
      --space-24: 6rem;
      --space-32: 8rem;

      --radius-sm: 2px;
      --radius:    4px;
      --radius-md: 6px;
      --radius-lg: 8px;

      --shadow-card:    0 1px 3px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.06);
      --shadow-elevated: 0 2px 8px rgba(0,0,0,.08), 0 12px 40px rgba(0,0,0,.10);

      --transition: 200ms ease;
    }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; font-size: 16px; }

    body {
      font-family: var(--font-sans);
      font-size: var(--text-base);
      font-weight: 400;
      line-height: 1.65;
      color: var(--color-secondary);
      background: radial-gradient(circle at top left, rgba(204,21,21,.08), transparent 24%),
                  radial-gradient(circle at bottom right, rgba(204,21,21,.05), transparent 18%),
                  var(--color-surface);
      min-height: 100vh;
      -webkit-font-smoothing: antialiased;
    }

    button {
      transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
    }
    button:hover {
      transform: translateY(-1px);
    }

    .cover {
      position: relative;
      min-height: 100vh;
      background: #151515;
      display: grid;
      grid-template-rows: auto 1fr auto;
      overflow: hidden;
      page-break-after: always;
      color: var(--color-white);
    }

    .cover::before {
      content: '';
      position: absolute;
      top: 0; right: 0;
      width: 55%;
      height: 100%;
      background: linear-gradient(135deg, transparent 0%, rgba(255,255,255,.018) 100%);
      border-left: 1px solid rgba(255,255,255,.06);
    }
    .cover::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-accent-light) 50%, transparent 100%);
    }

    .cover-header {
      position: relative;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: var(--space-5) var(--space-16);
      border-bottom: 1px solid rgba(255,255,255,.08);
      z-index: 2;
    }

    .cover-logo {
      display: flex;
      align-items: center;
      gap: var(--space-4);
    }
    .cover-logo-img {
      max-width: 220px;
      max-height: 90px;
      width: auto;
      height: auto;
      display: block;
      filter: brightness(0) invert(1);
    }

    .cover-classification {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: var(--space-2);
    }
    .badge-confidential {
      padding: var(--space-1) var(--space-4);
      background: rgba(204,21,21,.12);
      border: 1px solid var(--color-accent);
      font-size: var(--text-xs);
      font-weight: 700;
      color: var(--color-accent);
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }
    .cover-doc-ref {
      font-size: var(--text-xs);
      color: rgba(255,255,255,.35);
      letter-spacing: 0.06em;
      font-family: var(--font-mono);
    }

    .cover-body {
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: var(--space-16) var(--space-16);
      z-index: 2;
    }

    .cover-spline {
      position: absolute;
      inset: 0;
      z-index: 0;
      transform: translateX(9%) scale(1.28);
      transform-origin: center center;
    }
    .cover-spline spline-viewer {
      width: 100%;
      height: 100%;
      display: block;
    }

    .cover-overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(
        135deg,
        rgba(5,5,5,.48) 0%,
        rgba(5,5,5,.18) 50%,
        rgba(5,5,5,.00) 100%
      );
      pointer-events: none;
    }

    .cover-label {
      font-size: var(--text-xs);
      font-weight: 600;
      color: var(--color-accent);
      letter-spacing: 0.18em;
      text-transform: uppercase;
      margin-bottom: var(--space-8);
      display: flex;
      align-items: center;
      gap: var(--space-4);
    }
    .cover-label::before {
      content: '';
      display: block;
      width: 32px;
      height: 1px;
      background: var(--color-accent);
    }

    .cover-title {
      font-family: var(--font-serif);
      font-size: clamp(2.8rem, 6vw, 5.5rem);
      font-weight: 700;
      line-height: 1.05;
      color: var(--color-white);
      letter-spacing: -0.02em;
      max-width: 720px;
      margin-bottom: var(--space-6);
    }

    .cover-subtitle {
      font-size: var(--text-lg);
      font-weight: 300;
      color: rgba(255,255,255,.55);
      max-width: 520px;
      line-height: 1.55;
      margin-bottom: var(--space-16);
    }

    .cover-meta-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: var(--space-8);
      align-items: start;
    }
    .cover-meta-label {
      font-size: var(--text-xs);
      font-weight: 600;
      color: rgba(255,255,255,.35);
      letter-spacing: 0.12em;
      text-transform: uppercase;
      margin-bottom: var(--space-2);
    }
    .cover-meta-value {
      font-size: var(--text-sm);
      font-weight: 500;
      color: rgba(255,255,255,.80);
    }

    .cover-footer {
      position: relative;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: var(--space-6) var(--space-16);
      border-top: 1px solid rgba(255,255,255,.08);
      z-index: 2;
    }
    .cover-footer-note {
      font-size: var(--text-xs);
      color: rgba(255,255,255,.25);
      letter-spacing: 0.04em;
      max-width: 600px;
      line-height: 1.5;
    }
    .cover-page-num {
      font-family: var(--font-mono);
      font-size: var(--text-xs);
      color: rgba(255,255,255,.20);
    }

    .document {
      max-width: 1080px;
      margin: 0 auto;
      padding: var(--space-16) var(--space-8);
    }

    .doc-reference-bar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: var(--space-5) var(--space-8);
      background: var(--color-primary);
      margin-bottom: var(--space-16);
    }
    .doc-reference-bar .ref-group {
      display: flex;
      align-items: center;
      gap: var(--space-8);
    }
    .ref-item {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .ref-item-label {
      font-size: 0.6rem;
      font-weight: 700;
      color: rgba(255,255,255,.35);
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }
    .ref-item-value {
      font-family: var(--font-mono);
      font-size: var(--text-xs);
      color: rgba(255,255,255,.70);
    }
    .ref-divider {
      width: 1px;
      height: 28px;
      background: rgba(255,255,255,.12);
    }
    .ref-status {
      padding: 3px var(--space-3);
      background: rgba(184,148,63,.15);
      border: 1px solid var(--color-accent);
      font-size: 0.6rem;
      font-weight: 700;
      color: var(--color-accent);
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }

    section {
      margin-bottom: var(--space-20);
      background: var(--color-white);
      border-radius: var(--radius-lg);
      border: 1px solid var(--color-border-soft);
      box-shadow: var(--shadow-card);
      padding: var(--space-10) var(--space-8);
    }

    .section-header {
      display: flex;
      align-items: baseline;
      gap: var(--space-5);
      margin-bottom: var(--space-8);
      padding-bottom: var(--space-5);
      border-bottom: 1px solid var(--color-border);
    }
    .section-number {
      font-family: var(--font-mono);
      font-size: var(--text-xs);
      font-weight: 500;
      color: var(--color-accent);
      letter-spacing: 0.06em;
      flex-shrink: 0;
    }
    .section-title {
      font-family: var(--font-serif);
      font-size: var(--text-xl);
      font-weight: 600;
      color: var(--color-primary);
      letter-spacing: -0.02em;
      line-height: 1.2;
    }

    .executive-summary {
      position: relative;
      background: var(--color-white);
      border: 1px solid var(--color-border);
      border-top: 3px solid var(--color-primary);
      padding: var(--space-12) var(--space-12);
      box-shadow: var(--shadow-elevated);
      margin-bottom: var(--space-20);
    }

    .es-header {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      margin-bottom: var(--space-8);
      padding-bottom: var(--space-6);
      border-bottom: 1px solid var(--color-border-soft);
    }
    .es-label {
      font-size: var(--text-xs);
      font-weight: 700;
      color: var(--color-accent);
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .es-title {
      font-family: var(--font-serif);
      font-size: var(--text-2xl);
      font-weight: 600;
      color: var(--color-primary);
      letter-spacing: -0.02em;
      line-height: 1.15;
      margin-top: var(--space-3);
    }
    .es-classification {
      font-size: var(--text-xs);
      font-family: var(--font-mono);
      color: var(--color-secondary-soft);
      text-align: right;
    }

    .es-body {
      display: grid;
      grid-template-columns: 1fr 280px;
      gap: var(--space-12);
      align-items: start;
    }

    .es-text {
      font-size: var(--text-md);
      line-height: 1.75;
      color: var(--color-secondary);
    }
    .es-text p + p { margin-top: var(--space-5); }
    .es-text strong {
      font-weight: 600;
      color: var(--color-primary);
    }

    .es-highlights {
      display: flex;
      flex-direction: column;
      gap: var(--space-4);
    }
    .es-highlight-item {
      padding: var(--space-5) var(--space-6);
      background: var(--color-surface);
      border-left: 2px solid var(--color-accent);
    }
    .es-highlight-label {
      font-size: var(--text-xs);
      font-weight: 700;
      color: var(--color-accent);
      letter-spacing: 0.12em;
      text-transform: uppercase;
      margin-bottom: var(--space-2);
    }
    .es-highlight-value {
      font-family: var(--font-serif);
      font-size: var(--text-lg);
      font-weight: 600;
      color: var(--color-primary);
      line-height: 1.2;
    }
    .es-highlight-sub {
      font-size: var(--text-xs);
      color: var(--color-secondary-soft);
      margin-top: 2px;
    }

.kpi-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: var(--space-4);
      margin-bottom: var(--space-10);
    }

    .kpi-card {
      background: var(--color-white);
      border: 1px solid var(--color-border);
      padding: var(--space-6) var(--space-6);
      position: relative;
      transition: var(--transition);
    }
    .kpi-card::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 2px;
      background: var(--color-primary);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform 0.3s ease;
    }
    .kpi-card:hover::after { transform: scaleX(1); }

    .kpi-label {
      font-size: var(--text-xs);
      font-weight: 600;
      color: var(--color-secondary-soft);
      letter-spacing: 0.10em;
      text-transform: uppercase;
      margin-bottom: var(--space-3);
    }
    .kpi-value {
      font-family: var(--font-serif);
      font-size: var(--text-2xl);
      font-weight: 700;
      color: var(--color-primary);
      line-height: 1;
      margin-bottom: var(--space-2);
    }
    .kpi-unit {
      font-family: var(--font-sans);
      font-size: var(--text-sm);
      font-weight: 400;
      color: var(--color-secondary-soft);
    }
    .kpi-delta {
      font-size: var(--text-xs);
      font-weight: 600;
      margin-top: var(--space-3);
      display: inline-flex;
      align-items: center;
      gap: 3px;
    }
    .kpi-delta.up   { color: #166534; }
    .kpi-delta.neutral { color: var(--color-secondary-soft); }

.prose {
      font-size: var(--text-base);
      line-height: 1.75;
      color: var(--color-secondary);
      max-width: 72ch;
    }
    .prose p + p { margin-top: var(--space-5); }
    .prose strong { font-weight: 600; color: var(--color-primary); }
    .prose em { font-style: italic; color: var(--color-secondary-soft); }

    .two-col {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--space-12);
      align-items: start;
    }
    .two-col .prose { max-width: none; }

.card {
      background: var(--color-white);
      border: 1px solid var(--color-border);
      padding: var(--space-8);
      box-shadow: var(--shadow-card);
    }

    .card-sm {
      background: var(--color-white);
      border: 1px solid var(--color-border);
      padding: var(--space-6);
    }

    .card-title {
      font-size: var(--text-sm);
      font-weight: 700;
      color: var(--color-primary);
      letter-spacing: 0.06em;
      text-transform: uppercase;
      margin-bottom: var(--space-5);
      padding-bottom: var(--space-4);
      border-bottom: 1px solid var(--color-border-soft);
    }

    .card-grid-3 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-5);
    }

.findings-list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: var(--space-4);
    }
    .findings-list li {
      display: grid;
      grid-template-columns: auto 1fr auto;
      gap: var(--space-5);
      align-items: start;
      padding: var(--space-5) var(--space-6);
      background: var(--color-white);
      border: 1px solid var(--color-border);
    }
    .finding-index {
      font-family: var(--font-mono);
      font-size: var(--text-xs);
      color: var(--color-accent);
      font-weight: 500;
      padding-top: 2px;
    }
    .finding-text {
      font-size: var(--text-base);
      color: var(--color-secondary);
      line-height: 1.55;
    }
    .finding-text strong {
      font-weight: 600;
      color: var(--color-primary);
      display: block;
      margin-bottom: 2px;
    }
    .finding-status {
      padding: 2px var(--space-3);
      font-size: 0.6rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      white-space: nowrap;
      flex-shrink: 0;
    }
    .status-verified { background: #ECFDF5; color: #065F46; border: 1px solid #A7F3D0; }
    .status-pending  { background: #FFFBEB; color: #92400E; border: 1px solid #FDE68A; }
    .status-critical { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }

.table-wrapper {
      overflow-x: auto;
      border: 1px solid var(--color-border);
      background: var(--color-white);
    }

    table {
      width: 100%;
      border-collapse: collapse;
      font-size: var(--text-sm);
    }
    thead {
      background: var(--color-primary);
    }
    thead th {
      padding: var(--space-4) var(--space-6);
      text-align: left;
      font-size: var(--text-xs);
      font-weight: 600;
      color: rgba(255,255,255,.70);
      letter-spacing: 0.10em;
      text-transform: uppercase;
      white-space: nowrap;
      border-right: 1px solid rgba(255,255,255,.06);
    }
    thead th:last-child { border-right: none; text-align: right; }

    tbody tr {
      border-bottom: 1px solid var(--color-border-soft);
      transition: background var(--transition);
    }
    tbody tr:hover { background: var(--color-surface); }
    tbody tr:last-child { border-bottom: none; }

    tbody td {
      padding: var(--space-4) var(--space-6);
      color: var(--color-secondary);
      border-right: 1px solid var(--color-border-soft);
      vertical-align: middle;
    }
    tbody td:last-child { border-right: none; text-align: right; font-weight: 600; color: var(--color-primary); }
    tbody td:first-child { font-weight: 500; color: var(--color-primary); }

    .table-tag {
      display: inline-block;
      padding: 1px var(--space-3);
      font-size: 0.6rem;
      font-weight: 700;
      letter-spacing: 0.10em;
      text-transform: uppercase;
    }
    .tag-a { background: #EFF6FF; color: #1D4ED8; border: 1px solid #BFDBFE; }
    .tag-b { background: #F0FDF4; color: #166534; border: 1px solid #BBF7D0; }
    .tag-c { background: #FFFBEB; color: #92400E; border: 1px solid #FDE68A; }
    .tag-d { background: #F9FAFB; color: #374151; border: 1px solid #E5E7EB; }

    tfoot td {
      padding: var(--space-4) var(--space-6);
      font-weight: 700;
      color: var(--color-primary);
      background: var(--color-surface);
      border-top: 2px solid var(--color-border);
      font-size: var(--text-sm);
    }
    tfoot td:last-child { text-align: right; }

.valor-section {
      background: var(--color-primary);
      padding: var(--space-24) var(--space-16);
      margin: var(--space-24) 0;
      position: relative;
      overflow: hidden;
      text-align: center;
      page-break-inside: avoid;
    }
    .valor-section::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 3px;
      background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
    }
    .valor-section::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 3px;
      background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
    }
    
    .valor-bg-deco {
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      width: 600px;
      height: 600px;
      border: 1px solid rgba(255,255,255,.03);
      border-radius: 50%;
      pointer-events: none;
    }
    .valor-bg-deco::before {
      content: '';
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      width: 400px;
      height: 400px;
      border: 1px solid rgba(255,255,255,.04);
      border-radius: 50%;
    }

    .valor-content { position: relative; z-index: 1; }

    .valor-eyebrow {
      font-size: var(--text-xs);
      font-weight: 700;
      color: var(--color-accent);
      letter-spacing: 0.20em;
      text-transform: uppercase;
      margin-bottom: var(--space-8);
      display: flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-6);
    }
    .valor-eyebrow::before,
    .valor-eyebrow::after {
      content: '';
      display: block;
      width: 60px;
      height: 1px;
      background: var(--color-accent);
      opacity: 0.5;
    }

    .valor-label {
      font-size: var(--text-sm);
      font-weight: 500;
      color: rgba(255,255,255,.40);
      letter-spacing: 0.06em;
      text-transform: uppercase;
      margin-bottom: var(--space-6);
    }

    .valor-amount {
      font-family: var(--font-serif);
      font-size: clamp(4rem, 10vw, 8rem);
      font-weight: 700;
      color: var(--color-white);
      letter-spacing: -0.03em;
      line-height: 1;
      margin-bottom: var(--space-4);
    }

    .valor-currency {
      font-family: var(--font-sans);
      font-size: var(--text-xl);
      font-weight: 300;
      color: rgba(255,255,255,.50);
      margin-bottom: var(--space-10);
    }

    .valor-range {
      display: inline-flex;
      align-items: center;
      gap: var(--space-4);
      padding: var(--space-4) var(--space-8);
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      margin-bottom: var(--space-10);
    }
    .valor-range-item { text-align: center; }
    .valor-range-lbl {
      font-size: 0.625rem;
      font-weight: 700;
      color: rgba(255,255,255,.35);
      letter-spacing: 0.12em;
      text-transform: uppercase;
      display: block;
      margin-bottom: 2px;
    }
    .valor-range-val {
      font-family: var(--font-serif);
      font-size: var(--text-lg);
      font-weight: 600;
      color: rgba(255,255,255,.75);
    }
    .valor-range-sep {
      width: 1px;
      height: 36px;
      background: rgba(255,255,255,.12);
      margin: 0 var(--space-2);
    }

    .valor-note {
      font-size: var(--text-xs);
      color: rgba(255,255,255,.30);
      max-width: 480px;
      margin: 0 auto;
      line-height: 1.55;
      font-style: italic;
    }

    .valor-summary {
      max-width: 720px;
      margin: var(--space-8) auto 0;
      color: rgba(255,255,255,.82);
      font-size: var(--text-md);
      line-height: 1.8;
    }
    .valor-summary p + p {
      margin-top: var(--space-4);
    }

.methodology-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-5);
    }
    .method-item {
      padding: var(--space-6);
      background: var(--color-white);
      border: 1px solid var(--color-border);
      position: relative;
    }
    .method-num {
      font-family: var(--font-mono);
      font-size: 2.5rem;
      font-weight: 400;
      color: var(--color-border);
      line-height: 1;
      margin-bottom: var(--space-4);
    }
    .method-title {
      font-size: var(--text-sm);
      font-weight: 700;
      color: var(--color-primary);
      text-transform: uppercase;
      letter-spacing: 0.08em;
      margin-bottom: var(--space-3);
    }
    .method-desc {
      font-size: var(--text-sm);
      color: var(--color-secondary-soft);
      line-height: 1.65;
    }

.analysis-bars {
      display: flex;
      flex-direction: column;
      gap: var(--space-4);
    }
    .bar-item {
      display: grid;
      grid-template-columns: 160px 1fr 80px;
      gap: var(--space-5);
      align-items: center;
    }
    .bar-label {
      font-size: var(--text-sm);
      font-weight: 500;
      color: var(--color-primary);
      text-align: right;
    }
    .bar-track {
      height: 6px;
      background: var(--color-border);
      border-radius: 2px;
      overflow: hidden;
    }
    .bar-fill {
      height: 100%;
      background: var(--color-primary);
      border-radius: 2px;
      position: relative;
    }
    .bar-fill.accent { background: var(--color-accent); }
    .bar-value {
      font-family: var(--font-mono);
      font-size: var(--text-sm);
      font-weight: 500;
      color: var(--color-secondary-soft);
    }

.conclusion-block {
      background: var(--color-white);
      border: 1px solid var(--color-border);
      border-left: 4px solid var(--color-primary);
      padding: var(--space-10) var(--space-10);
      margin-bottom: var(--space-10);
    }
    .conclusion-block .section-title {
      font-size: var(--text-xl);
      margin-bottom: var(--space-6);
    }
    .conclusion-text {
      font-family: var(--font-serif);
      font-size: var(--text-md);
      line-height: 1.80;
      color: var(--color-secondary);
      max-width: 72ch;
    }
    .conclusion-text strong {
      color: var(--color-primary);
      font-weight: 600;
    }

.signature-block {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-8);
      margin-top: var(--space-16);
      padding-top: var(--space-10);
      border-top: 1px solid var(--color-border);
    }
    .signature-item {
      display: flex;
      flex-direction: column;
      gap: var(--space-2);
    }
    .signature-line {
      height: 1px;
      background: var(--color-primary);
      margin-bottom: var(--space-3);
      width: 80%;
    }
    .signature-name {
      font-size: var(--text-sm);
      font-weight: 600;
      color: var(--color-primary);
    }
    .signature-role {
      font-size: var(--text-xs);
      color: var(--color-secondary-soft);
      letter-spacing: 0.04em;
    }
    .signature-cert {
      font-family: var(--font-mono);
      font-size: 0.6rem;
      color: var(--color-accent);
      letter-spacing: 0.08em;
      margin-top: var(--space-2);
    }

footer {
      background: var(--color-primary);
      padding: var(--space-10) var(--space-16);
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: var(--space-8);
      margin-top: var(--space-20);
    }
    .footer-brand {
      display: flex;
      flex-direction: column;
      gap: var(--space-2);
    }
    .footer-brand-name {
      font-size: var(--text-sm);
      font-weight: 700;
      color: rgba(255,255,255,.80);
      letter-spacing: 0.10em;
      text-transform: uppercase;
    }
    .footer-brand-sub {
      font-size: var(--text-xs);
      color: rgba(255,255,255,.30);
    }

    .footer-disclaimer {
      font-size: 0.6rem;
      color: rgba(255,255,255,.22);
      max-width: 520px;
      line-height: 1.6;
      text-align: center;
    }

    .footer-refs {
      text-align: right;
    }
    .footer-ref-line {
      font-family: var(--font-mono);
      font-size: var(--text-xs);
      color: rgba(255,255,255,.30);
      display: block;
    }

.section-divider {
      display: flex;
      align-items: center;
      gap: var(--space-6);
      margin: var(--space-16) 0;
    }
    .section-divider::before,
    .section-divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: var(--color-border);
    }
    .section-divider span {
      font-family: var(--font-mono);
      font-size: 0.6rem;
      color: var(--color-secondary-soft);
      letter-spacing: 0.14em;
      text-transform: uppercase;
      white-space: nowrap;
    }

.note-aside {
      padding: var(--space-5) var(--space-6);
      background: var(--color-accent-pale);
      border-left: 2px solid var(--color-accent);
      font-size: var(--text-sm);
      color: #78520E;
      line-height: 1.60;
      margin: var(--space-8) 0;
    }
    .note-aside strong { color: #5A3B08; font-weight: 600; }

.mt-6  { margin-top: var(--space-6); }
    .mt-8  { margin-top: var(--space-8); }
    .mt-10 { margin-top: var(--space-10); }
    .mt-12 { margin-top: var(--space-12); }
    .mb-6  { margin-bottom: var(--space-6); }
    .mb-8  { margin-bottom: var(--space-8); }

    .text-center { text-align: center; }
    .text-right  { text-align: right; }

#splash {
      position: fixed;
      inset: 0;
      z-index: 9999;
      background: #F7F5F2;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: opacity 0.5s ease, visibility 0.5s ease;
    }
    #splash.hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }
    .splash-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1.5rem;
      padding: var(--space-3) var(--space-6);
    }
    .splash-logo {
      width: 200px;
      height: auto;
    }
    .splash-copy {
      text-align: center;
      max-width: 320px;
      color: rgba(20,20,20,.85);
    }
    .splash-title {
      margin: 0;
      font-family: var(--font-serif);
      font-size: 1.2rem;
      font-weight: 700;
      line-height: 1.2;
      letter-spacing: 0.02em;
      color: #1A1A1A;
    }
    .splash-subtitle {
      margin: 0.4rem 0 0;
      font-size: var(--text-sm);
      color: rgba(20,20,20,.50);
      line-height: 1.6;
    }
    @keyframes splashPulse {
      from { opacity: 0.8; transform: translateY(0) scale(0.98); }
      to   { opacity: 1;   transform: translateY(-2px) scale(1); }
    }
    .splash-access {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.75rem;
      width: 268px;
    }
    .splash-input {
      width: 100%;
      padding: 0.75rem 1rem;
      background: rgba(0,0,0,.04);
      border: 1.5px solid rgba(0,0,0,.13);
      border-radius: var(--radius);
      color: #1A1A1A;
      font-family: var(--font-mono);
      font-size: 1.3rem;
      letter-spacing: 0.35em;
      text-align: center;
      outline: none;
      transition: border-color 0.2s;
    }
    .splash-input:focus { border-color: var(--color-accent); }
    .splash-btn {
      width: 100%;
      padding: 0.65rem 1rem;
      background: var(--color-accent);
      color: #fff;
      font-family: var(--font-sans);
      font-size: var(--text-sm);
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      border: none;
      border-radius: var(--radius);
      cursor: pointer;
      transition: background 0.2s, transform 0.15s;
    }
    .splash-btn:hover { background: var(--color-accent-light); transform: translateY(-1px); }
    .splash-error {
      color: var(--color-accent);
      font-size: var(--text-sm);
      min-height: 1.1em;
      text-align: center;
      margin: 0;
    }
    @keyframes splashShake {
      0%,100% { transform: translateX(0); }
      20%      { transform: translateX(-7px); }
      40%      { transform: translateX(7px); }
      60%      { transform: translateX(-4px); }
      80%      { transform: translateX(4px); }
    }
    .splash-shake { animation: splashShake 0.4s ease; }
    .splash-bar {
      width: 260px;
      height: 4px;
      background: rgba(0,0,0,.10);
      border-radius: 999px;
      overflow: hidden;
    }
    .splash-progress {
      height: 100%;
      width: 0;
      background: var(--color-accent);
      border-radius: 999px;
      transition: width 0.12s linear;
    }

@media print {
      #splash { display: none !important; }
      #btn-export { display: none !important; }
      body { background: white; }
      .cover { min-height: 100vh; }
      .valor-section { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
      .cover { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
      footer { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
      .doc-reference-bar { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
      section { page-break-inside: avoid; }
      .executive-summary { page-break-inside: avoid; }
    }

@keyframes fadeUp {
      from { opacity: 0; transform: translateY(16px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .animate-in {
      opacity: 0;
      animation: fadeUp 0.6s ease forwards;
    }
    .delay-1 { animation-delay: 0.10s; }
    .delay-2 { animation-delay: 0.20s; }
    .delay-3 { animation-delay: 0.30s; }
    .delay-4 { animation-delay: 0.40s; }
