/* Generated design d05-dev-docs (docs/design/pool), prefix fpw- */
:root {
      --fpw-bg: #ffffff;
      --fpw-bg-alt: #f8fafc;
      --fpw-bg-subtle: #f1f5f9;
      --fpw-bg-code: #0f172a;
      --fpw-bg-code-panel: #1e293b;
      --fpw-text: #0f172a;
      --fpw-text-sec: #334155;
      --fpw-text-muted: #475569;
      --fpw-border: #e2e8f0;
      --fpw-border-strong: #cbd5e1;
      --fpw-indigo: #4338ca;
      --fpw-indigo-bg: #eef2ff;
      --fpw-indigo-border: #c7d2fe;
      --fpw-teal: #0f766e;
      --fpw-teal-bg: #f0fdfa;
      --fpw-teal-border: #99f6e4;
      --fpw-amber: #b45309;
      --fpw-amber-bg: #fffbeb;
      --fpw-amber-border: #fde68a;
      --fpw-code-text: #f8fafc;
      --fpw-code-muted: #94a3b8;
      --fpw-code-teal: #2dd4bf;
      --fpw-code-amber: #fbbf24;
      --fpw-code-indigo: #818cf8;
      --fpw-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      --fpw-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
      --fpw-max-w: 1380px;
      --fpw-radius: 6px;
      --fpw-radius-sm: 4px;
    }
*, *::before, *::after {
      box-sizing: border-box;
    }
html {
      font-family: var(--fpw-sans);
      color: var(--fpw-text);
      background-color: var(--fpw-bg);
      line-height: 1.6;
      -webkit-text-size-adjust: 100%;
      scroll-behavior: smooth;
    }
body {
      margin: 0;
      padding: 0;
      overflow-x: hidden;
      font-variant-numeric: tabular-nums;
    }
a {
      color: var(--fpw-indigo);
      text-decoration: underline;
      text-underline-offset: 3px;
      text-decoration-thickness: 1px;
    }
a:hover {
      color: #312e81;
      text-decoration-thickness: 2px;
    }
a:focus-visible,
    button:focus-visible,
    select:focus-visible,
    input:focus-visible,
    summary:focus-visible {
      outline: 2px solid var(--fpw-indigo);
      outline-offset: 2px;
    }
.fpw-skip {
      position: absolute;
      top: -100px;
      left: 1rem;
      background: var(--fpw-indigo);
      color: #ffffff;
      padding: 0.75rem 1.25rem;
      font-family: var(--fpw-mono);
      font-size: 0.875rem;
      font-weight: 600;
      text-decoration: none;
      border-radius: var(--fpw-radius-sm);
      z-index: 9999;
    }
.fpw-skip:focus {
      top: 1rem;
    }
.fpw-header {
      position: sticky;
      top: 0;
      z-index: 100;
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(8px);
      border-bottom: 1px solid var(--fpw-border);
    }
.fpw-header-inner {
      max-width: var(--fpw-max-w);
      margin: 0 auto;
      padding: 0.5rem 1rem;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
    }
.fpw-brand-wrap {
      display: flex;
      align-items: baseline;
      gap: 0.75rem;
      flex-wrap: wrap;
    }
.fpw-brand {
      font-family: var(--fpw-mono);
      font-weight: 700;
      font-size: 1.125rem;
      color: var(--fpw-text);
      text-decoration: none;
      letter-spacing: -0.02em;
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      min-height: 44px;
    }
.fpw-brand::before {
      content: "{}";
      color: var(--fpw-indigo);
      font-weight: 700;
      background: var(--fpw-indigo-bg);
      border: 1px solid var(--fpw-indigo-border);
      padding: 0.1rem 0.35rem;
      border-radius: var(--fpw-radius-sm);
      font-size: 0.875rem;
    }
.fpw-tagline {
      font-size: 0.8125rem;
      color: var(--fpw-text-muted);
      display: none;
    }
@media (min-width: 900px) {
      .fpw-tagline {
        display: inline;
      }
    }
.fpw-nav {
      display: flex;
      align-items: center;
      gap: 0.25rem;
      overflow-x: auto;
      max-width: 100%;
      padding-bottom: 2px;
    }
.fpw-nav-link {
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text-sec);
      text-decoration: none;
      padding: 0.5rem 0.75rem;
      border-radius: var(--fpw-radius-sm);
      white-space: nowrap;
      min-height: 44px;
      display: inline-flex;
      align-items: center;
      border: 1px solid transparent;
    }
