/* frontend/public/css/loader.css
   Общий переиспользуемый лоадер — круговой прогресс + процент + подпись.
   Используется на всех страницах, где идёт запрос/парсинг (см. js/loader.js). */

.rgt-loader-overlay{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;background:rgba(10,10,12,.86);z-index:20;padding:20px;text-align:center;
}
.rgt-loader-block{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:30px 20px;text-align:center;
}

.rgt-loader-wrap{position:relative;width:64px;height:64px;flex-shrink:0;}
.rgt-loader-ring-svg{transform:rotate(-90deg);}
.rgt-loader-ring-bg{fill:none;stroke:var(--hairline);stroke-width:5;}
.rgt-loader-ring-fg{fill:none;stroke:var(--gold);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .2s ease;}
.rgt-loader-ring-spin{animation:rgt-spin 1.4s linear infinite;transform-origin:32px 32px;}
.rgt-loader-pct{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--parchment);font-weight:600;
}
.rgt-loader-label{font-size:12px;color:var(--dim);max-width:280px;line-height:1.5;}

@keyframes rgt-spin{ to{ transform:rotate(360deg); } }

/* Компактный инлайн-вариант — для кнопок и маленьких зон (без круга/процента) */
.rgt-spinner-inline{display:inline-flex;align-items:center;gap:7px;}
.rgt-spinner{
  width:13px;height:13px;border-radius:50%;flex-shrink:0;
  border:2px solid rgba(255,255,255,.25);border-top-color:currentColor;
  animation:rgt-spin .7s linear infinite;
}
