.product-page { max-width: 1320px; margin: 0 auto; padding: 30px 34px 64px; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 28px; color: var(--muted); font-size: 11px; }
.breadcrumbs a { color: var(--mint); }
.breadcrumbs a:hover { color: var(--ink); }
.product-hero { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto auto; align-items: center; gap: 24px; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.hero-mark { width: 68px; height: 68px; border-radius: 18px; font-size: 28px; }
.product-identity { min-width: 0; }
.product-identity h1 { margin: 0; font-size: clamp(32px, 4vw, 48px); line-height: 1.1; letter-spacing: -2.5px; overflow-wrap: anywhere; }
.developer-line { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; color: var(--muted); font-size: 11px; }
.developer-line a { color: var(--mint); }
.release-version { min-width: 150px; padding-left: 24px; border-left: 1px solid var(--line); }
.release-version span, .release-version small { display: block; color: var(--muted); font-size: 10px; }
.release-version strong { display: block; margin: 3px 0; color: var(--apricot); font-family: "IBM Plex Mono", monospace; font-size: 24px; font-weight: 500; overflow-wrap: anywhere; }
.product-actions { display: grid; justify-items: end; gap: 9px; }
.save-button { min-height: 44px; padding: 10px 15px; border: 1px solid var(--line); border-radius: 9px; background: transparent; color: var(--ink); font-size: 11px; }
.save-button[aria-pressed="true"] { border-color: var(--mint); color: var(--mint); }
.report-link { color: var(--muted); font-size: 10px; }
.report-link:hover { color: var(--apricot); }
.product-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 52px; padding-top: 38px; }
.product-content { min-width: 0; }
.product-content section { padding: 0 0 34px; }
.product-content h2 { margin: 0 0 14px; font-size: 21px; letter-spacing: -1px; }
.product-description { max-width: 780px; color: var(--muted); font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.product-description > :first-child { margin-top: 0; }
.product-description > :last-child { margin-bottom: 0; }
.product-description a { color: var(--mint); text-decoration: underline; text-underline-offset: 3px; }
.product-description img { max-width: 100%; height: auto; }
.section-heading-line { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.section-heading-line > span { color: var(--muted); font-size: 10px; text-align: right; }
.track-line { display: grid; grid-template-columns: 1fr 70px 1fr; align-items: center; padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: var(--panel); }
.track-line.current-only { grid-template-columns: 1fr; }
.track-item span, .track-item time { display: block; color: var(--muted); font-size: 10px; }
.track-item strong { display: block; margin: 5px 0; font-family: "IBM Plex Mono", monospace; font-size: 20px; font-weight: 500; overflow-wrap: anywhere; }
.track-item.current strong { color: var(--apricot); }
.track-connector { height: 1px; margin: 0 14px; background: var(--mint); }
.feature-list, .requirement-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
.feature-list li, .requirement-list li { padding: 14px 16px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.feature-list li::before { content: "+"; margin-right: 10px; color: var(--mint); font-family: "IBM Plex Mono", monospace; }
.requirement-list li strong, .requirement-list li span { display: block; }
.requirement-list li strong { color: var(--ink); font-size: 10px; font-weight: 500; }
.requirement-list li span { margin-top: 4px; }
.faq-section details { border-top: 1px solid var(--line); }
.faq-section details:last-child { border-bottom: 1px solid var(--line); }
.faq-section summary { padding: 16px 0; cursor: pointer; font-size: 12px; }
.faq-section details p { margin: 0 0 18px; color: var(--muted); font-size: 12px; white-space: pre-line; }
.related-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
.related-list a { display: block; padding: 15px 16px; border: 1px solid var(--line); border-radius: 9px; }
.related-list a:hover { border-color: var(--mint); background: var(--panel); }
.related-list strong, .related-list span { display: block; }
.related-list strong { font-size: 12px; font-weight: 500; overflow-wrap: anywhere; }
.related-list span { margin-top: 4px; color: var(--muted); font-size: 9px; }
.package-inspector { align-self: start; position: sticky; top: 20px; min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 18px 18px 6px 18px; background: var(--panel); }
.inspector-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.inspector-heading h2 { margin: 0; font-size: 22px; }
.inspector-heading > span { display: grid; place-items: center; min-width: 26px; height: 26px; border-radius: 7px; background: var(--mint); color: var(--base); font-family: "IBM Plex Mono", monospace; font-size: 11px; }
.inspector-intro { margin: 12px 0 18px; color: var(--muted); font-size: 10px; }
.inspector-form { margin: 0; }
.inspector-files { margin: 0 0 18px; padding: 0; list-style: none; counter-reset: none; }
.inspector-file { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 15px 0; border-top: 1px solid var(--line); cursor: pointer; }
.inspector-file.is-single { grid-template-columns: minmax(0, 1fr) auto; cursor: default; }
.inspector-file input { width: 16px; height: 16px; margin: 0; accent-color: var(--mint); }
.inspector-file-name { min-width: 0; }
.inspector-file-name strong, .inspector-file-name small { display: block; }
.inspector-file-name strong { font-size: 11px; font-weight: 500; overflow-wrap: anywhere; }
.inspector-file-name small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.65; }
.inspector-file-facts { color: var(--apricot); font-family: "IBM Plex Mono", monospace; font-size: 10px; text-align: right; }
.inspector-file-facts span, .inspector-file-facts small { display: block; overflow-wrap: anywhere; }
.inspector-file-facts small { margin-top: 4px; color: var(--muted); }
.package-inspector .download-button:disabled { cursor: not-allowed; opacity: .5; }
.package-unavailable { padding: 14px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.product-facts { margin: 22px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.product-facts div { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; font-size: 10px; }
.product-facts dt { color: var(--muted); }
.product-facts dd { margin: 0; text-align: right; }
.official-links { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px; font-size: 10px; }
.official-links a { color: var(--mint); text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1000px) {
  .product-hero { grid-template-columns: 64px minmax(0, 1fr) auto; }
  .product-actions { grid-column: 2 / -1; justify-items: start; }
  .product-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 30px; }
}

@media (max-width: 700px) {
  .product-page { padding: 24px 17px 44px; }
  .product-hero { grid-template-columns: 54px minmax(0, 1fr); gap: 16px; }
  .hero-mark { width: 54px; height: 54px; border-radius: 15px; font-size: 23px; }
  .product-identity h1 { font-size: 34px; letter-spacing: -1.5px; }
  .release-version { grid-column: 2; min-width: 0; padding: 0; border: 0; }
  .release-version strong { font-size: 20px; }
  .product-actions { grid-column: 2; justify-items: start; }
  .product-layout { display: flex; flex-direction: column; gap: 0; padding-top: 28px; }
  .package-inspector { position: static; order: -1; margin-bottom: 34px; padding: 20px; }
  .feature-list, .requirement-list, .related-list { grid-template-columns: 1fr; }
  .track-line { grid-template-columns: 1fr 36px 1fr; padding: 16px; }
  .track-item strong { font-size: 16px; }
  .section-heading-line { display: block; }
  .section-heading-line > span { display: block; margin: -8px 0 12px; text-align: left; }
}