.fpw-nav-link:hover {
      background: var(--fpw-bg-alt);
      color: var(--fpw-text);
    }
.fpw-nav-link-current {
      background: var(--fpw-indigo-bg);
      color: var(--fpw-indigo);
      border-color: var(--fpw-indigo-border);
      font-weight: 600;
    }
.fpw-shell {
      max-width: var(--fpw-max-w);
      margin: 0 auto;
      padding: 1.5rem 1rem 4rem;
    }
@media (min-width: 1024px) {
      .fpw-shell-docs {
        display: grid;
        grid-template-columns: 230px minmax(0, 1fr);
        gap: 3rem;
        align-items: start;
        padding: 2.5rem 1.5rem 5rem;
      }
    }
.fpw-sidebar {
      margin-bottom: 1.5rem;
      background: var(--fpw-bg-alt);
      border: 1px solid var(--fpw-border);
      border-radius: var(--fpw-radius);
      padding: 1rem;
    }
@media (min-width: 1024px) {
      .fpw-sidebar {
        position: sticky;
        top: 4.5rem;
        margin-bottom: 0;
        background: transparent;
        border: none;
        border-right: 1px solid var(--fpw-border);
        border-radius: 0;
        padding: 0 1.25rem 0 0;
        max-height: calc(100vh - 6rem);
        overflow-y: auto;
      }
    }
.fpw-sidebar-title {
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--fpw-text-muted);
      margin: 0 0 0.75rem 0;
      font-weight: 700;
    }
.fpw-toc-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem;
    }
@media (min-width: 1024px) {
      .fpw-toc-list {
        flex-direction: column;
        gap: 0.15rem;
      }
    }
.fpw-toc-link {
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text-sec);
      text-decoration: none;
      padding: 0.45rem 0.65rem;
      border-radius: var(--fpw-radius-sm);
      display: inline-flex;
      align-items: center;
      min-height: 44px;
      border-left: 2px solid transparent;
    }
@media (min-width: 1024px) {
      .fpw-toc-link {
        display: flex;
        min-height: 38px;
        padding: 0.4rem 0.65rem;
      }
    }
.fpw-toc-link:hover {
      background: var(--fpw-bg-subtle);
      color: var(--fpw-indigo);
      border-left-color: var(--fpw-indigo);
    }
.fpw-sidebar-meta {
      margin-top: 1.5rem;
      padding-top: 1.25rem;
      border-top: 1px solid var(--fpw-border);
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      color: var(--fpw-text-muted);
      display: none;
    }
@media (min-width: 1024px) {
      .fpw-sidebar-meta {
        display: block;
      }
    }
.fpw-main {
      min-width: 0;
      max-width: 960px;
    }
.fpw-breadcrumbs {
      margin-bottom: 0.75rem;
    }
.fpw-breadcrumb-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem;
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text-muted);
    }
.fpw-breadcrumb-item + .fpw-breadcrumb-item::before {
      content: "/";
      margin-right: 0.35rem;
      color: var(--fpw-border-strong);
    }
.fpw-breadcrumb-item a {
      color: var(--fpw-text-sec);
      text-decoration: none;
      padding: 0.25rem 0;
      display: inline-block;
    }
.fpw-breadcrumb-item a:hover {
      color: var(--fpw-indigo);
      text-decoration: underline;
    }
.fpw-kicker {
      display: inline-block;
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: var(--fpw-teal);
      background: var(--fpw-teal-bg);
      border: 1px solid var(--fpw-teal-border);
      padding: 0.2rem 0.55rem;
      border-radius: var(--fpw-radius-sm);
      margin: 0 0 0.75rem 0;
    }
.fpw-h1 {
      font-size: clamp(1.75rem, 3.5vw, 2.5rem);
      line-height: 1.2;
      letter-spacing: -0.025em;
      margin: 0 0 1rem 0;
      color: var(--fpw-text);
      font-weight: 800;
      overflow-wrap: break-word;
    }
.fpw-standfirst {
      font-size: 1.125rem;
      line-height: 1.65;
      color: var(--fpw-text-sec);
      margin: 0 0 1.25rem 0;
    }
.fpw-standfirst p {
      margin: 0 0 0.75rem 0;
    }
.fpw-standfirst p:last-child {
      margin-bottom: 0;
    }
