:root{--paper:#f7f6f2;--surface:#fff;--ink:#263a42;--muted:#728087;--line:#e8eae5;--cyan:#deeff3;--green:#568567;--green-light:#edf5ee;--radius:9px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:#28718a}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid #367e99;outline-offset:3px}img{display:block;max-width:100%;object-fit:contain}h1,h2,h3,p,ol,ul,dl,dd{margin:0}h1,h2{line-height:1.45}h2{font-size:17px;font-weight:650}ol,ul{padding:0;list-style:none}.shell{width:min(1200px,calc(100% - 32px));margin-inline:auto}.skip-link{position:fixed;top:8px;left:12px;padding:8px 14px;z-index:20;background:#fff;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;min-width:0;font-size:23px;font-weight:700;letter-spacing:.02em}.brand>span{min-width:0;overflow-wrap:anywhere}.brand img{flex:none;border-radius:10px}.brand small{display:block;color:var(--muted);font-size:11px;font-weight:400;letter-spacing:.14em}.header-links{display:flex;gap:25px;font-size:13px;flex-shrink:0}.nav-wrap{background:linear-gradient(180deg,#e5f2f5,#dfeef2);border-top:1px solid #d6e8ee;border-bottom:1px solid #cadfe6;box-shadow:inset 0 1px rgba(255,255,255,.5)}.category-nav{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));text-align:center}.category-nav a{padding:13px 3px;font-size:15px;font-weight:650;color:#375c6b}.category-nav a:hover,.category-nav [aria-current]{background:#d3e7ed}.home-title{font-size:18px;display:flex;gap:18px;align-items:baseline;margin:22px 0 14px}.home-title span{font-size:12px;font-weight:400;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:55px;padding:12px 18px;border-bottom:1px solid var(--line);background:#fdfdfb}.panel-heading h2{display:flex;align-items:center;gap:10px;min-width:0}.panel-heading>span,.more-link{font-size:12px;white-space:nowrap;color:var(--muted)}.category-icon{flex:none}.home-top{display:grid;grid-template-columns:192px minmax(0,1fr) 302px;gap:16px;align-items:start}.directory nav{padding:8px 12px}.directory nav a{display:flex;align-items:center;gap:10px;padding:13px 0}.directory .chevron{margin-left:auto;color:#a1adb0}.directory .category-icon{width:30px;height:30px}.app-list{padding:0 18px}.app-row{display:flex;align-items:center;gap:14px;min-width:0;padding:16px 0;border-bottom:1px solid var(--line)}.app-row:last-child{border-bottom:0}.row-logo{flex:none}.row-logo img{border-radius:11px}.row-copy{flex:1;min-width:0}.app-name{font-size:16px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-description{color:#788184;font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-top:3px}.row-meta{display:flex;gap:14px;flex-wrap:wrap;color:#7c8689;font-size:11px;margin-top:4px;overflow-wrap:anywhere}.download-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:7px;background:var(--green-light);color:#386c49;border:1px solid #d7e8db;font-weight:600;white-space:nowrap;flex:none}.download-button:hover{background:#dcece0;color:#24563a}.list-download{min-width:76px;min-height:38px;font-size:13px}.download-unavailable{color:var(--muted);font-size:11px;flex:none}.compact-list .app-row{padding:9px 0;gap:11px}.compact-list .row-logo img{width:38px;height:38px;border-radius:9px}.compact-list .app-name{font-size:14px}.compact-list .row-description{font-size:11px}.compact-list .row-meta{font-size:10px;gap:8px;margin-top:1px}.compact-list .list-download{min-width:57px;min-height:33px;gap:0}.ranking ol{padding:0 16px}.ranking li{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);min-width:0}.ranking li:last-child{border:0}.rank-number{color:#909b9f;font-size:12px;width:16px;flex:none;font-style:italic}.ranking li:nth-child(-n+3) .rank-number{color:#c58549;font-weight:700}.rank-copy{min-width:0;flex:1}.rank-copy>a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.rank-copy small{font-size:10px;color:var(--muted)}.ranking .row-description{font-size:11px}.rank-download{font-size:11px;min-width:43px;min-height:30px}.category-sections{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-top:22px}.category-section .panel-heading{background:#fbfcfa}.category-section .app-row{padding:13px 0}.category-section .row-meta{display:inline-flex}.category-section .row-description{max-width:850px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:7px;font-size:12px;color:var(--muted);padding:19px 0;overflow-wrap:anywhere}.breadcrumbs a:not(:last-child)::after{content:' /';color:#b3baba;margin-left:7px}.breadcrumbs a:last-child{color:#516a72}.catalog-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:start}.subcategories{padding:18px}.subcategories h1{font-size:17px;margin-bottom:14px}.subcategory-grid{display:grid;grid-template-columns:1fr;gap:5px}.subcategory-grid a{padding:9px 10px;font-size:13px;border-radius:5px;overflow-wrap:anywhere}.subcategory-grid a:hover,.subcategory-grid [aria-current]{background:#eaf3f4;color:#286b80}.all-category{display:block;font-size:12px;margin-top:16px;border-top:1px solid var(--line);padding-top:12px;color:var(--muted)}summary{cursor:pointer;font-size:12px;color:#39778b;padding:10px 0}.stream-mobile{display:none}.pagination{display:flex;justify-content:center;align-items:center;gap:14px;padding:22px 8px;font-size:12px}.pagination a{padding:6px 14px;border:1px solid #dce6e7;border-radius:5px;background:#f5f9f9}.pagination [aria-disabled]{color:#a0a8ab}.empty-state{color:var(--muted);padding:30px 16px;text-align:center;font-size:13px}.app-summary{padding:24px;display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:30px;align-items:center}.summary-main{min-width:0}.app-identity{display:flex;gap:18px;align-items:center}.app-identity>div{min-width:0}.detail-logo{flex:none;border-radius:17px}.app-identity h1{font-size:25px;overflow-wrap:anywhere}.description{font-size:13px;color:var(--muted);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.rating{font-size:12px;margin-top:6px}.rating span{color:#d0a443}.rating small{color:var(--muted)}.app-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin-top:20px;font-size:12px}.app-facts>div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px}.app-facts dt{color:var(--muted)}.app-facts dd{overflow-wrap:anywhere}.muted{color:var(--muted)}.summary-download{border-left:1px solid var(--line);padding-left:24px;min-width:0}.download-actions{display:grid;gap:10px}.download-actions .download-button{min-height:46px;font-size:15px}.download-primary{background:#638f71;color:#fff;border-color:#638f71}.download-primary:hover{background:#507f60;color:#fff}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:18px;margin-top:20px;align-items:start}.chapter-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:linear-gradient(#eaf4f6,#e5f0f3);border-bottom:1px solid #d9e8ec}.chapter-nav a{text-align:center;padding:15px 5px;color:#3b6674;font-size:14px;font-weight:600}.chapter-nav a:hover{background:#dcecf0}.body-inner{padding:24px 28px;overflow-wrap:anywhere}.app-body{font-size:15px;line-height:1.95}.app-body p{margin:12px 0}.app-body h2{font-size:19px;margin:28px 0 12px;border-left:3px solid #88b6c5;padding-left:11px;scroll-margin-top:20px}.app-body ul,.app-body ol{list-style:revert;padding-left:24px}.detail-copy,.detail-related-info{font-size:13px;color:#6f7c81;line-height:1.85}.detail-section-note{color:#75878b;background:#f5f8f7;padding:10px 14px;border-radius:5px;font-size:13px}.detail-related-info{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.detail-related-info h2,.related-tags h2{font-size:14px;margin-bottom:8px}.detail-copy-outro{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.related-tags{margin-top:20px}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag-list>*{font-size:12px;background:#f0f5f3;padding:4px 10px;border-radius:4px}.static-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;margin-top:24px}.static-index{display:grid;align-content:start;gap:8px}.static-index a{padding:12px 16px;display:flex;justify-content:space-between;border-radius:6px}.static-index [aria-current]{background:#e1eff2}.static-page{padding:28px;background:white;border:1px solid var(--line);border-radius:9px;min-width:0}.eyebrow{font-size:12px;color:var(--muted)}.static-page h1{font-size:25px;margin:4px 0 22px}.static-page h2{font-size:17px;margin:22px 0 10px}.static-page p{line-height:1.9;color:#62747b;overflow-wrap:anywhere;margin:9px 0}.site-footer{margin-top:34px;border-top:1px solid var(--line);padding:25px 0;color:var(--muted);text-align:center;font-size:12px}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}.site-footer p{margin-top:10px;overflow-wrap:anywhere}.download-notice{max-width:640px;margin:70px auto;padding:30px;background:white;border:1px solid var(--line);border-radius:9px;overflow-wrap:anywhere}
@media(max-width:1199px) and (min-width:1024px){.home-top{grid-template-columns:172px minmax(0,1fr) 264px;gap:12px}.app-list{padding:0 14px}.ranking ol{padding:0 12px}}
@media(max-width:1023px){.shell{width:calc(100% - 28px)}.site-header{min-height:78px}.brand{font-size:21px}.header-links{gap:16px;font-size:12px}.category-nav a{font-size:13px;padding:12px 2px}.home-top{grid-template-columns:minmax(0,1fr)}.directory{display:none}.home-title{margin-top:18px}.home-top .ranking ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}.category-sections{margin-top:18px}.catalog-layout{grid-template-columns:minmax(0,1fr);gap:14px}.subcategories{padding:15px 16px}.subcategory-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.subcategory-grid a{padding:8px 2px;text-align:center;background:#f6f7f3}.all-category{margin-top:10px;padding-top:8px}.stream-desktop{display:none}.stream-mobile{display:block}.app-summary{grid-template-columns:minmax(0,1fr);gap:14px;padding:20px}.summary-download{border-left:0;padding-left:0}.download-actions{grid-template-columns:1fr 1fr}.detail-layout{grid-template-columns:minmax(0,1fr);gap:16px}.related-software .ranking ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.body-inner{padding:20px}.static-layout{grid-template-columns:minmax(0,1fr)}.static-index{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.static-index a{padding:10px;font-size:13px}.static-index span{display:none}}
@media(max-width:599px){body{font-size:13px}.shell{width:calc(100% - 24px)}.site-header{min-height:72px;gap:8px}.brand{font-size:19px;gap:9px}.brand img{width:36px;height:36px}.brand small{font-size:9px;letter-spacing:.08em}.header-links{gap:0}.header-links a{display:none}.header-links a:first-child{display:block;font-size:11px;white-space:nowrap}.category-nav{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;padding:4px 10px}.category-nav a{font-size:13px;padding:9px 1px}.home-title{font-size:15px;margin:16px 0 12px;gap:8px;display:block}.home-title span{display:block;font-size:11px;margin-top:3px}.panel-heading{min-height:49px;padding:10px 13px}.panel-heading h2{font-size:15px;gap:8px}.panel-heading>span,.more-link{font-size:11px}.category-icon{width:28px;height:28px}.app-list{padding:0 13px}.app-row,.category-section .app-row{gap:10px;padding:13px 0}.row-logo img{width:42px;height:42px;border-radius:10px}.app-name{font-size:14px}.row-description{font-size:11px}.row-meta{gap:7px;font-size:10px;margin-top:3px}.row-meta span:last-child{display:none}.row-meta span:first-child:last-child{display:inline}.list-download{min-width:52px;min-height:36px;font-size:12px;gap:0}.list-download span{display:none}.compact-list .app-row{padding:11px 0;gap:10px}.compact-list .list-download{min-width:52px;min-height:36px}.compact-list .row-logo img{width:38px;height:38px}.home-top .ranking ol{grid-template-columns:1fr;gap:0}.ranking li{padding:10px 0}.ranking ol{padding:0 13px}.rank-copy>a{font-size:13px}.rank-download{min-width:52px;min-height:34px;font-size:12px}.category-sections{gap:14px}.breadcrumbs{font-size:11px;padding:13px 0;gap:5px}.subcategories{padding:13px 10px}.subcategories h1{font-size:16px;margin:0 3px 10px}.subcategory-grid{gap:5px}.subcategory-grid a{font-size:11px;line-height:1.5;padding:9px 1px;word-break:normal}.all-category{font-size:11px;margin-left:3px}.catalog-main .panel-heading>span{display:none}.app-summary{padding:16px 13px;gap:12px}.app-identity{gap:12px;align-items:flex-start}.detail-logo{width:62px;height:62px;border-radius:13px}.app-identity h1{font-size:21px;line-height:1.45}.description{font-size:12px;margin-top:4px}.rating{font-size:11px}.app-facts{font-size:11px;gap:9px 12px;margin-top:17px}.app-facts>div{grid-template-columns:49px minmax(0,1fr);gap:5px}.download-actions{gap:9px}.download-actions .download-button{min-height:44px;font-size:14px}.detail-layout{margin-top:14px}.chapter-nav a{font-size:12px;padding:13px 2px}.body-inner{padding:17px 15px}.app-body{font-size:14px;line-height:1.9}.app-body h2{font-size:17px;margin:23px 0 10px}.detail-copy,.detail-related-info,.detail-section-note{font-size:12px}.related-software .ranking ol{gap:0 14px}.related-software .ranking .row-description{display:none}.related-software .rank-number{width:12px}.related-software .ranking li{gap:6px}.static-layout{margin-top:16px;gap:10px}.static-index a{font-size:12px;padding:9px 4px;text-align:center;display:block}.static-page{padding:20px 16px}.static-page h1{font-size:22px}.static-page h2{font-size:16px}.site-footer{font-size:11px;margin-top:24px;padding:22px 0}.site-footer nav{gap:17px}.download-notice{margin:35px 12px;padding:22px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* Portal V1 revision: directories lead; ranking and updates share one rail. */
:root {
  /* Reference image interior RGB median, 26,860 pixels: 93 / 226 / 227. */
  --download-color: #5de2e3;
  --paper: #f8f8f5;
  --ink: #283c43;
  --muted: #78898d;
  --line: #e8eeeb;
  --green: #297765;
  --green-light: #d1f3e7;
  --radius: 13px;
}
.panel { box-shadow: 0 2px 5px #253e3a03; }
.panel-heading { background: #fff; border-bottom-color: #edf2ef; }
.panel-heading h2 { font-weight: 600; letter-spacing: .01em; }
.category-section .panel-heading { background: #fff; }
.nav-wrap {
  background: linear-gradient(180deg, #e9f5f7, #e5f1f4);
  border-color: #dcebef;
  box-shadow: inset 0 1px #ffffffb3, 0 2px 3px #35576603;
}
.category-nav a { font-weight: 600; }
.category-nav a:hover, .category-nav [aria-current] { background: #dceef1; }
.home-title { margin: 18px 0 14px; font-size: 17px; }
.portal-home {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr) 286px;
  gap: 18px;
  align-items: start;
}
.portal-home .category-sections { min-width: 0; margin-top: 0; gap: 16px; }
.home-rail { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; min-width: 0; }
.home-rail > * { min-width: 0; }
.directory nav { padding: 6px 10px 10px; }
.directory nav a { padding: 10px 4px; gap: 10px; border-radius: 9px; }
.directory nav a:hover { background: #f4f9f7; }
.directory .category-icon { width: 40px; height: 40px; }
.category-section .category-icon { width: 36px; height: 36px; }
.portal-home .category-section .app-row { padding: 12px 0; gap: 12px; }
.portal-home .category-section .row-logo img { width: 44px; height: 44px; border-radius: 12px; }
.portal-home .category-section .app-name { font-size: 15px; }
.portal-home .category-section .row-description { font-size: 12px; }
.app-row { border-color: #eef2ef; }
.app-name { font-weight: 550; }
.row-description { color: #7a878a; }
.row-meta { color: #839196; }
.more-link { color: #568b80; }
.download-button, .download-primary, .download-backup {
  background: linear-gradient(180deg, #61e3e4, var(--download-color));
  color: #134f55;
  border: 1px solid #50cccf;
  border-radius: 11px;
  box-shadow: inset 0 1px #ffffffa6, 0 2px 3px #25858a10;
  font-weight: 600;
}
.download-button:hover, .download-primary:hover, .download-backup:hover {
  background: linear-gradient(180deg, #5cdfdf, #56dadc);
  border-color: #46bec4;
  color: #134f55;
}
.download-button:active { box-shadow: inset 0 1px 2px #134f5512; }
.list-download { min-width: 67px; min-height: 36px; font-size: 12px; gap: 5px; }
.home-rail .panel-heading { padding-inline: 14px; }
.home-rail .panel-heading h2 { font-size: 15px; }
.home-rail .ranking ol { padding: 0 14px; }
.home-rail .ranking li { gap: 8px; padding: 10px 0; }
.rank-number { font-style: normal; font-variant-numeric: tabular-nums; }
.ranking li:nth-child(-n+3) .rank-number { color: #309578; }
.rank-download { min-width: 43px; min-height: 30px; border-radius: 9px; }
.home-rail .app-list { padding-inline: 14px; }
.home-rail .compact-list .app-row { gap: 8px; padding: 12px 0; }
.home-rail .compact-list .row-logo img { width: 32px; height: 32px; border-radius: 9px; }
.home-rail .compact-list .app-name { font-size: 13px; }
.home-rail .compact-list .list-download { min-width: 43px; min-height: 32px; font-size: 11px; }
.home-rail .list-download span { display: none; }
.home-rail .compact-list .row-meta { gap: 4px; }
.home-rail .compact-list .row-meta span:last-child { display: none; }
@media (min-width: 1024px) and (max-width: 1199px) {
  .portal-home { grid-template-columns: 168px minmax(0, 1fr) 254px; gap: 14px; }
  .directory nav { padding-inline: 8px; }
  .directory nav a { gap: 6px; font-size: 13px; }
  .directory .category-icon { width: 36px; height: 36px; }
}
@media (max-width: 1023px) {
  .portal-home { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .portal-home .category-sections { margin-top: 0; }
  .home-rail { grid-template-columns: minmax(0, 1fr); }
  .home-rail .ranking ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
  .home-rail .compact-list .row-logo img { width: 38px; height: 38px; }
  .home-rail .compact-list .app-name { font-size: 14px; }
}
@media (max-width: 599px) {
  .home-title { font-size: 15px; margin: 14px 0 12px; }
  .portal-home, .home-rail { gap: 14px; }
  .portal-home .category-sections { gap: 14px; }
  .portal-home .category-section .app-row { gap: 10px; padding: 13px 0; }
  .portal-home .category-section .row-logo img { width: 40px; height: 40px; }
  .portal-home .category-section .app-name { font-size: 14px; }
  .portal-home .category-section .row-description { font-size: 11px; }
  .category-section .category-icon { width: 32px; height: 32px; }
  .list-download, .home-rail .compact-list .list-download { min-width: 52px; min-height: 36px; font-size: 12px; }
  .home-rail .ranking ol { grid-template-columns: minmax(0, 1fr); }
  .rank-download { min-width: 52px; min-height: 34px; }
}

/* Round 3: existing content, three anchors and category-side discovery links. */
.chapter-nav { display: flex; }
.chapter-nav a { flex: 1 1 0; min-width: 0; white-space: nowrap; }
.catalog-layout { grid-template-columns: 190px minmax(0, 1fr) 286px; }
.category-rail { min-width: 0; }
.category-rail .rank-logo { flex: none; }
.category-rail .rank-logo img { border-radius: 8px; }
.category-rail .detail-link { color: #567b80; white-space: nowrap; font-size: 11px; flex: none; padding: 8px 0 8px 3px; }
.category-rail .detail-link:hover { color: #18676e; }
.list-download { min-height: 40px; border-radius: 12px; }
.home-rail .compact-list .list-download { min-height: 40px; border-radius: 12px; }
@media (min-width: 1024px) and (max-width: 1199px) {
  .catalog-layout { grid-template-columns: 168px minmax(0, 1fr) 254px; gap: 14px; }
  .catalog-main .app-row { gap: 10px; }
}
@media (max-width: 1023px) {
  .catalog-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 599px) {
  .list-download, .home-rail .compact-list .list-download { min-height: 44px; }
  .category-rail .ranking ol { grid-template-columns: minmax(0, 1fr); }
}
