.catalog-page { background: #f3f6f5; color: #152725; }
.catalog-page [hidden] { display: none !important; }
.catalog-page a { text-decoration: none; }
.catalog-page a:focus-visible, .catalog-page button:focus-visible, .catalog-page input:focus-visible, .catalog-page select:focus-visible { outline: 3px solid #00866f; outline-offset: 4px; }
.catalog-heading { padding: 135px 0 64px; background: #071014; color: #f1f8f7; border-bottom: 1px solid #29403c; }
.catalog-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px; color: #9eb9b2; margin-bottom: 36px; }
.catalog-breadcrumb a { color: #c9e4dc; }
.catalog-breadcrumb a:hover { color: #b9f550; }
.catalog-heading h1 { font-size: 48px; line-height: 1.12; max-width: 950px; margin: 0 0 18px; overflow-wrap: anywhere; letter-spacing: 0; }
.catalog-heading h1 > span { color: #b9f550; }
.catalog-heading p { font-size: 18px; max-width: 720px; color: #b8cbc5; margin: 0; }
.catalog-body { padding: 56px 0 80px; min-height: 45vh; }
.catalog-empty { padding: 30px 0 68px; display: flex; gap: 32px; align-items: flex-start; }
.catalog-empty img { flex-shrink: 0; padding: 12px; box-sizing: content-box; background: #071014; border-radius: 8px; }
.catalog-empty h2, .catalog-custom h2 { font-size: 25px; margin: 0 0 14px; letter-spacing: 0; }
.catalog-empty p { max-width: 630px; color: #4b625c; font-size: 17px; line-height: 1.7; margin: 0 0 20px; }
.catalog-empty a, .catalog-custom a { color: #006d58; font-weight: 600; }
.catalog-empty a:hover, .catalog-custom a:hover { color: #102c24; }
.catalog-custom { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 36px 0 0; border-top: 1px solid #cedbd6; margin-top: 30px; }
.catalog-custom h2 { font-size: 20px; }
.catalog-custom p { margin: 0; color: #4b625c; }
.catalog-custom a { flex-shrink: 0; }
.catalog-filters { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)) 44px; gap: 14px; align-items: end; margin-bottom: 28px; }
.catalog-filters label { display: grid; gap: 9px; font-size: 13px; font-weight: 600; }
.catalog-filters input, .catalog-filters select { width: 100%; min-width: 0; height: 46px; border: 1px solid #93aea3; border-radius: 4px; padding: 0 12px; font: inherit; color: #152725; background: #fff; }
.catalog-reset, .gallery-controls button { width: 44px; height: 44px; border: 1px solid #93aea3; background: transparent; color: #152725; border-radius: 4px; font-size: 24px; cursor: pointer; }
.catalog-reset:hover, .gallery-controls button:hover:not(:disabled) { background: #deebe3; }
.catalog-count { font-size: 13px; color: #4b625c; margin: 0 0 18px; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.app-card { display: flex; flex-direction: column; padding: 26px; border: 1px solid #d2ded8; background: #fff; border-radius: 8px; min-width: 0; }
.app-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.app-icon { object-fit: contain; border-radius: 8px; background: #fff; flex-shrink: 0; }
.app-status { display: inline-block; color: #b9f550; background: #17352b; border-radius: 3px; padding: 5px 8px; font: 11px/1.4 "IBM Plex Mono", monospace; }
.app-card h2 { font-size: 22px; margin: 24px 0 12px; overflow-wrap: anywhere; }
.app-card h2 a { color: #152725; }
.app-card p { font-size: 15px; color: #4b625c; line-height: 1.65; margin-bottom: 22px; }
.app-platforms { display: flex; flex-wrap: wrap; gap: 8px 14px; padding: 0; list-style: none; font: 12px/1.5 "IBM Plex Mono", monospace; margin-top: auto; margin-bottom: 24px; color: #53675f; }
.app-category { display: flex; gap: 9px; align-items: center; color: #506b60; font-size: 12px; line-height: 1.6; margin: 14px 0 20px; overflow-wrap: anywhere; }
.app-category img { object-fit: contain; border-radius: 3px; flex-shrink: 0; }
.catalog-heading .app-category { color: #b6d0bf; margin-bottom: 0; }
.app-card-link { padding-top: 18px; border-top: 1px solid #dce5df; color: #006d58; display: flex; justify-content: space-between; font-weight: 600; font-size: 14px; }
.app-heading { display: flex; align-items: flex-start; gap: 32px; }
.app-heading h1 { font-size: 40px; margin-top: 14px; }
.app-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); gap: 64px; }
.catalog-body h2 { letter-spacing: 0; }
.app-description h2, .app-downloads > h2, .app-gallery h2, .app-documents h2 { font-size: 23px; margin: 0 0 24px; }
.catalog-prose { font-size: 16px; line-height: 1.85; color: #365149; overflow-wrap: anywhere; }
.catalog-prose p { margin: 0 0 22px; }
.catalog-prose a { color: #006d58; text-decoration: underline; }
.app-downloads { border-left: 1px solid #cadbd1; padding-left: 32px; min-width: 0; }
.app-platform { border-top: 1px solid #cadbd1; padding: 22px 0; }
.app-platform h3 { font-size: 16px; margin: 0 0 18px; }
.app-variant + .app-variant { margin-top: 24px; }
.app-variant strong { font-size: 13px; }
.app-variant p, .app-platform > p { font-size: 13px; color: #4b625c; line-height: 1.65; margin: 8px 0; }
.app-variant a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 12px; margin-top: 12px; padding: 10px 14px; border: 1px solid #39715c; border-radius: 4px; color: #075c42; font-size: 13px; font-weight: 600; }
.app-variant a:hover { background: #dcece2; }
.app-gallery { margin-top: 60px; padding-top: 36px; border-top: 1px solid #cadbd1; }
.gallery-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.gallery-heading h2 { margin: 0; }
.gallery-controls { display: flex; gap: 8px; }
.gallery-controls button:disabled { opacity: .35; cursor: default; }
.gallery-track { display: flex; width: 100%; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 18px; overscroll-behavior-inline: contain; }
.gallery-track figure { flex: 0 0 70%; min-width: 0; margin: 0; scroll-snap-align: start; }
.gallery-track button { display: block; padding: 16px; width: 100%; height: 420px; border: 1px solid #d0ded6; border-radius: 6px; background: #e5ece8; cursor: zoom-in; }
.gallery-track img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-track figcaption { margin-top: 12px; font-size: 13px; color: #4b625c; }
.gallery-position { min-height: 22px; font: 12px/1.6 "IBM Plex Mono", monospace; color: #4b625c; }
.gallery-dialog { border: 1px solid #628375; border-radius: 8px; background: #f3f6f5; max-width: min(1100px, 94vw); width: 100%; max-height: 94dvh; padding: 52px 20px 20px; color: #152725; }
.gallery-dialog::backdrop { background: #071014eb; }
.gallery-dialog > button { position: absolute; top: 6px; right: 8px; width: 40px; height: 40px; font-size: 28px; background: none; border: 0; cursor: pointer; color: #152725; }
.gallery-dialog img { display: block; width: 100%; max-height: 70dvh; object-fit: contain; }
.gallery-dialog p { font-size: 14px; margin: 16px 0 0; }
.app-documents { display: flex; flex-wrap: wrap; gap: 20px 32px; padding-top: 32px; margin-top: 48px; border-top: 1px solid #cadbd1; }
.app-documents h2 { flex-basis: 100%; margin-bottom: 0; }
.app-documents a { color: #006d58; font-size: 14px; }
.catalog-notice { background: #e2ebdf; border-left: 3px solid #547a30; padding: 20px; margin-bottom: 36px; }
.catalog-preview { margin: 80px 0 0; padding: 18px; background: #b9f550; color: #071014; text-align: center; }
.catalog-heading-compact h1 { font-size: 36px; }
.catalog-heading .legal-version { font-size: 13px; margin-top: 18px; }
.legal-content { max-width: 780px; }
.release-notes { padding: 0 0 28px; margin-bottom: 28px; border-bottom: 1px solid var(--line, #274044); }
.release-timeline { max-width: 980px; }
.release-entry { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 32px; padding: 32px 0; border-bottom: 1px solid var(--line, #274044); }
.release-entry h2 { font-size: 22px; margin: 12px 0; }
.release-entry a { color: #006d58; text-decoration: none; }
@media (max-width: 700px) { .release-entry { grid-template-columns: minmax(0,1fr); gap: 12px; } }
.legal-history { display: grid; gap: 12px; padding-top: 30px; }
.legal-history h2 { font-size: 19px; }
.legal-history a { color: #006d58; font-size: 14px; }
.catalog-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 1020px) { .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .app-layout { gap: 32px; } .catalog-filters { grid-template-columns: 1fr 1fr; } .catalog-reset { justify-self: end; } }
@media (max-width: 700px) { .catalog-heading { padding: 104px 0 38px; } .catalog-heading h1 { font-size: 34px; } .catalog-heading p { font-size: 16px; } .catalog-breadcrumb { margin-bottom: 28px; } .catalog-body { padding: 32px 0 48px; } .catalog-empty { gap: 20px; padding: 8px 0 26px; } .catalog-empty img { width: 36px; height: 38px; padding: 9px; } .catalog-empty h2 { font-size: 22px; } .catalog-empty p { font-size: 15px; } .catalog-custom { flex-direction: column; align-items: flex-start; gap: 22px; } .catalog-filters, .catalog-grid, .app-layout { grid-template-columns: minmax(0,1fr); } .catalog-filters { gap: 14px; } .app-heading { flex-direction: column; gap: 22px; } .app-heading .app-icon { width: 80px; height: 80px; } .app-heading h1 { font-size: 30px; } .app-downloads { padding-left: 0; border-left: 0; } .gallery-track figure { flex-basis: 88%; } .gallery-track button { height: 330px; padding: 10px; } .app-gallery { margin-top: 32px; } .app-documents { gap: 18px 24px; } .catalog-heading-compact h1 { font-size: 29px; } }
@media (prefers-reduced-motion: reduce) { .gallery-track { scroll-behavior: auto; } }