.fpw-meta-bar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.75rem 1.25rem;
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text-muted);
      margin-bottom: 1rem;
      padding-bottom: 1rem;
      border-bottom: 1px solid var(--fpw-border);
    }
.fpw-meta-chip {
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
    }
.fpw-meta-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--fpw-teal);
      display: inline-block;
    }
.fpw-disclosure {
      background: var(--fpw-bg-alt);
      border: 1px solid var(--fpw-border);
      border-left: 3px solid var(--fpw-border-strong);
      border-radius: var(--fpw-radius-sm);
      padding: 0.65rem 0.9rem;
      font-size: 0.8125rem;
      color: var(--fpw-text-muted);
      margin-bottom: 1.25rem;
    }
.fpw-disclosure-label {
      font-family: var(--fpw-mono);
      font-weight: 700;
      color: var(--fpw-text-sec);
      margin-right: 0.35rem;
    }
.fpw-sortrule {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem;
      background: var(--fpw-bg-subtle);
      border: 1px solid var(--fpw-border-strong);
      box-shadow: inset 0 -2px 0 var(--fpw-border);
      border-radius: var(--fpw-radius);
      padding: 0.5rem 0.85rem;
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text-sec);
      margin: 0 0 1.75rem 0;
    }
.fpw-sortrule-kbd {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      background: #ffffff;
      border: 1px solid var(--fpw-border-strong);
      box-shadow: 0 1px 0 var(--fpw-border-strong);
      padding: 0.15rem 0.45rem;
      border-radius: var(--fpw-radius-sm);
      font-weight: 700;
      color: var(--fpw-indigo);
    }
.fpw-snapshot {
      margin: 0 0 2.5rem 0;
      border: 1px solid var(--fpw-border);
      border-radius: var(--fpw-radius);
      background: var(--fpw-bg);
      overflow: hidden;
    }
.fpw-section-bar {
      background: var(--fpw-bg-alt);
      border-bottom: 1px solid var(--fpw-border);
      padding: 0.65rem 1rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
    }
.fpw-section-bar-title {
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: var(--fpw-text-sec);
      margin: 0;
    }
.fpw-snapshot-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
      gap: 1px;
      background: var(--fpw-border);
    }
.fpw-snapshot-tile {
      background: var(--fpw-bg);
      padding: 1rem;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
.fpw-snapshot-label {
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      color: var(--fpw-text-muted);
      margin-bottom: 0.35rem;
    }
.fpw-snapshot-value {
      font-family: var(--fpw-mono);
      font-size: 1.375rem;
      font-weight: 700;
      color: var(--fpw-indigo);
      font-variant-numeric: tabular-nums;
      line-height: 1.25;
      margin-bottom: 0.35rem;
    }
.fpw-snapshot-note {
      font-size: 0.75rem;
      color: var(--fpw-text-muted);
      line-height: 1.4;
    }
.fpw-section {
      margin: 0 0 3rem 0;
      scroll-margin-top: 5rem;
    }
.fpw-h2 {
      font-size: 1.375rem;
      font-weight: 700;
      letter-spacing: -0.015em;
      color: var(--fpw-text);
      margin: 0 0 0.5rem 0;
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }
.fpw-section-note {
      font-size: 0.9375rem;
      color: var(--fpw-text-muted);
      margin: 0 0 1.25rem 0;
    }
.fpw-pickbox-wrap {
      border: 1px solid var(--fpw-border-strong);
      border-radius: var(--fpw-radius);
      overflow: hidden;
      background: var(--fpw-bg);
    }
.fpw-pick-colhead {
      display: none;
    }
@media (min-width: 768px) {
      .fpw-pick-colhead {
        display: grid;
        grid-template-columns: 56px minmax(200px, 1.5fr) repeat(3, minmax(95px, 120px));
        gap: 0.75rem;
        align-items: center;
        background: var(--fpw-bg-subtle);
        border-bottom: 1px solid var(--fpw-border-strong);
        padding: 0.65rem 1.25rem;
        font-family: var(--fpw-mono);
        font-size: 0.75rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--fpw-text-sec);
      }

      .fpw-pick-colhead-num {
        text-align: right;
      }
    }
.fpw-card-row {
      border-bottom: 1px solid var(--fpw-border);
      background: var(--fpw-bg);
      scroll-margin-top: 5rem;
    }
.fpw-card-row:nth-child(even) {
      background: #fcfdfe;
    }
.fpw-card-row:last-child {
      border-bottom: none;
    }
