/* Clean keeps styles.css intact; fish.css owns the shared footer control. */
.footer-wrap {
  position: relative;
}
@media print {
  .theme-toggle {
    display: none !important;
  }
}

/* Screen-only: print always uses the original, undecorated light report. */
@media screen {
  :root[data-theme='aero'] {
    --ink: #f0fbfc;
    --muted: #c0d7de;
    --line: #376771;
    --surface: rgba(9, 35, 46, 0.94);
    --surface-soft: #06232b;
    --brand: #71ffd1;
    --brand-soft: #074d3e;
    --success: #71ffd1;
    --success-soft: #084d3d;
    --danger: #ff94a3;
    --danger-soft: #451e2d;
    --warning: #ffd081;
    --warning-soft: #42381d;
    --info: #9dceff;
    --info-soft: #123a57;
    /* One light source: cyan/white above-left, emerald beneath-right. */
    --aero-cyan: #8beaff;
    --aero-emerald: #62ffc4;
    --aero-edge: rgba(145, 218, 244, 0.6);
    --aero-reflection:
      linear-gradient(
        174deg,
        rgba(222, 249, 255, 0.22),
        rgba(146, 210, 247, 0.07) 16%,
        transparent 38%
      ),
      radial-gradient(ellipse at 0 0, rgba(174, 235, 255, 0.2), transparent 58%);
    --aero-glass-body: linear-gradient(
      135deg,
      rgba(27, 67, 80, 0.78),
      rgba(3, 23, 33, 0.88) 48%,
      rgba(10, 50, 70, 0.78)
    );
    --aero-glass: var(--aero-reflection), var(--aero-glass-body);
    --aero-depth:
      inset 0 1px 0 rgba(241, 252, 255, 0.8),
      inset 0 2px 3px rgba(185, 229, 255, 0.16),
      inset 1px 0 0 rgba(182, 235, 255, 0.28),
      inset 0 -1px 0 rgba(95, 229, 255, 0.7),
      inset 0 -8px 16px rgba(20, 148, 179, 0.12),
      0 14px 28px rgba(0, 9, 19, 0.42), 0 0 14px rgba(69, 204, 229, 0.23);
    --aero-specular: linear-gradient(
      90deg,
      transparent,
      #f1fcff 12%,
      rgba(169, 224, 255, 0.64) 52%,
      transparent
    );
    --primary-fill:
      linear-gradient(
        180deg,
        rgba(240, 255, 227, 0.65),
        rgba(195, 255, 199, 0.13) 12%,
        transparent 30%
      ),
      linear-gradient(
        180deg,
        #c3ffd7,
        #45ec94 9%,
        #16b36c 21%,
        #078046 32%,
        #078046 50%,
        #046e40 76%,
        #18b477
      );
    --primary-border: #85ffd0;
    --aero-button-depth:
      inset 0 1px 1px #dcffe4, inset 0 3px 5px rgba(172, 255, 182, 0.66),
      inset 0 -2px 3px rgba(0, 44, 33, 0.75),
      inset 0 0 12px rgba(102, 255, 169, 0.42),
      0 0 22px rgba(17, 243, 157, 0.38), 0 6px 14px rgba(0, 13, 16, 0.38);
    background: #03191f;
  }
  :root[data-theme='aero'] body {
    background:
      url('aero/hero-atmosphere.webp') center top / calc(100% + 200px) auto
        no-repeat,
      radial-gradient(ellipse at 80% 5%, #05282f, #00171c 40%, #00151b 80%);
  }
  /* One static lower atmosphere, faded at its top so the cropped orb has no
     rectangular seam. Its layer stays behind real HTML and catches no input. */
  :root[data-theme='aero'] body {
    position: relative;
    isolation: isolate;
  }
  :root[data-theme='aero'] body::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: clamp(420px, 45.4vw, 760px);
    z-index: -1;
    pointer-events: none;
    user-select: none;
    background: url('aero/lower-atmosphere.webp') center bottom / 100% auto
      no-repeat;
    mask-image: linear-gradient(180deg, transparent, #000 80px);
  }
  :root[data-theme='aero'] .site-header {
    padding: 8px 0;
    background: transparent;
    border-color: transparent;
  }
  :root[data-theme='aero'] .nav-wrap {
    min-height: 70px;
    padding: 0 20px;
    background: var(--aero-glass);
    border: 1px solid var(--aero-edge);
    border-radius: 18px;
    box-shadow: var(--aero-depth);
    backdrop-filter: blur(8px) saturate(1.2);
  }
  :root[data-theme='aero'] .brand-mark {
    border: 1px solid #63e6af;
    box-shadow:
      inset 0 1px 0 #b6ffe2,
      0 0 12px rgba(31, 250, 162, 0.25);
  }
  :root[data-theme='aero'] .hero-section {
    isolation: isolate;
    overflow: clip;
    background:
      radial-gradient(
        ellipse at 93% 90%,
        rgba(65, 158, 225, 0.24),
        transparent 46%
      ),
      radial-gradient(ellipse at 85% 65%, #06443d, #03242b 38%, #02161d 80%);
    border-bottom-color: #376b77;
  }
  :root[data-theme='aero'] .hero-section::before,
  :root[data-theme='aero'] .report-preview-panel::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    pointer-events: none;
    user-select: none;
    background-repeat: no-repeat;
    background-size: cover;
  }

  :root[data-theme='aero'] .hero-lede {
    text-shadow:
      0 2px 8px rgba(0, 0, 0, 0.9),
      0 1px 2px rgba(0, 0, 0, 0.95);
  }
  :root[data-theme='aero'] .hero-section::before {
    background-image: url('aero/hero-atmosphere.webp');
    background-position: center bottom;
    background-size: calc(100% + 200px) auto;
  }
  :root[data-theme='aero'] .brand-emphasis {
    color: #65f8c7;
    text-shadow: 0 2px 12px rgba(0, 219, 160, 0.22);
  }
  :root[data-theme='aero'] .hero-heading {
    color: #c4e0e8;
  }
  :root[data-theme='aero'] .hero-lede {
    color: #d2e6ea;
  }
  :root[data-theme='aero'] .upload-card,
  :root[data-theme='aero'] .feature-card,
  :root[data-theme='aero'] .report-preview,
  :root[data-theme='aero'] .faq-item,
  :root[data-theme='aero'] .workbook-map-section,
  :root[data-theme='aero'] .catalog-check-card,
  :root[data-theme='aero'] .privacy-copy {
    background: var(--aero-glass);
    border-color: var(--aero-edge);
    box-shadow: var(--aero-depth);
    backdrop-filter: blur(8px) saturate(1.2);
  }
  :root[data-theme='aero'] .upload-card {
    border-radius: 22px;
    border-color: #a5eaf7;
    background:
      var(--aero-reflection),
      linear-gradient(
        145deg,
        rgba(29, 70, 80, 0.75),
        rgba(4, 28, 38, 0.89) 55%,
        rgba(18, 65, 83, 0.82)
      );
    box-shadow:
      var(--aero-depth),
      inset 0 -2px 1px rgba(123, 223, 255, 0.8),
      0 0 23px rgba(66, 203, 255, 0.3);
  }
  :root[data-theme='aero'] .drop-zone {
    background: linear-gradient(
      170deg,
      rgba(1, 15, 23, 0.72),
      rgba(5, 30, 40, 0.48) 55%,
      rgba(64, 145, 156, 0.1)
    );
    border-color: #98bbc7;
    box-shadow:
      inset 0 3px 10px rgba(0, 9, 17, 0.45),
      inset 0 -1px 0 rgba(159, 231, 247, 0.25);
  }
  :root[data-theme='aero'] .drop-zone:hover,
  :root[data-theme='aero'] .drop-zone.is-dragging {
    border-color: #75ffd3;
    background: rgba(6, 68, 57, 0.92);
    box-shadow:
      inset 0 0 18px rgba(53, 238, 182, 0.1),
      0 0 12px rgba(29, 225, 177, 0.18);
  }
  :root[data-theme='aero'] .upload-header-icon,
  :root[data-theme='aero'] .upload-icon,
  :root[data-theme='aero'] .explain-icon,
  :root[data-theme='aero'] .preview-file-icon,
  :root[data-theme='aero'] .report-file-icon,
  :root[data-theme='aero'] .trust-icon {
    background:
      linear-gradient(160deg, rgba(193, 255, 232, 0.32), transparent 30%),
      linear-gradient(145deg, #139568, #034b3b 55%, #078960);
    color: #90ffd5;
    border: 1px solid rgba(94, 255, 192, 0.45);
    box-shadow:
      inset 0 1px 1px rgba(221, 255, 241, 0.68),
      inset 0 -2px 4px rgba(9, 241, 170, 0.3),
      inset 0 0 12px rgba(13, 253, 161, 0.2),
      0 3px 7px rgba(0, 11, 21, 0.35),
      0 0 12px rgba(14, 225, 144, 0.22);
  }
  :root[data-theme='aero'] .nav-links .nav-action,
  :root[data-theme='aero'] .primary-button,
  :root[data-theme='aero'] .primary-link-button,
  :root[data-theme='aero'] .report-preview-copy .secondary-link-button {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--primary-fill);
    color: #fff;
    border-color: var(--primary-border);
    text-shadow: 0 1px 2px rgba(0, 40, 27, 0.65);
    box-shadow: var(--aero-button-depth);
  }
  :root[data-theme='aero']
    :is(
      .nav-action,
      .primary-button,
      .primary-link-button,
      .report-preview-copy .secondary-link-button
    )::after {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 12px;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(
      110deg,
      transparent 30%,
      rgba(225, 255, 239, 0.12) 40%,
      rgba(225, 255, 239, 0.2) 45%,
      transparent 60%
    );
    transform: translateX(-110%);
    opacity: 0;
  }
  :root[data-theme='aero']
    :is(
      .nav-action,
      .primary-button:not(:disabled),
      .primary-link-button,
      .report-preview-copy .secondary-link-button
    ):is(:hover, :focus-visible) {
    filter: brightness(1.03);
    transform: translateY(-1px);
    border-color: #c5ffe8;
    box-shadow:
      var(--aero-button-depth),
      inset 0 4px 7px rgba(206, 255, 213, 0.25),
      0 0 23px rgba(18, 243, 162, 0.3);
  }
  :root[data-theme='aero']
    :is(
      .nav-action,
      .primary-button:not(:disabled),
      .primary-link-button,
      .report-preview-copy .secondary-link-button
    ):is(:hover, :focus-visible)::after {
    animation: aero-reflected-light 1.1s ease-out both;
  }
  @keyframes aero-reflected-light {
    0% {
      transform: translateX(-110%);
      opacity: 0;
    }
    25% {
      opacity: 1;
    }
    75% {
      opacity: 1;
    }
    100% {
      transform: translateX(110%);
      opacity: 0;
    }
  }
  :root[data-theme='aero'] .primary-button:disabled {
    filter: none;
    transform: none;
  }
  :root[data-theme='aero'] .section-band {
    background: linear-gradient(135deg, #0a3443, #041e26 65%, #07342f);
    border-color: #24535d;
  }
  :root[data-theme='aero'] .feature-icon {
    border: 1px solid currentColor;
    background-image: linear-gradient(
      155deg,
      rgba(255, 255, 255, 0.22),
      transparent 40%,
      rgba(255, 255, 255, 0.04)
    );
    box-shadow:
      inset 0 1px 1px rgba(255, 255, 255, 0.5),
      inset 0 -1px 5px rgba(255, 255, 255, 0.12),
      0 3px 8px rgba(0, 10, 17, 0.4);
  }
  :root[data-theme='aero'] .feature-icon .icon {
    filter: drop-shadow(0 0 3px currentColor);
  }
  :root[data-theme='aero'] .feature-violet {
    color: #d5b6ff;
    background-color: #432361;
  }
  :root[data-theme='aero'] .report-preview-panel {
    position: relative;
    isolation: isolate;
    overflow: clip;
    background:
      var(--aero-reflection),
      linear-gradient(120deg, #02212a, #001922 50%, #063f34);
    border-color: #9aeeeb;
    border-radius: 22px;
    box-shadow:
      var(--aero-depth),
      inset 0 0 14px rgba(109, 255, 215, 0.22);
  }
  :root[data-theme='aero'] .report-preview-panel::before {
    background-image:
      linear-gradient(
        90deg,
        rgba(0, 18, 24, 0.72),
        rgba(0, 18, 24, 0.6) 32%,
        transparent 52%
      ),
      url('aero/demo-atmosphere.webp');
    background-position: center;
  }
  :root[data-theme='aero'] .report-preview {
    background:
      var(--aero-reflection),
      linear-gradient(
        135deg,
        rgba(10, 42, 55, 0.91),
        rgba(2, 19, 28, 0.96) 60%,
        rgba(6, 63, 53, 0.86)
      );
  }
  :root[data-theme='aero'] .explain-panel,
  :root[data-theme='aero'] .results-footer-card {
    background:
      var(--aero-reflection),
      radial-gradient(
        ellipse at 95% 100%,
        rgba(27, 207, 141, 0.27),
        transparent 60%
      ),
      linear-gradient(
        115deg,
        rgba(5, 83, 62, 0.88),
        rgba(2, 30, 36, 0.9) 48%,
        rgba(3, 85, 60, 0.85)
      );
    backdrop-filter: blur(8px) saturate(1.2);
    border-color: #79eac7;
    box-shadow:
      var(--aero-depth),
      inset 0 0 14px rgba(53, 235, 189, 0.18);
  }
  :root[data-theme='aero'] .explain-panel p,
  :root[data-theme='aero'] .report-preview-copy > p,
  :root[data-theme='aero'] .feature-card p {
    color: #d0e5e8;
  }
  :root[data-theme='aero'] .faq-item {
    transition:
      border-color 0.18s,
      box-shadow 0.18s;
  }
  :root[data-theme='aero'] .faq-item summary::after {
    color: #a2ffe0;
    text-shadow:
      0 0 6px rgba(94, 255, 208, 0.5),
      0 1px 1px #02523e;
  }
  :root[data-theme='aero'] .faq-item:hover,
  :root[data-theme='aero'] .faq-item[open] {
    border-color: #9dfce6;
    box-shadow:
      var(--aero-depth),
      0 0 14px rgba(46, 225, 201, 0.2);
  }
  :root[data-theme='aero'] .results-body {
    background: radial-gradient(
      ellipse at 90% 0,
      #104251,
      #041e28 35%,
      #03181f 80%
    );
  }
  :root[data-theme='aero'] .results-hero h1 {
    text-shadow: 0 2px 10px rgba(69, 197, 218, 0.15);
  }
  :root[data-theme='aero'] .secondary-button,
  :root[data-theme='aero'] .secondary-link-button,
  :root[data-theme='aero'] .filter-button,
  :root[data-theme='aero'] .clear-filters,
  :root[data-theme='aero'] .priority-toggle-label {
    color: #e4f4f5;
    background:
      linear-gradient(175deg, rgba(194, 239, 255, 0.21), transparent 45%),
      linear-gradient(180deg, #1e4858, #082733);
    border-color: #7fb1bd;
    box-shadow:
      inset 0 1px 0 rgba(225, 253, 255, 0.55),
      inset 0 -1px 0 rgba(115, 207, 232, 0.22),
      0 3px 7px rgba(0, 12, 22, 0.25);
  }
  :root[data-theme='aero'] .secondary-button:hover,
  :root[data-theme='aero'] .secondary-link-button:hover,
  :root[data-theme='aero'] .filter-button:hover,
  :root[data-theme='aero'] .clear-filters:hover {
    border-color: #b0edee;
    box-shadow:
      inset 0 1px 0 rgba(189, 238, 247, 0.3),
      0 0 10px rgba(35, 184, 192, 0.15);
  }
  :root[data-theme='aero'] .filter-button.active {
    background: linear-gradient(180deg, #12644e, #063c35);
    border-color: #7afacb;
  }
  :root[data-theme='aero'] .finding-tools,
  :root[data-theme='aero'] .issue-priority-group,
  :root[data-theme='aero'] .empty-results,
  :root[data-theme='aero'] .catalog-summary,
  :root[data-theme='aero'] .catalog-limitations,
  :root[data-theme='aero'] .catalog-limit-grid article {
    background: var(--aero-glass);
    border-color: #5a8d9a;
    box-shadow: var(--aero-depth);
  }
  :root[data-theme='aero'] .finding-search input,
  :root[data-theme='aero'] .finding-select select {
    color: var(--ink);
    background: #031e29;
    border-color: #7ca7b4;
    box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.3);
  }
  :root[data-theme='aero'] .status-banner,
  :root[data-theme='aero'] .metric-card {
    box-shadow:
      inset 0 1px 0 rgba(216, 246, 255, 0.6),
      inset 0 -1px 0 rgba(156, 220, 238, 0.25),
      0 7px 16px rgba(0, 9, 19, 0.32);
  }
  :root[data-theme='aero'] .metric-high,
  :root[data-theme='aero'] .preview-high {
    background:
      var(--aero-reflection), linear-gradient(135deg, #451e2d, #271c29);
    border-color: #986074 !important;
  }
  :root[data-theme='aero'] .metric-warning,
  :root[data-theme='aero'] .preview-warning {
    background:
      var(--aero-reflection), linear-gradient(135deg, #42381d, #262526);
    border-color: #9d844d !important;
  }
  :root[data-theme='aero'] .metric-info,
  :root[data-theme='aero'] .preview-info {
    background:
      var(--aero-reflection), linear-gradient(135deg, #123a57, #0c2435);
    border-color: #5487a6 !important;
  }
  :root[data-theme='aero'] .metric-technical {
    background:
      var(--aero-reflection), linear-gradient(135deg, #372a4b, #201e36);
    border-color: #87749e;
  }
  :root[data-theme='aero'] .issue-priority-high > .issue-priority-heading {
    background: linear-gradient(135deg, #451e2d, #291d2b);
  }
  :root[data-theme='aero'] .issue-priority-warning > .issue-priority-heading {
    background: linear-gradient(135deg, #42381d, #282627);
  }
  :root[data-theme='aero'] .issue-priority-info > .issue-priority-heading {
    background: linear-gradient(135deg, #123a57, #0d2534);
  }
  :root[data-theme='aero'] .finding-card {
    background:
      linear-gradient(175deg, rgba(141, 218, 237, 0.08), transparent 80px),
      rgba(4, 26, 38, 0.94);
    box-shadow: inset 0 1px 0 rgba(134, 213, 238, 0.16);
  }
  :root[data-theme='aero'] .suggestion-row {
    background: linear-gradient(110deg, #104336, #082d30);
    color: #dbf5ea;
    border-color: #68c4a2;
  }
  :root[data-theme='aero'] .technical-evidence-item,
  :root[data-theme='aero'] .technical-evidence-note {
    background: #092632;
    border-color: #4b7c8c;
  }
  :root[data-theme='aero'] .table-wrap {
    background: linear-gradient(
      135deg,
      rgba(20, 60, 70, 0.8),
      rgba(4, 28, 40, 0.94)
    );
    border-color: #74a6b1;
    box-shadow: inset 0 1px 0 rgba(183, 242, 250, 0.22);
  }
  :root[data-theme='aero'] .sheet-table th {
    background: linear-gradient(180deg, #235365, #123b4b);
    color: #effcff;
  }
  :root[data-theme='aero'] .dependency-block {
    background:
      var(--aero-reflection), linear-gradient(120deg, #105444, #083739);
    border-color: #69b69c;
    box-shadow:
      inset 0 1px 0 rgba(141, 255, 209, 0.2),
      0 0 10px rgba(36, 201, 159, 0.1);
  }
  :root[data-theme='aero'] .coverage-limitations-section {
    background:
      var(--aero-reflection), linear-gradient(135deg, #143b50, #092631);
    border-color: #6395b0;
    box-shadow: var(--aero-depth);
  }
  :root[data-theme='aero'] .coverage-limit-card {
    background: var(--aero-reflection), #102e40;
    border-color: #527b92;
  }
  :root[data-theme='aero'] .category-count {
    background:
      var(--aero-reflection), linear-gradient(135deg, #154e4c, #0a2c34);
    border-color: #569d91;
    border-left-color: #7dfbc7;
    box-shadow:
      inset 0 1px 0 rgba(207, 255, 244, 0.5),
      inset 0 -1px 0 rgba(87, 220, 199, 0.2),
      0 5px 12px rgba(0, 13, 23, 0.3);
  }
  :root[data-theme='aero']
    :is(
      .nav-wrap,
      .upload-card,
      .feature-card,
      .report-preview,
      .explain-panel,
      .faq-item,
      .metric-card,
      .results-footer-card
    ) {
    position: relative;
  }
  :root[data-theme='aero']
    :is(
      .nav-wrap,
      .upload-card,
      .feature-card,
      .report-preview,
      .explain-panel,
      .faq-item,
      .metric-card,
      .results-footer-card
    )::before {
    content: '';
    position: absolute;
    top: 0;
    left: 12px;
    right: 12px;
    height: 1px;
    background: var(--aero-specular);
    pointer-events: none;
    border-radius: inherit;
  }
  :root[data-theme='aero'] .results-hero {
    background: radial-gradient(
      ellipse at 5% 0,
      rgba(147, 232, 255, 0.09),
      transparent 70%
    );
    box-shadow:
      0 1px 0 rgba(141, 225, 241, 0.3),
      0 12px 18px -16px rgba(98, 226, 221, 0.5);
  }
  :root[data-theme='aero'] .site-footer {
    background: rgba(3, 26, 34, 0.82);
    border-color: #397d7a;
  }
}

@media screen and (max-width: 640px) {
  :root[data-theme='aero'] .site-header {
    padding: 8px 0;
  }
  :root[data-theme='aero'] .nav-wrap {
    padding: 15px 12px;
    border-radius: 14px;
  }
  :root[data-theme='aero'] .hero-section::before {
    background-position: center bottom;
    background-size: auto 560px;
    opacity: 0.85;
  }
  :root[data-theme='aero'] .report-preview-panel::before {
    background-image:
      linear-gradient(
        180deg,
        rgba(0, 18, 24, 0.76),
        rgba(0, 18, 24, 0.76) 44%,
        rgba(0, 18, 24, 0.25) 58%,
        transparent 78%
      ),
      url('aero/demo-atmosphere.webp');
    background-position:
      center,
      center bottom;
    background-size:
      100% 100%,
      auto 560px;
    opacity: 0.85;
  }
  :root[data-theme='aero'] body,
  :root[data-theme='aero'] .results-body {
    background: radial-gradient(
      ellipse at 80% 5%,
      #05282f,
      #00171c 40%,
      #00151b 80%
    );
  }
  :root[data-theme='aero'] body::after {
    height: 420px;
    background-size: auto 420px;
  }
}

@media screen and (prefers-reduced-motion: reduce) {
  :root[data-theme='aero']
    :is(
      .nav-action,
      .primary-button,
      .primary-link-button,
      .report-preview-copy .secondary-link-button
    )::after {
    animation: none !important;
    transform: none;
    opacity: 0;
  }
}
