/* Package detail controls extend the existing release cards. Load after styles.css. */
.download-card{min-width:0}
.download-card .download-card__actions .download-button{min-height:44px}
.download-package{min-width:0;width:100%}
.download-package__toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--soft-surface);background:color-mix(in srgb,var(--glass) 54%,transparent);color:var(--muted);font-size:11px;line-height:1.5;font-weight:500;text-align:left;transition:background .3s,border-color .3s,color .3s,transform .3s cubic-bezier(.22,1,.36,1)}
.download-package__toggle:hover,.download-package__toggle[aria-expanded=true]{color:var(--ink);background:var(--soft-surface);border-color:color-mix(in srgb,var(--version-color) 30%,var(--line))}
.download-package__toggle:active{transform:scale(.985)}
.download-package__toggle .download-package__chevron{width:14px;height:14px;color:var(--faint);transition:transform .32s cubic-bezier(.22,.75,.2,1),color .3s}
.download-package__toggle[aria-expanded=true] .download-package__chevron{transform:rotate(180deg);color:var(--version-color)}
.download-package__panel{min-width:0}
.download-package__panel[hidden]{display:none!important}
.download-package__body{padding:15px 1px 8px}
.package-properties{display:flex;flex-direction:column;gap:9px;margin:0;padding:0;font-size:11px;line-height:1.65}
.package-properties dt{color:var(--faint);font-size:10px;font-weight:400}
.package-properties dd{margin:0;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.package-properties__file{display:grid;gap:5px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.package-properties__file code{font:inherit;font-weight:500;letter-spacing:.02em}
.package-properties__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.package-properties__row dt{flex:none}
.package-properties__row dd{text-align:right;font-variant-numeric:tabular-nums}
.package-checksum{margin-top:12px;padding-top:6px;border-top:1px solid var(--line)}
.package-checksum__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:3px}
.package-checksum__label{font-size:9px;letter-spacing:1.15px;color:var(--faint);font-weight:550}
.package-copy{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:58px;min-height:44px;padding:7px 8px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-size:10px;font-weight:500;transition:color .25s,background .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.package-copy svg{width:13px;height:13px}
.package-copy:hover{color:var(--ink);background:var(--soft-surface);border-color:var(--line)}
.package-copy:active{transform:scale(.95)}
.package-copy:disabled{opacity:.6;cursor:progress}
.package-copy[data-state=success]{color:var(--green)}
.package-copy[data-state=error]{color:var(--gold)}
.package-checksum__value{display:block;padding:9px 10px;border-radius:9px;border:1px solid var(--line);background:var(--soft-surface);color:var(--muted);font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:10px;line-height:1.8;letter-spacing:.025em;overflow-wrap:anywhere;word-break:break-all;user-select:text;-webkit-user-select:text;cursor:text}
.package-copy-feedback{margin:9px 0 0;font-size:10px;line-height:1.7;overflow-wrap:anywhere;color:var(--muted)}
.package-copy-feedback:empty{display:none}
.package-copy-feedback[data-state=success]{color:var(--green)}
.package-copy-feedback[data-state=error]{color:var(--gold)}
.package-checksum-unavailable{margin:13px 0 0;padding-top:11px;border-top:1px solid var(--line);color:var(--faint);font-size:10px;line-height:1.7}
.download-package__toggle:focus-visible,.package-copy:focus-visible,.package-checksum__value:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:640px){.download-package__toggle{padding-inline:9px;font-size:11px;border-radius:10px}.package-properties__row{gap:5px;flex-wrap:wrap}.package-properties__row dd{text-align:left}.package-checksum__value{padding:8px;font-size:10px}.package-copy{gap:4px;min-width:54px;padding-inline:5px}}
@media(prefers-reduced-motion:reduce){.download-package__toggle,.download-package__chevron,.package-copy{transition:none!important}.download-package__toggle:active,.package-copy:active{transform:none!important}}

/* 版本卡顶部以玻璃标签展示加载器与发行频道。 */
.download-card[data-game]{--download-inset:20px;min-width:0;padding:18px var(--download-inset);border-radius:26px;transform-origin:50% 70%;transition:transform .58s cubic-bezier(.18,.9,.22,1.12),box-shadow .55s ease,border-color .45s ease}
.download-card[data-game]::after{content:"";position:absolute;inset:1px;border:1px solid rgba(255,255,255,.28);border-radius:24px;pointer-events:none;z-index:3;opacity:.6;transition:opacity .5s ease,border-color .5s ease}
.download-card[data-game] .download-card__top{margin:0}
.download-card[data-game] .download-card__top :is(.download-card__loader,.release-badge){
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:27px;
  padding:4px 8px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--soft-surface);
  color:var(--ink);
  font-size:10px;
  line-height:1.3;
  font-weight:600;
  letter-spacing:.15px;
}
.download-card[data-game] .download-card__top .release-badge{
  --download-channel:var(--version-color);
  border-color:color-mix(in srgb,var(--download-channel) 28%,var(--line));
  background:color-mix(in srgb,var(--download-channel) 14%,transparent);
  color:color-mix(in srgb,var(--download-channel) 45%,var(--ink));
}
.download-card[data-game] .download-card__top .release-badge--beta{--download-channel:var(--gold)}
.download-card__loader .brand-icon{width:15px;height:15px;object-fit:contain}
.download-card[data-game] .download-card__identity{display:flex;align-items:center;gap:12px;margin:19px 0 14px;min-width:0}
.download-card__game-mark{display:grid;place-items:center;flex:none;width:55px;height:55px;transition:transform .65s cubic-bezier(.18,.9,.22,1.12)}
.download-card__game-mark .brand-icon{width:49px;height:49px;max-width:none;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(18,32,26,.27))}
.download-card__identity-copy{flex:1;min-width:0}
.download-card[data-game] .download-card__eyebrow{margin:0 0 4px;color:var(--muted);font-size:9px;line-height:1.4;font-weight:450;letter-spacing:.15px}
.download-card[data-game] .download-card__version{margin:0;font-size:31px;line-height:1.17;letter-spacing:-1.15px;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:normal;white-space:nowrap}
.download-card[data-game] .download-card__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;color:var(--ink);font-size:12px;line-height:1.5}
.download-card__build{font-weight:550;letter-spacing:.05px}
.download-card__format{padding:2px 6px;border:1px solid var(--line);border-radius:6px;color:var(--faint);font-size:9px;line-height:1.5;letter-spacing:.6px;font-weight:600}
.download-card[data-game] .download-card__date{display:flex;align-items:center;gap:6px;margin:0 0 16px;font-size:10px;line-height:1.5;color:var(--faint);font-variant-numeric:tabular-nums;flex-wrap:wrap}
.download-card__date>svg{width:12px;height:12px;stroke-width:1.5}
.download-card__date-separator{opacity:.5}
.download-card[data-game] .download-card__details{display:flex;flex-direction:column;gap:0;margin:0 0 13px;padding:6px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px}
.download-card[data-game] .download-card__detail{display:flex;justify-content:space-between;align-items:center;gap:8px!important;min-height:35px;padding:4px 0;flex-wrap:nowrap!important;transition:color .3s ease}
.download-card[data-game] .download-card__detail dt{display:flex;align-items:center;gap:7px;flex:none;color:var(--muted);font-size:10px;line-height:1.5}
.download-card[data-game] .download-card__detail dd{margin:0;min-width:0;max-width:54%;text-align:right;font-size:10px;line-height:1.55;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dependency-brand{display:grid;place-items:center;width:23px;height:23px;flex:none;overflow:hidden}
.dependency-brand .brand-icon{width:17px;height:17px;object-fit:contain;filter:none;max-width:none}
.dependency-brand--java .brand-icon{width:22px;height:22px;transform:scale(1.6)}
.dependency-brand--desktop .brand-icon{width:17px;height:17px}
.download-card[data-game] .download-card__note{display:flex;align-items:center;gap:6px;margin:0 0 17px;color:var(--muted);font-size:10px;line-height:1.6}
.download-card[data-game] .download-card__note::before{content:none}
.download-card__note>svg{width:14px;height:14px;color:var(--version-color);stroke-width:1.6}
.download-card[data-game] .download-card__actions{gap:8px;margin-top:auto}
.download-card[data-game] .download-button{min-height:56px;padding:10px 12px 10px 14px;border-radius:15px;border:1px solid rgba(255,255,255,.24);background:var(--version-color);background:color-mix(in srgb,var(--version-color) 88%,#14251f);box-shadow:0 8px 18px -12px var(--version-color),inset 0 1px 0 rgba(255,255,255,.15);transition:transform .42s cubic-bezier(.18,.9,.22,1.12),background .4s ease,box-shadow .4s ease}
.download-card[data-game] .download-button::before{content:"";position:absolute;inset:-40% -25%;pointer-events:none;background:linear-gradient(110deg,transparent 32%,rgba(255,255,255,.26) 50%,transparent 68%);transform:translateX(-100%);opacity:0;transition:transform .85s cubic-bezier(.22,.75,.2,1),opacity .3s ease}
.download-button__copy{display:flex;flex-direction:column;align-items:flex-start;gap:2px;position:relative;z-index:1}
.download-button__label{font-size:13px;line-height:1.4;font-weight:600;letter-spacing:.1px}
.download-button__source{font-size:8px;line-height:1.4;font-weight:400;letter-spacing:.35px;opacity:.68}
.download-button__glyph{display:grid;place-items:center;position:relative;z-index:1;width:31px;height:31px;flex:none;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:rgba(255,255,255,.09);transition:background .35s ease,transform .45s cubic-bezier(.18,.9,.22,1.12)}
.download-card[data-game] .download-button__glyph svg{width:17px;height:17px;transition:transform .45s cubic-bezier(.18,.9,.22,1.12)}
.download-card[data-game] .download-button:focus-visible{outline:3px solid var(--version-color);outline-offset:3px}
.download-card[data-game] .download-button:active{transform:translateY(1px) scale(.975);box-shadow:0 3px 9px -8px var(--version-color)}
.download-card[data-game] .download-button:active .download-button__glyph{transform:translateY(2px)}
.download-card[data-game] .download-package__toggle{min-height:44px;padding:10px 12px;border-radius:12px;font-size:11px;font-weight:500;line-height:1.5;letter-spacing:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.18);overflow:hidden;justify-content:space-between}
.download-package__toggle-label{display:inline-flex;align-items:center;gap:7px;position:relative;z-index:1}
.download-package__toggle-label>svg{width:14px;height:14px;stroke-width:1.45;color:var(--faint);transition:color .3s ease,transform .4s cubic-bezier(.22,1,.36,1)}
.download-package__toggle[aria-expanded=true] .download-package__toggle-label>svg{color:var(--version-color);transform:translateY(-1px)}
.download-package__panel{border-radius:0 0 12px 12px}
.download-package__body{padding:16px 3px 9px}
.package-checksum__value{font-size:10px;line-height:1.9;background:rgba(var(--paper-rgb),.22);box-shadow:inset 0 1px 5px rgba(20,31,27,.035);transition:border-color .3s,background .3s}
.package-checksum__value:focus{border-color:var(--version-color)}
.download-card .package-copy{min-height:44px;min-width:63px;padding:7px 9px;border-radius:10px;font-size:10px;line-height:1.5;gap:6px;box-shadow:none;isolation:isolate}
.package-copy__glyph{display:grid;place-items:center;flex:none;width:15px;height:15px}
.package-copy__glyph>svg{display:block;width:14px;height:14px}
.package-copy[data-state=success]{background:var(--soft-surface);border-color:var(--line)}
.package-copy[data-state=success] .package-copy__glyph{animation:package-copy-confirm .38s cubic-bezier(.18,.9,.22,1.12) both}
.package-copy-feedback{padding:7px 9px;border-radius:8px;background:var(--soft-surface)}
.package-copy-feedback:empty{padding:0}
.download-card[data-game] .download-card__release-link{min-height:32px;font-size:10px;gap:5px;transition:color .3s ease}
.download-card__release-link>svg{transition:transform .4s cubic-bezier(.22,1,.36,1)}
.download-card__release-link:hover>svg{transform:translate(2px,-2px)}
.download-brand-note{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;margin:18px 0 0;color:var(--faint);font-size:10px;line-height:1.8;text-align:center}
.download-brand-note__link{display:inline-flex;align-items:center;gap:3px;color:var(--muted);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:color .3s}
.download-brand-note__link:hover{color:var(--ink)}
.download-brand-note__link svg{width:11px;height:11px}
html[data-theme=dark] .download-card[data-game]::after{border-color:rgba(255,255,255,.09)}
html[data-theme=dark] .dependency-brand--desktop .brand-icon{filter:invert(.9)}
@keyframes package-copy-confirm{0%{transform:scale(.65);opacity:.5}70%{transform:scale(1.15);opacity:1}100%{transform:scale(1);opacity:1}}
@media(hover:hover) and (pointer:fine){
  .download-card[data-game]:hover{transform:translateY(-9px);box-shadow:0 26px 55px -32px color-mix(in srgb,var(--version-color) 55%,#12261c),var(--glass-shadow);border-color:color-mix(in srgb,var(--version-color) 42%,var(--glass-border))}
  .download-card[data-game]:hover::after{opacity:1;border-color:rgba(255,255,255,.45)}
  .download-card[data-game]:hover .download-card__game-mark{transform:translateY(-2px)}
  .download-card[data-game] .download-button:hover{transform:translateY(-2px);background:var(--version-color);box-shadow:0 12px 23px -14px var(--version-color)}
  .download-card[data-game] .download-button:hover::before{transform:translateX(100%);opacity:1}
  .download-card[data-game] .download-button:hover .download-button__glyph{background:rgba(255,255,255,.19)}
  .download-card[data-game] .download-button:hover .download-button__glyph svg{transform:translateY(2px)}
}
@media(max-width:1100px) and (min-width:901px){.download-card[data-game]{--download-inset:16px}.download-card[data-game] .download-card__identity{gap:9px}.download-card__game-mark{width:49px;height:49px;border-radius:14px}.download-card__game-mark .brand-icon{width:44px;height:44px}.download-card[data-game] .download-card__version{font-size:28px}.download-card[data-game] .download-card__detail dt,.download-card[data-game] .download-card__detail dd{font-size:9px}}
@media(max-width:640px){.download-card[data-game]{--download-inset:22px;border-radius:25px;padding-bottom:20px}.download-card[data-game] .download-card__identity{gap:13px;margin-top:20px}.download-card__game-mark{width:60px;height:60px;border-radius:18px}.download-card__game-mark .brand-icon{width:53px;height:53px}.download-card[data-game] .download-card__eyebrow{font-size:10px}.download-card[data-game] .download-card__version{font-size:35px}.download-card[data-game] .download-card__detail dt,.download-card[data-game] .download-card__detail dd{font-size:11px}.download-card[data-game] .download-card__detail{min-height:38px}.download-card[data-game] .download-card__date{font-size:11px}.download-card[data-game] .download-card__meta{font-size:13px}.download-card[data-game] .download-card__note{font-size:11px}.download-card[data-game] .download-button{min-height:58px}.download-card[data-game] .download-package__toggle{min-height:46px;font-size:12px}.download-brand-note{font-size:10px;gap:3px 7px}}
@media(max-width:360px){.download-card[data-game]{--download-inset:18px}.download-card[data-game] .download-card__identity{gap:10px}.download-card__game-mark{width:52px;height:52px;border-radius:15px}.download-card__game-mark .brand-icon{width:47px;height:47px}.download-card[data-game] .download-card__version{font-size:31px}.download-card[data-game] .download-card__detail dt,.download-card[data-game] .download-card__detail dd{font-size:10px}.dependency-brand{width:21px;height:21px}}
.download-card[data-game] .download-button:hover:active{transform:translateY(1px) scale(.975)}
@media(prefers-reduced-motion:reduce){.download-card[data-game],.download-card[data-game]::after,.download-card__game-mark,.download-card[data-game] .download-button,.download-card[data-game] .download-button::before,.download-button__glyph,.download-button__glyph svg,.download-package__toggle-label>svg,.download-card__release-link>svg{transition:none!important;animation:none!important}.download-card[data-game]:hover,.download-card[data-game]:hover .download-card__game-mark,.download-card[data-game] .download-button:hover,.download-card[data-game] .download-button:active,.download-card[data-game] .download-button:active .download-button__glyph,.download-card[data-game] .download-button:hover .download-button__glyph svg,.download-package__toggle[aria-expanded=true] .download-package__toggle-label>svg,.download-card__release-link:hover>svg{transform:none!important}.download-card[data-game] .download-button::before{display:none}.package-copy[data-state=success] .package-copy__glyph{animation:none!important}}