.fpw-card-row:first-of-type {
      background: linear-gradient(to bottom, #f5f7ff 0%, #ffffff 140px);
      border-left: 4px solid var(--fpw-indigo);
    }
.fpw-card-top {
      padding: 1.25rem;
      display: flex;
      flex-direction: column;
      gap: 1rem;
      border-bottom: 1px dashed var(--fpw-border);
    }
@media (min-width: 768px) {
      .fpw-card-top {
        display: grid;
        grid-template-columns: 56px minmax(200px, 1.5fr) minmax(285px, 360px);
        gap: 0.75rem;
        align-items: center;
      }
    }
.fpw-card-rank-wrap {
      display: flex;
      align-items: center;
      gap: 0.75rem;
    }
.fpw-card-rank {
      font-family: var(--fpw-mono);
      font-size: 1.25rem;
      font-weight: 800;
      width: 40px;
      height: 40px;
      border-radius: var(--fpw-radius-sm);
      background: var(--fpw-bg-subtle);
      border: 1px solid var(--fpw-border-strong);
      color: var(--fpw-text);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-variant-numeric: tabular-nums;
      flex-shrink: 0;
    }
.fpw-card-row:first-of-type .fpw-card-rank {
      background: var(--fpw-indigo);
      border-color: var(--fpw-indigo);
      color: #ffffff;
    }
.fpw-card-identity {
      min-width: 0;
    }
.fpw-card-badge {
      display: inline-block;
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      font-weight: 700;
      padding: 0.15rem 0.5rem;
      border-radius: var(--fpw-radius-sm);
      background: var(--fpw-amber-bg);
      color: var(--fpw-amber);
      border: 1px solid var(--fpw-amber-border);
      margin-bottom: 0.35rem;
    }
.fpw-card-row:first-of-type .fpw-card-badge {
      background: var(--fpw-teal-bg);
      color: var(--fpw-teal);
      border-color: var(--fpw-teal-border);
    }
.fpw-card-heading {
      font-size: 1.0625rem;
      font-weight: 700;
      margin: 0 0 0.25rem 0;
      line-height: 1.35;
      color: var(--fpw-text);
      overflow-wrap: break-word;
    }
.fpw-card-price-line {
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text-muted);
      margin: 0;
    }
.fpw-card-figures {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.5rem;
      background: var(--fpw-bg-alt);
      border: 1px solid var(--fpw-border);
      border-radius: var(--fpw-radius-sm);
      padding: 0.65rem;
    }
@media (min-width: 768px) {
      .fpw-card-figures {
        background: transparent;
        border: none;
        padding: 0;
        gap: 0.75rem;
      }
    }
.fpw-figure-col {
      text-align: right;
      padding: 0 0.25rem;
    }
.fpw-figure-label {
      display: block;
      font-family: var(--fpw-mono);
      font-size: 0.6875rem;
      text-transform: uppercase;
      letter-spacing: 0.03em;
      color: var(--fpw-text-muted);
      margin-bottom: 0.15rem;
    }
@media (min-width: 768px) {
      .fpw-figure-label {
        display: none;
      }
    }
.fpw-figure-val {
      display: block;
      font-family: var(--fpw-mono);
      font-size: 1.0625rem;
      font-weight: 700;
      color: var(--fpw-text);
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }
.fpw-figure-col:nth-child(2) .fpw-figure-val {
      color: var(--fpw-amber);
    }
.fpw-figure-col:nth-child(3) .fpw-figure-val {
      color: var(--fpw-indigo);
      font-size: 1.125rem;
      background: var(--fpw-indigo-bg);
      padding: 0.15rem 0.4rem;
      border-radius: var(--fpw-radius-sm);
      display: inline-block;
    }
.fpw-card-body {
      padding: 1.25rem;
      display: flex;
      flex-direction: column;
      gap: 1.25rem;
    }
.fpw-card-verdict {
      font-size: 0.9375rem;
      color: var(--fpw-text-sec);
      line-height: 1.6;
    }
.fpw-card-verdict p {
      margin: 0 0 0.6rem 0;
    }
.fpw-card-verdict p:last-child {
      margin-bottom: 0;
    }
.fpw-card-specs {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1rem;
    }
@media (min-width: 680px) {
      .fpw-card-specs {
        grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
      }
    }
.fpw-spec-box {
      background: var(--fpw-bg-alt);
      border: 1px solid var(--fpw-border);
      border-radius: var(--fpw-radius-sm);
      padding: 0.85rem;
    }
