/* ═══════════════════════════════════════════════
   Ákotí Progress — Pure CSS

   <div class="akoti-progress" style="--progress: 65">
     <div class="akoti-progress-bar"></div>
     <span class="akoti-progress-label">65%</span>
   </div>

   Variants: .akoti-progress-sm, .akoti-progress-lg
   Colors:   .akoti-progress-success, .akoti-progress-warning, .akoti-progress-danger
   Striped:  .akoti-progress-striped
   Steps:    .akoti-progress-steps (discrete segments)
   ═══════════════════════════════════════════════ */

.akoti-progress {
  position: relative;
  height: 12px;
  background: #e8eaed;
  border-radius: 12px 4px 12px 4px;
  overflow: hidden;
  font-family: 'Outfit', system-ui, sans-serif;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.06);
}

.akoti-progress-bar {
  height: 100%;
  width: calc(var(--progress, 0) * 1%);
  background: linear-gradient(135deg, #1a2f5e, #2c5aa0);
  border-radius: inherit;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}

.akoti-progress-label {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  font-weight: 700;
  color: #5f6368;
}

/* When bar is wide enough, label inside */
@container (min-width: 60px) {
  .akoti-progress-label { color: white; }
}

/* Size variants */
.akoti-progress-sm { height: 6px; }
.akoti-progress-sm .akoti-progress-label { display: none; }

.akoti-progress-lg { height: 24px; border-radius: 16px 6px 16px 6px; }
.akoti-progress-lg .akoti-progress-label { font-size: 12px; }

/* Color variants */
.akoti-progress-success .akoti-progress-bar { background: linear-gradient(135deg, #2e7d32, #43a047); }
.akoti-progress-warning .akoti-progress-bar { background: linear-gradient(135deg, #e65100, #fb8c00); }
.akoti-progress-danger .akoti-progress-bar { background: linear-gradient(135deg, #c62828, #e53935); }

/* Striped */
.akoti-progress-striped .akoti-progress-bar {
  background-image: linear-gradient(
    45deg,
    rgba(255,255,255,0.15) 25%,
    transparent 25%,
    transparent 50%,
    rgba(255,255,255,0.15) 50%,
    rgba(255,255,255,0.15) 75%,
    transparent 75%
  );
  background-size: 20px 20px;
  animation: akoti-progress-stripe 1s linear infinite;
}

@keyframes akoti-progress-stripe {
  0% { background-position: 20px 0; }
  100% { background-position: 0 0; }
}

/* Indeterminate */
.akoti-progress-indeterminate .akoti-progress-bar {
  width: 30%;
  animation: akoti-progress-indeterminate 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes akoti-progress-indeterminate {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(400%); }
}

/* Circular variant */
.akoti-progress-circle {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: conic-gradient(#1a2f5e calc(var(--progress, 0) * 1%), #e8eaed 0);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.akoti-progress-circle::after {
  content: '';
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: white;
}
.akoti-progress-circle .akoti-progress-label {
  position: absolute;
  right: auto;
  font-size: 11px;
  color: #1e1e24;
  z-index: 1;
}

/* Dark mode */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .akoti-progress { background: #2a2a32; }
  :root:not([data-theme="light"]) .akoti-progress-bar { background: linear-gradient(135deg, #a8c8e8, #7aa8d0); }
  :root:not([data-theme="light"]) .akoti-progress-label { color: #9a9aa6; }
  :root:not([data-theme="light"]) .akoti-progress-circle::after { background: #1e1e24; }
}
