.topbar { justify-content: space-between; padding-right: 20px; }
.downloads-toggle {
  position: relative;
  align-self: center;
  width: 94px;
  padding: 0 10px;
  justify-content: flex-start;
  gap: 6px;
  font-size: 13px;
  height: 36px;
  border-radius: 8px;
  background: var(--color-white);
  box-shadow: var(--elevation-raised);
}
.model-download-symbol { display: block; width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke-width: 1.5; }
.download-ring-track { stroke: var(--color-neutral-200); }
.download-ring-value { stroke: var(--color-neutral-800); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 240ms cubic-bezier(.22, 1, .36, 1); }
.downloads-toggle[data-state="ready"] .download-ring-value { stroke-dasharray: none; }
.download-alert { display: none; position: absolute; top: 1px; right: 1px; width: 7px; height: 7px; background: var(--color-red-600); border-radius: 50%; outline: 2px solid var(--color-neutral-50); }
.downloads-toggle[data-state="error"] .download-alert { display: block; }
.downloads-toggle[aria-expanded="true"] { background: var(--color-neutral-100); }
.downloads-panel {
  position: fixed;
  inset: calc(var(--topbar-height) + 8px) 16px auto auto;
  margin: 0;
  width: min(380px, calc(100vw - 24px));
  max-height: calc(100dvh - var(--topbar-height) - 32px);
  overflow: auto;
  padding: 0;
  border: 0;
  border-radius: 16px;
  color: var(--color-neutral-800);
  background: var(--color-white);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-black) 5.88%, transparent), 0 8px 24px -8px color-mix(in srgb, var(--color-black) 14.90%, transparent), 0 24px 48px -16px color-mix(in srgb, var(--color-black) 10.20%, transparent);
  opacity: 0;
  transform: translateY(-4px) scale(.98);
  transform-origin: top right;
  transition: opacity 160ms ease-out, transform 160ms cubic-bezier(.22, 1, .36, 1), display 160ms allow-discrete, overlay 160ms allow-discrete;
}
.downloads-panel:popover-open { opacity: 1; transform: none; }
@starting-style { .downloads-panel:popover-open { opacity: 0; transform: translateY(-4px) scale(.98); } }
.downloads-panel::backdrop { background: transparent; }
.downloads-heading { display: flex; justify-content: space-between; align-items: center; padding: 12px 12px 8px 20px; }
.downloads-heading h2 { margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; letter-spacing: 0; }
.downloads-heading .icon-button { box-shadow: none; background: transparent; }
.downloads-list { list-style: none; padding: 0 8px 4px; margin: 0; }
.download-item { display: flex; align-items: center; gap: 12px; padding: 12px; }
.download-item + .download-item { border-top: 1px solid var(--color-neutral-100); }
.download-model-icon { display: grid; place-items: center; width: 36px; height: 40px; border-radius: 9px; background: var(--color-neutral-50); flex-shrink: 0; }
.download-model-icon .ui-icon { width: 20px; height: 20px; opacity: .75; }
.download-copy { min-width: 0; flex: 1; display: grid; gap: 1px; }
.download-copy strong { font-size: 13px; line-height: 18px; font-weight: 500; }
.download-detail, .download-status { font-size: 11px; line-height: 15px; color: var(--color-neutral-400); }
.download-status { color: var(--color-neutral-600); font-variant-numeric: tabular-nums; }
.download-item[data-status="error"] .download-status { color: var(--color-red-600); }
.download-action { width: 28px; height: 28px; border-radius: 8px; box-shadow: var(--elevation-raised); background: var(--color-white); }
.download-action[hidden], .download-check[hidden], .download-meter[hidden] { display: none; }
.download-check { display: grid; place-items: center; width: 28px; flex-shrink: 0; }
.download-check .ui-icon { width: 16px; height: 16px; opacity: .6; }
.download-meter { height: 3px; margin: 3px 0 2px; overflow: hidden; border-radius: 3px; background: var(--color-neutral-200); }
.download-meter > span { display: block; height: 100%; background: var(--color-neutral-600); transform: scaleX(0); transform-origin: left center; transition: transform 240ms cubic-bezier(.22, 1, .36, 1); }
@media (hover: hover) and (pointer: fine) { .downloads-toggle:hover, .download-action:hover { background: var(--color-neutral-50); box-shadow: var(--elevation-raised); } .downloads-heading .icon-button:hover { background: var(--color-neutral-100); box-shadow: none; } }
@media (max-width: 767px) { .downloads-panel { right: 12px; } }
@media (max-width: 380px) {
  .topbar { padding-right: 12px; }
  .topbar .brand { padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) { .downloads-panel { transform: none; } }

.file-save-dialog { width: min(380px, calc(100vw - 32px)); }
.file-save-name { overflow-wrap: anywhere; }
.file-save-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
@media (pointer: coarse) { .download-action { width: 36px; height: 36px; } }