.fpw-spec-title {
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      margin: 0 0 0.5rem 0;
      display: flex;
      align-items: center;
      gap: 0.35rem;
    }
.fpw-spec-title-inc {
      color: var(--fpw-indigo);
    }
.fpw-spec-title-pros {
      color: var(--fpw-teal);
    }
.fpw-spec-title-cons {
      color: var(--fpw-amber);
    }
.fpw-spec-list {
      list-style: none;
      margin: 0;
      padding: 0;
      font-size: 0.875rem;
      color: var(--fpw-text-sec);
    }
.fpw-spec-list li {
      position: relative;
      padding-left: 1.15rem;
      margin-bottom: 0.35rem;
      line-height: 1.45;
    }
.fpw-spec-list li:last-child {
      margin-bottom: 0;
    }
.fpw-spec-list-inc li::before {
      content: "✓";
      font-family: var(--fpw-mono);
      font-weight: 700;
      color: var(--fpw-indigo);
      position: absolute;
      left: 0;
    }
.fpw-spec-list-pros li::before {
      content: "+";
      font-family: var(--fpw-mono);
      font-weight: 700;
      color: var(--fpw-teal);
      position: absolute;
      left: 0;
    }
.fpw-spec-list-cons li::before {
      content: "-";
      font-family: var(--fpw-mono);
      font-weight: 700;
      color: var(--fpw-amber);
      position: absolute;
      left: 0;
    }
.fpw-card-footer {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.75rem 1rem;
      padding-top: 0.75rem;
      border-top: 1px solid var(--fpw-border);
    }
.fpw-btn-visit {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.4rem;
      min-height: 44px;
      padding: 0.55rem 1.1rem;
      background: var(--fpw-indigo);
      color: #ffffff;
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      font-weight: 600;
      text-decoration: none;
      border-radius: var(--fpw-radius-sm);
      border: 1px solid var(--fpw-indigo);
      white-space: nowrap;
    }
.fpw-btn-visit:hover {
      background: #312e81;
      border-color: #312e81;
      color: #ffffff;
    }
.fpw-btn-visit-sm {
      min-height: 44px;
      padding: 0.4rem 0.75rem;
      font-size: 0.75rem;
    }
.fpw-disclosure-short {
      display: block;
      font-size: 0.75rem;
      color: var(--fpw-text-muted);
      line-height: 1.35;
    }
.fpw-table-scroll {
      width: 100%;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      border: 1px solid var(--fpw-border-strong);
      border-radius: var(--fpw-radius);
      background: var(--fpw-bg);
    }
.fpw-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.875rem;
      font-variant-numeric: tabular-nums;
    }
.fpw-table th,
    .fpw-table td {
      padding: 0.75rem 0.9rem;
      border-bottom: 1px solid var(--fpw-border);
      vertical-align: middle;
      white-space: normal;
      overflow-wrap: normal;
      word-break: normal;
    }
.fpw-table thead th {
      background: var(--fpw-bg-subtle);
      color: var(--fpw-text-sec);
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      border-bottom: 2px solid var(--fpw-border-strong);
      text-align: left;
      position: sticky;
      top: 0;
      z-index: 2;
    }
.fpw-table tbody tr:nth-child(even) {
      background: var(--fpw-bg-alt);
    }
.fpw-table tbody tr:hover {
      background: #f1f5f9;
    }
.fpw-table tbody tr:last-child th,
    .fpw-table tbody tr:last-child td {
      border-bottom: none;
    }
.fpw-table-summary th:first-child,
    .fpw-table-summary td:first-child {
      font-family: var(--fpw-mono);
      font-weight: 700;
      width: 44px;
      text-align: right;
      color: var(--fpw-text-muted);
    }
.fpw-table-summary th:nth-child(2),
    .fpw-table-summary td:nth-child(2) {
      font-weight: 600;
      min-width: 160px;
    }
.fpw-table-summary th:nth-child(n+3):not(:last-child),
    .fpw-table-summary td:nth-child(n+3):not(:last-child) {
      font-family: var(--fpw-mono);
      text-align: right;
      font-weight: 600;
      color: var(--fpw-text);
      white-space: nowrap;
    }
.fpw-table-summary td:nth-child(5) {
      color: var(--fpw-indigo);
      font-weight: 700;
    }
