/* Shared public and administrative platform presentation. */
html{scroll-behavior:smooth;scroll-padding-top:95px}
.platform-hero{position:relative;display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:40px;padding:66px 0 44px;overflow:hidden}
.platform-hero h1{font-size:clamp(34px,4.5vw,64px);letter-spacing:-.055em;line-height:1.18;margin:20px 0}
.platform-hero h1 span{color:var(--accent,#aa8cff)}
.platform-hero p,.platform-developer-hero>p{font-size:16px;line-height:1.9;color:var(--muted,#a7a2b6)}
.platform-hero .service-indicator{margin-top:26px;justify-content:flex-start}
.platform-art{position:relative;min-height:310px;display:grid;place-items:center;isolation:isolate}
.platform-art-grid{position:absolute;inset:0;background-image:linear-gradient(#a58aff12 1px,transparent 1px),linear-gradient(90deg,#a58aff12 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(ellipse,#000,transparent 70%);transform:rotate(-12deg)}
.platform-orbit{position:absolute;width:250px;height:250px;border:1px solid #a58aff40;border-radius:50%;transform:rotateX(45deg) rotate(-30deg);box-shadow:0 0 0 40px #a58aff08,0 0 0 80px #a58aff04}
.platform-block{width:125px;height:125px;display:grid;place-items:center;border:1px solid #bca4ff90;border-radius:28px;background:linear-gradient(135deg,#b199ff33,#7057aa15);box-shadow:20px 24px 80px #8861ff25,inset 0 0 40px #bca4ff15;color:var(--accent,#c3afff);font-size:72px;font-weight:800;transform:rotate(-12deg)}
.platform-art-caption{position:absolute;bottom:12px;letter-spacing:3px;font-size:10px;color:var(--muted,#a7a2b6)}
.platform-section-nav{display:flex;gap:12px;flex-wrap:wrap;padding:18px 0;border-block:1px solid var(--line,#ffffff14);margin-bottom:36px}
.platform-section-nav a{padding:9px 15px;border:1px solid var(--line,#ffffff14);border-radius:9px;font-size:13px;text-decoration:none}
.platform-section-nav a:hover{background:#a58aff15;border-color:#a58aff60}
.platform-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}
.platform-section-heading h2{font-size:28px;letter-spacing:-.04em;margin:10px 0}
.platform-section-heading p{margin:8px 0;line-height:1.8}
.platform-catalogue{padding:12px 0 25px}
.platform-home .platform-hero{padding:48px 0 25px;min-height:325px;gap:26px}
.platform-home .platform-hero h1{font-size:clamp(36px,4.4vw,60px)}
.platform-home .platform-hero .mirror-actions{margin:24px 0 0;flex-wrap:wrap}
.platform-home .platform-art{min-height:280px}
.home-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0 0}
.home-service{display:flex;min-width:0;min-height:265px;flex-direction:column;padding:27px 30px;border:1px solid color-mix(in srgb,var(--line) 55%,transparent);border-radius:16px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 10%,var(--panel)),var(--panel) 65%);box-shadow:0 18px 45px #08051116}
.home-service-mirror{background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 5%,var(--panel)),var(--panel) 70%)}
.home-service-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.home-service-symbol{display:grid;width:42px;height:42px;flex:none;place-items:center;border:1px solid color-mix(in srgb,var(--accent-strong) 45%,transparent);border-radius:11px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent-soft);font-size:18px;font-weight:750}
.home-service h2{font-size:25px;letter-spacing:-.04em;margin:12px 0 6px}
.home-service p{color:var(--muted);line-height:1.75;font-size:13px;margin:0 0 15px;max-width:47ch}
.home-service .service-indicator,.home-service-meta{margin:auto 0 14px;color:var(--muted);font-size:12px}
.home-service>a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--line) 40%,transparent);color:var(--accent-soft);font-size:13px;font-weight:650}
.home-service>a:hover,.home-service-bridge a:hover{color:var(--text)}
.home-service-bridge{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 30px;padding:13px 8px;color:var(--muted);font-size:12px}
.home-service-bridge a{color:var(--accent-soft);font-weight:650;white-space:nowrap}
.platform-home .platform-catalogue{padding:28px 0 35px;border-top:1px solid color-mix(in srgb,var(--line) 45%,transparent)}
.platform-home .platform-section-heading a{color:var(--accent-soft)}
.platform-downloads{padding-top:52px;border-top:1px solid var(--line,#ffffff14);margin-top:20px}
.platform-status{font-size:12px;padding:8px 12px;border:1px solid var(--line,#ffffff14);border-radius:30px;color:var(--muted,#b1aabd);flex-shrink:0}
.platform-downloads .mirror-facts{margin-bottom:30px}
.platform-downloads .mirror-connect{padding:30px}
.platform-developers{max-width:1120px;margin:auto;padding:0 28px 70px}
.platform-developer-hero{padding:60px 0 44px}
.platform-developer-hero h1{font-size:clamp(30px,4vw,46px);letter-spacing:-.045em;line-height:1.3}
.platform-network{padding:28px 0 40px;border-block:1px solid var(--line,#ffffff14)}
.platform-network .network-section{margin-top:38px}
.platform-access{max-width:740px;padding-top:50px}
.platform-access form{padding:24px;border:1px solid var(--line,#ffffff14);border-radius:16px;margin:24px 0;background:#a58aff05}
.platform-access label{display:block;margin-bottom:16px}
.platform-access :is(input,textarea){display:block;width:100%;margin-top:8px;box-sizing:border-box}
.platform-access p{line-height:1.85}
.admin-content .platform-section-nav{margin-top:10px}
.admin-content :is(#downloads,#translation,#distribution,#cloudflare){scroll-margin-top:95px}
.platform-network .mirror-feature-grid article{min-width:0}
.settings-tabs{position:static;top:auto;z-index:auto;display:flex;width:auto;min-height:0;justify-content:flex-start;gap:6px;flex-wrap:wrap;padding:7px;backdrop-filter:none;background:#a58aff08;border:1px solid var(--line,#ffffff14);border-radius:12px;margin:10px 0 14px}
.settings-tabs :is(button,a){border:0;border-radius:8px;background:transparent;color:var(--muted,#a7a2b6);padding:11px 15px;font-size:13px;text-decoration:none;box-shadow:none}
.settings-tabs button.active{background:#a58aff24;color:var(--text,#efeaf6);box-shadow:inset 0 0 0 1px #a58aff30}
.settings-tabs a.active{background:#a58aff24;color:var(--text,#efeaf6);box-shadow:inset 0 0 0 1px #a58aff30}
.settings-tabs button:hover{background:#a58aff14}
.settings-intro{font-size:12px;color:var(--muted,#a7a2b6);margin-bottom:24px}
.settings-form{display:block}
.settings-form>.settings-save-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line,#ffffff14);margin-top:24px;padding:20px 0}
.settings-panel-heading{margin-bottom:24px}
.settings-form .mirror-policy{margin:20px 0}
.settings-form .mirror-settings-grid{margin-top:20px}
.settings-operations{margin-top:28px}
.settings-form .mirror-settings-grid label:has(input[type="checkbox"]){display:block;line-height:1.6}
.settings-form input[type="checkbox"]{display:inline-block;width:auto;min-height:0;margin:0 6px 0 0;vertical-align:middle}
.settings-form .mirror-settings-grid .full{grid-column:1/-1}
.platform-developer-hero .mirror-actions{flex-wrap:wrap}
.platform-developers :is(.button,code){overflow-wrap:anywhere;white-space:normal}
@media(max-width:760px){.settings-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-tabs button{padding:10px 8px}.settings-form>.settings-save-bar{align-items:stretch;flex-direction:column}}
@media(max-width:760px){.platform-hero{grid-template-columns:1fr;padding:36px 0 28px;gap:10px}.platform-art{display:none}.platform-section-heading{align-items:flex-start;flex-direction:column;gap:12px}.platform-section-heading h2{font-size:24px}.platform-downloads{padding-top:32px}.platform-downloads .mirror-connect{padding:18px}.platform-developers{padding-inline:18px}.platform-developer-hero{padding-top:36px}.platform-status{white-space:normal}.platform-section-nav{gap:8px}.platform-section-nav a{padding:9px 10px}.platform-network .mirror-feature-grid{grid-template-columns:1fr}}
@media(max-width:760px){.platform-home .platform-hero{min-height:0;padding:34px 0 20px}.home-services{grid-template-columns:1fr;gap:12px}.home-service{min-height:0;padding:22px}.home-service-bridge{align-items:flex-start;flex-direction:column;padding:15px 2px;margin-bottom:12px}}
.admin-sidebar{overflow-y:auto;scrollbar-width:thin}.admin-sidebar .admin-nav-group{padding-top:20px;border-top:1px solid var(--line,#ffffff20);margin-top:16px}.admin-nav-records{margin:3px 0 12px}.admin-nav-records>summary{cursor:pointer;padding:10px 14px;color:var(--muted);font-size:12px}.admin-nav-records a{display:block;padding:9px 14px;margin:2px 0;border-radius:8px;color:var(--muted);font-size:12px}.admin-nav-records a:is(:hover,.active){background:var(--raised);color:var(--accent-soft)}
.mirror-observation>section{display:grid;gap:18px}.mirror-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.mirror-overview-grid .admin-card{min-height:165px}.mirror-overview-grid h2{margin:8px 0 18px}.mirror-overview-grid a,.mirror-overview-links a{color:var(--accent-soft)}.mirror-overview-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mirror-overview-links a{display:grid;gap:8px;padding:18px;border:1px solid var(--line,#ffffff22);border-radius:12px;text-decoration:none;background:var(--panel)}.mirror-overview-links a:hover{border-color:var(--accent-soft)}.mirror-overview-links span{color:var(--muted);font-size:11px}.mirror-storage-row{margin:15px 0}.mirror-storage-row>div{display:flex;justify-content:space-between;gap:12px;font-size:12px}.mirror-storage-row meter{display:block;width:100%;height:12px;margin-top:8px}.resource-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:16px}.resource-filters label{display:grid;gap:7px;min-width:190px;font-size:12px}.resource-filters input{min-width:240px}.resource-table{width:100%}.resource-table td{vertical-align:top}.resource-table td:first-child{min-width:250px}.observation-file{max-width:540px;overflow-wrap:anywhere}.observation-file strong{display:block;font-weight:600;font-size:12px}.observation-file small{display:block;color:var(--muted);font-size:10px;margin-top:5px;word-break:break-all}.mirror-observation .record-pagination{border:0;border-radius:10px}.mirror-observation progress{width:100%;height:9px;accent-color:var(--accent-soft)}#mirror-job-failures p{padding:9px 12px;border-left:3px solid #ec7597;background:#b33d6216;overflow-wrap:anywhere;font-size:12px}#mirror-background-activities{display:flex;gap:12px;flex-wrap:wrap}#mirror-background-activities p{margin:0;padding:12px 15px;border:1px solid var(--line,#ffffff22);border-radius:8px;color:var(--muted);font-size:12px}
/* Server HTML is replaced by Vue. Show a neutral workspace placeholder until hydration. */
.mirror-admin-page .admin-shell:has(#panel:not([data-mirror-view]):not(.hidden)) .admin-sidebar,.mirror-admin-page .admin-shell:has(#panel:not([data-mirror-view]):not(.hidden)) #panel{visibility:hidden}.mirror-admin-page .admin-shell:has(#panel:not([data-mirror-view]):not(.hidden)) .admin-content:before{content:'正在准备资源工作区…';display:block;padding:26px;margin:30px 0;border:1px solid var(--line,#ffffff22);border-radius:12px;color:var(--muted);background:var(--panel)}
@media(max-width:760px){.admin-sidebar{overflow:visible}.admin-nav-records{width:100%}.admin-nav-records a{display:inline-block}.mirror-overview-grid,.mirror-overview-links{grid-template-columns:1fr}.resource-filters{display:grid}.resource-filters input{min-width:0}.mirror-observation>section{gap:12px}}
.source-provider-list{display:grid;gap:12px;margin:20px 0}.source-provider{display:grid;grid-template-columns:minmax(140px,1fr) minmax(220px,2fr) 130px 120px auto auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--line,#333);border-radius:12px}.source-provider input,.source-provider select{width:100%;min-width:0}.source-provider label{min-width:0}.source-provider label:has(input[type=checkbox]){align-self:center}.source-provider input[type=checkbox]{width:auto}.source-file-path{overflow-wrap:anywhere;word-break:break-word;max-width:530px}.source-file-path small{display:block;font-size:10px;opacity:.65}@media(max-width:1050px){.source-provider{grid-template-columns:1fr 1fr}.source-provider label:nth-child(2){grid-column:1/-1}}@media(max-width:560px){.source-provider{grid-template-columns:1fr}.source-provider label:nth-child(2){grid-column:auto}}
.source-provider-details{margin:20px 0}.source-provider-details>summary{cursor:pointer;font-weight:600;padding:12px 0}#settings-sources>.admin-card+.admin-card{margin-top:18px}

/* Catalog loading states */

.catalog-load-status{grid-column:1/-1;color:var(--muted);font-size:13px;padding:8px 0}.catalog-refreshing{opacity:.55;transition:opacity .15s}.catalog-skeleton-icon{width:64px;height:64px;border-radius:12px;background:#a18af825}.catalog-skeleton-lines{flex:1;min-width:100px}.catalog-skeleton-lines span{display:block;margin:8px 0 16px;height:12px;border-radius:5px;background:linear-gradient(105deg,#a18af811 30%,#a18af840 50%,#a18af811 70%);background-size:220% 100%;animation:site-shimmer 1.6s linear infinite}.catalog-skeleton-lines span:first-child{width:65%;height:18px}.catalog-skeleton-lines span:last-child{width:45%}@media(prefers-reduced-motion:reduce){.catalog-skeleton-lines span{animation:none}.catalog-refreshing{transition:none}}
/* BUGGCRAFT LOADING STYLES */
#site-load-bar{position:fixed;inset:0 auto auto 0;height:3px;width:100%;z-index:2147483647;pointer-events:none;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#8971f5,#57c8c4);transition:transform .2s,opacity .2s}
  html[data-page-loading] #site-load-bar{transform:scaleX(.75);animation:site-progress 1.8s ease-in-out infinite}
  #site-navigation-overlay{position:fixed;inset:76px 0 0;z-index:2147483600;background:#11111bee;backdrop-filter:blur(10px);padding:clamp(24px,5vw,76px);overflow:hidden;color:#e9e6fa;pointer-events:none}
  html[data-theme=light] #site-navigation-overlay{background:#f8f7fdef;color:#28223d}
  #site-navigation-overlay[hidden]{display:none}
  .site-load-heading{max-width:1140px;margin:12px auto 28px;display:flex;align-items:center;gap:12px;font:500 14px system-ui,sans-serif}
  .site-load-dot{width:8px;height:8px;border-radius:50%;background:#a18af8;box-shadow:0 0 22px #a18af866;animation:site-pulse 1.2s ease-in-out infinite}
  .site-skeleton-layout{max-width:1140px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  .site-skeleton{height:190px;border:1px solid #a18af822;border-radius:18px;background:linear-gradient(105deg,#a18af808 30%,#a18af825 50%,#a18af808 70%);background-size:220% 100%;animation:site-shimmer 1.6s linear infinite}
  .site-skeleton:first-child{height:104px;grid-column:1/-1}.site-skeleton:after{content:'';display:block;margin:28px;width:48%;height:10px;border-radius:5px;background:#a18af822;box-shadow:0 25px 0 #a18af811,0 50px 0 #a18af811}
  [aria-busy=true]:empty{min-height:100px;border-radius:12px;background:linear-gradient(105deg,#a18af808 30%,#a18af825 50%,#a18af808 70%);background-size:220% 100%;animation:site-shimmer 1.6s linear infinite}
  .loading-value{display:inline-block;min-width:100px;min-height:26px;border-radius:6px;color:transparent!important;background:linear-gradient(105deg,#a18af808 30%,#a18af825 50%,#a18af808 70%);background-size:220% 100%;animation:site-shimmer 1.6s linear infinite}
  @keyframes site-shimmer{to{background-position:-220% 0}}@keyframes site-progress{50%{transform:scaleX(.9)}}@keyframes site-pulse{50%{opacity:.35}}
  @media(max-width:650px){.site-skeleton-layout{grid-template-columns:1fr}.site-skeleton{height:120px}#site-navigation-overlay{inset:64px 0 0}}
  @media(prefers-reduced-motion:reduce){#site-load-bar,.site-skeleton,.site-load-dot,.loading-value,[aria-busy=true]:empty{animation:none!important;transition:none!important}}
.list-region-frame{position:relative}.list-region-pending{min-height:140px}
  .list-refreshing{opacity:.55;transition:opacity .15s}
  .list-load-status{position:absolute;right:12px;top:10px;z-index:6;display:flex;align-items:center;gap:9px;padding:7px 12px;border:1px solid var(--line,#665c8d);border-radius:8px;background:var(--panel,#211b30);color:var(--text,#f5f1ff);box-shadow:0 4px 18px #0002;font:12px system-ui,sans-serif;max-width:calc(100% - 24px)}
  .list-load-status:before{content:'';width:7px;height:7px;border-radius:50%;background:#9c85ed;animation:site-pulse 1s ease-in-out infinite}
  .list-load-status[data-error]:before{background:#dc7186;animation:none}.list-load-status button{border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;white-space:nowrap}
  .list-skeleton-card{padding:20px;border:1px solid var(--line,#665c8d);border-radius:10px;margin:10px 0;min-height:88px}
  .list-skeleton-line{display:block;height:12px;min-width:32px;width:74%;border-radius:5px;margin:9px 0;background:linear-gradient(105deg,#a18af816 30%,#a18af840 50%,#a18af816 70%);background-size:220% 100%;animation:site-shimmer 1.6s linear infinite}
  .list-skeleton-line:nth-child(even){width:45%}.list-skeleton-row td{height:62px;padding:14px}
  .release-box[aria-busy=true]:has([aria-disabled=true]) h3,.release-box[aria-busy=true]:has([aria-disabled=true]) p{color:transparent;background:linear-gradient(105deg,#a18af811 30%,#a18af840 50%,#a18af811 70%);background-size:220% 100%;animation:site-shimmer 1.6s linear infinite;border-radius:5px}
  @media(prefers-reduced-motion:reduce){.list-skeleton-line,.list-load-status:before{animation:none}.list-refreshing{transition:none}}