.fpw-table-summary td:last-child {
      text-align: right;
      min-width: 190px;
    }
.fpw-summary-cta-cell {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 0.25rem;
    }
.fpw-table-fees tbody th {
      text-align: left;
      font-weight: 600;
      color: var(--fpw-text);
      min-width: 140px;
    }
.fpw-table-fees thead th:nth-child(2),
    .fpw-table-fees tbody td:nth-child(2),
    .fpw-table-fees thead th:nth-child(3),
    .fpw-table-fees tbody td:nth-child(3),
    .fpw-table-fees thead th:nth-child(5),
    .fpw-table-fees tbody td:nth-child(5) {
      font-family: var(--fpw-mono);
    }
.fpw-table-fees thead th:nth-child(2),
    .fpw-table-fees tbody td:nth-child(2) {
      text-align: right;
      font-weight: 700;
      color: var(--fpw-indigo);
      white-space: nowrap;
    }
.fpw-table-fees tbody tr.fpw-row-highlight {
      background: var(--fpw-teal-bg);
      border-top: 2px solid var(--fpw-teal-border);
    }
.fpw-table-fees tbody tr.fpw-row-highlight th,
    .fpw-table-fees tbody tr.fpw-row-highlight td {
      font-weight: 700;
      color: var(--fpw-teal);
    }
.fpw-table-note {
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      color: var(--fpw-text-muted);
      margin: 0.65rem 0 0 0;
    }
.fpw-calc {
      background: var(--fpw-bg-code);
      color: var(--fpw-code-text);
      border: 1px solid #334155;
      border-radius: var(--fpw-radius);
      overflow: hidden;
      margin: 0 0 3rem 0;
      box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
    }
.fpw-calc-bar {
      background: var(--fpw-bg-code-panel);
      border-bottom: 1px solid #334155;
      padding: 0.65rem 1.25rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
.fpw-calc-bar-dots {
      display: flex;
      gap: 0.4rem;
    }
.fpw-calc-bar-dots span {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: #475569;
    }
.fpw-calc-bar-dots span:nth-child(1) { background: #818cf8; }
.fpw-calc-bar-dots span:nth-child(2) { background: #2dd4bf; }
.fpw-calc-bar-dots span:nth-child(3) { background: #fbbf24; }
.fpw-calc-inner {
      padding: 1.5rem 1.25rem;
    }
.fpw-calc-title {
      font-family: var(--fpw-mono);
      font-size: 1.25rem;
      font-weight: 700;
      color: #ffffff;
      margin: 0 0 0.5rem 0;
    }
.fpw-calc-intro {
      font-size: 0.9375rem;
      color: var(--fpw-code-muted);
      margin: 0 0 1.25rem 0;
    }
.fpw-calc form {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 1rem 1.5rem;
    }
.fpw-calc label {
      font-family: var(--fpw-mono);
      font-size: 0.875rem;
      color: var(--fpw-code-text);
      display: inline-flex;
      align-items: center;
      gap: 0.65rem;
      min-height: 44px;
      cursor: pointer;
    }
.fpw-calc select {
      font-family: var(--fpw-mono);
      font-size: 0.9375rem;
      font-weight: 700;
      background: var(--fpw-bg-code-panel);
      color: var(--fpw-code-amber);
      border: 1px solid #475569;
      border-radius: var(--fpw-radius-sm);
      padding: 0.5rem 0.85rem;
      min-height: 44px;
      min-width: 72px;
      cursor: pointer;
    }
.fpw-calc input[type="checkbox"] {
      width: 20px;
      height: 20px;
      accent-color: var(--fpw-code-teal);
      cursor: pointer;
    }
.fpw-calc output {
      display: block;
      width: 100%;
      margin-top: 0.5rem;
      padding: 1rem 1.25rem;
      background: var(--fpw-bg-code-panel);
      border: 1px solid #334155;
      border-left: 4px solid var(--fpw-code-teal);
      border-radius: var(--fpw-radius-sm);
      font-family: var(--fpw-mono);
      font-size: 0.9375rem;
      font-weight: 600;
      line-height: 1.6;
      color: var(--fpw-code-teal);
      font-variant-numeric: tabular-nums;
    }
.fpw-prose-section {
      padding-bottom: 1.5rem;
      margin-bottom: 2rem;
      border-bottom: 1px solid var(--fpw-border);
      scroll-margin-top: 5rem;
    }
.fpw-prose-section:last-of-type {
      border-bottom: none;
    }
.fpw-prose {
      font-size: 1rem;
      color: var(--fpw-text-sec);
      line-height: 1.7;
    }
.fpw-prose p {
      margin: 0 0 1rem 0;
    }
.fpw-prose p:last-child {
      margin-bottom: 0;
    }
.fpw-faq-list {
      display: flex;
      flex-direction: column;
      gap: 0.65rem;
    }
.fpw-faq-item {
      border: 1px solid var(--fpw-border-strong);
      border-radius: var(--fpw-radius);
      background: var(--fpw-bg);
      overflow: hidden;
    }
.fpw-faq-summary {
      font-family: var(--fpw-mono);
      font-size: 0.9375rem;
      font-weight: 600;
      color: var(--fpw-text);
      padding: 0.85rem 1.1rem;
      cursor: pointer;
      min-height: 44px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      list-style: none;
      background: var(--fpw-bg-alt);
    }
.fpw-faq-summary::-webkit-details-marker {
      display: none;
    }
.fpw-faq-summary::after {
      content: "+";
      font-family: var(--fpw-mono);
      font-size: 1.125rem;
      color: var(--fpw-indigo);
      font-weight: 700;
      flex-shrink: 0;
    }
.fpw-faq-item[open] .fpw-faq-summary {
      border-bottom: 1px solid var(--fpw-border);
      background: var(--fpw-indigo-bg);
      color: var(--fpw-indigo);
    }
.fpw-faq-item[open] .fpw-faq-summary::after {
      content: "−";
    }
.fpw-faq-answer {
      padding: 1rem 1.1rem;
      font-size: 0.9375rem;
      color: var(--fpw-text-sec);
      line-height: 1.6;
    }
.fpw-faq-answer p {
      margin: 0;
    }
.fpw-related-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 0.75rem;
      list-style: none;
      margin: 0;
      padding: 0;
    }
.fpw-related-link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      min-height: 44px;
      padding: 0.75rem 1rem;
      background: var(--fpw-bg-alt);
      border: 1px solid var(--fpw-border-strong);
      border-radius: var(--fpw-radius-sm);
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      font-weight: 600;
      color: var(--fpw-text);
      text-decoration: none;
    }
.fpw-related-link:hover {
      border-color: var(--fpw-indigo);
      background: var(--fpw-indigo-bg);
      color: var(--fpw-indigo);
    }
.fpw-sources-list {
      margin: 0;
      padding: 0 0 0 1.5rem;
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text-muted);
    }
.fpw-sources-list li {
      margin-bottom: 0.5rem;
      line-height: 1.5;
    }
.fpw-footer {
      border-top: 1px solid var(--fpw-border-strong);
      background: var(--fpw-bg-alt);
      padding: 3rem 1rem;
      margin-top: 4rem;
    }
.fpw-footer-inner {
      max-width: var(--fpw-max-w);
      margin: 0 auto;
    }
.fpw-footer-cols {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 2rem;
      margin-bottom: 2.5rem;
    }
.fpw-footer-col-title {
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: var(--fpw-text);
      margin: 0 0 0.75rem 0;
    }
.fpw-footer-links {
      list-style: none;
      margin: 0;
      padding: 0;
    }
.fpw-footer-links li {
      margin-bottom: 0.25rem;
    }
.fpw-footer-links a {
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text-sec);
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      min-height: 44px;
    }
.fpw-footer-links a:hover {
      color: var(--fpw-indigo);
      text-decoration: underline;
    }
.fpw-footer-bottom {
      padding-top: 1.5rem;
      border-top: 1px solid var(--fpw-border);
      font-size: 0.8125rem;
      color: var(--fpw-text-muted);
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }
.fpw-main-home {
      min-width: 0;
      max-width: 1120px;
      margin: 0 auto;
    }
.fpw-card-row-first {
      background: linear-gradient(to bottom, #f5f7ff 0%, #ffffff 140px);
      border-left: 4px solid var(--fpw-indigo);
    }
.fpw-card-row-first .fpw-card-rank {
      background: var(--fpw-indigo);
      border-color: var(--fpw-indigo);
      color: #ffffff;
    }
.fpw-card-row-first .fpw-card-badge {
      background: var(--fpw-teal-bg);
      color: var(--fpw-teal);
      border-color: var(--fpw-teal-border);
    }
.fpw-home-hero {
      background: var(--fpw-bg-alt);
      border: 1px solid var(--fpw-border-strong);
      border-radius: var(--fpw-radius);
      padding: 1.75rem 1.25rem;
      margin-bottom: 2.5rem;
    }
@media (min-width: 768px) {
      .fpw-home-hero {
        padding: 2.5rem 2rem;
      }
    }
.fpw-finder-form {
      margin-top: 1.5rem;
      background: var(--fpw-bg-code);
      color: var(--fpw-code-text);
      padding: 1rem 1.25rem;
      border-radius: var(--fpw-radius);
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.75rem 1rem;
    }
.fpw-finder-label {
      font-family: var(--fpw-mono);
      font-size: 0.875rem;
      font-weight: 700;
      color: var(--fpw-code-teal);
    }
.fpw-finder-select {
      font-family: var(--fpw-mono);
      font-size: 0.9375rem;
      background: var(--fpw-bg-code-panel);
      color: #ffffff;
      border: 1px solid #475569;
      border-radius: var(--fpw-radius-sm);
      padding: 0.55rem 0.9rem;
      min-height: 44px;
      flex: 1 1 200px;
    }
.fpw-finder-btn {
      font-family: var(--fpw-mono);
      font-size: 0.875rem;
      font-weight: 700;
      background: var(--fpw-indigo);
      color: #ffffff;
      border: 1px solid #6366f1;
      border-radius: var(--fpw-radius-sm);
      padding: 0.55rem 1.25rem;
      min-height: 44px;
      cursor: pointer;
    }
.fpw-finder-btn:hover {
      background: #4f46e5;
    }
.fpw-home-cards-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 1.25rem;
    }
.fpw-home-card {
      border: 1px solid var(--fpw-border-strong);
      border-radius: var(--fpw-radius);
      padding: 1.25rem;
      background: var(--fpw-bg);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      gap: 1rem;
    }
.fpw-home-card-index {
      font-family: var(--fpw-mono);
      font-size: 0.75rem;
      font-weight: 700;
      color: var(--fpw-indigo);
      background: var(--fpw-indigo-bg);
      border: 1px solid var(--fpw-indigo-border);
      padding: 0.15rem 0.5rem;
      border-radius: var(--fpw-radius-sm);
      display: inline-block;
      margin-bottom: 0.5rem;
    }
.fpw-home-card-title {
      font-size: 1.125rem;
      font-weight: 700;
      margin: 0 0 0.5rem 0;
    }
.fpw-home-card-text {
      font-size: 0.9375rem;
      color: var(--fpw-text-sec);
      margin: 0;
    }
.fpw-featured-row {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0.5rem;
      padding: 1rem 1.25rem;
      border-bottom: 1px solid var(--fpw-border);
      align-items: center;
    }
@media (min-width: 680px) {
      .fpw-featured-row {
        grid-template-columns: 44px 1.2fr 1.2fr minmax(140px, 1fr);
        gap: 1rem;
      }
    }
.fpw-featured-row:nth-child(even) {
      background: var(--fpw-bg-alt);
    }
.fpw-featured-row:last-child {
      border-bottom: none;
    }
.fpw-featured-price {
      font-family: var(--fpw-mono);
      font-weight: 700;
      color: var(--fpw-indigo);
      text-align: right;
    }
.fpw-method-box {
      background: var(--fpw-bg-alt);
      border: 1px solid var(--fpw-border-strong);
      border-radius: var(--fpw-radius);
      padding: 1.5rem 1.25rem;
    }
.fpw-method-list {
      margin: 1rem 0 1.25rem 0;
      padding: 0 0 0 1.25rem;
      font-size: 0.9375rem;
      color: var(--fpw-text-sec);
    }
.fpw-method-list li {
      margin-bottom: 0.65rem;
    }
.fpw-states-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
      gap: 0.5rem;
      list-style: none;
      margin: 0;
      padding: 0;
    }
.fpw-state-link {
      display: flex;
      align-items: center;
      min-height: 44px;
      padding: 0.45rem 0.75rem;
      background: var(--fpw-bg-alt);
      border: 1px solid var(--fpw-border);
      border-radius: var(--fpw-radius-sm);
      font-family: var(--fpw-mono);
      font-size: 0.8125rem;
      color: var(--fpw-text);
      text-decoration: none;
    }
.fpw-state-link:hover {
      border-color: var(--fpw-indigo);
      background: var(--fpw-indigo-bg);
      color: var(--fpw-indigo);
    }
