/*
 * Summary Ribbon Component
 * Compact horizontal metrics bar for project pages.
 * Sits below the tabs in the project header.
 */

@layer components {
  /* ==========================================================================
     Ribbon Container
     ========================================================================== */

  .summary-ribbon {
    display: flex;
    align-items: center;
    gap: var(--rd-sp-2);
    margin-block: var(--rd-sp-3) var(--rd-sp-4);
    padding: var(--rd-sp-2) var(--rd-sp-3);
    background: var(--rd-bg-raised);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius-md);
    transition: background var(--rd-dur-fast) var(--rd-ease);
  }

  .summary-ribbon-inner {
    display: flex;
    align-items: center;
    gap: var(--rd-sp-4);
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none; /* Firefox */
  }

  .summary-ribbon-inner::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
  }

  /* ==========================================================================
     Individual Metric
     ========================================================================== */

  .ribbon-metric {
    display: flex;
    align-items: center;
    gap: var(--rd-sp-1);
    font-size: var(--rd-text-sm);
    white-space: nowrap;
    flex-shrink: 0;
    padding: var(--rd-sp-1) var(--rd-sp-2);
    position: relative;
  }

  /* Separator between metrics */
  .ribbon-metric + .ribbon-metric::before {
    content: "";
    position: absolute;
    left: calc(var(--rd-sp-2) * -1);
    top: 20%;
    height: 60%;
    width: 1px;
    background: var(--rd-border);
  }

  .ribbon-metric-icon {
    display: flex;
    align-items: center;
    color: var(--rd-fg-muted);
    flex-shrink: 0;
  }

  .ribbon-metric-value {
    font-weight: 600;
    color: var(--rd-fg);
    font-variant-numeric: tabular-nums;
  }

  .ribbon-metric-label {
    color: var(--rd-fg-muted);
    font-size: var(--rd-text-xs);
  }

  /* ==========================================================================
     Inline Progress Bar (within a metric)
     ========================================================================== */

  .ribbon-progress-bar {
    width: 48px;
    height: 4px;
    background: var(--rd-bg-sunken);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius-full);
    overflow: hidden;
    flex-shrink: 0;
  }

  .ribbon-progress-fill {
    height: 100%;
    transition: width var(--rd-dur) var(--rd-ease);
  }

  .ribbon-progress-fill-active {
    background: var(--rd-accent);
  }

  .ribbon-progress-fill-done {
    background: var(--rd-success);
  }

  /* Budget status colors */
  .ribbon-progress-fill-budget-healthy {
    background: var(--rd-success);
  }

  .ribbon-progress-fill-budget-warning {
    background: var(--rd-warn);
  }

  .ribbon-progress-fill-budget-critical {
    background: var(--rd-warn);
  }

  .ribbon-progress-fill-budget-over {
    background: var(--rd-danger);
  }

  /* ==========================================================================
     Alert Indicators
     ========================================================================== */

  .ribbon-alert {
    display: flex;
    align-items: center;
    color: var(--rd-danger);
  }

  .ribbon-alert-critical {
    color: var(--rd-warn);
  }

  /* ==========================================================================
     Budget Status Styling
     ========================================================================== */

  .ribbon-budget-over .ribbon-metric-value {
    color: var(--rd-danger);
  }

  .ribbon-budget-critical .ribbon-metric-value {
    color: var(--rd-warn);
  }

  .ribbon-budget-warning .ribbon-metric-value {
    color: var(--rd-warn);
  }

  /* ==========================================================================
     Schedule Status Styling
     ========================================================================== */

  .ribbon-schedule-behind .ribbon-metric-value {
    color: var(--rd-danger);
  }

  .ribbon-schedule-behind .ribbon-metric-icon {
    color: var(--rd-danger);
  }

  /* ==========================================================================
     Toggle Button
     ========================================================================== */

  .ribbon-toggle {
    display: none; /* Hidden on desktop, shown on mobile */
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: var(--rd-sp-1);
    color: var(--rd-fg-muted);
    cursor: pointer;
    flex-shrink: 0;
    transition: transform var(--rd-dur-fast) var(--rd-ease);
  }

  .ribbon-toggle:hover {
    color: var(--rd-fg);
  }

  .summary-ribbon.ribbon-collapsed .ribbon-toggle {
    transform: rotate(180deg);
  }

  /* ==========================================================================
     Collapsed State
     ========================================================================== */

  .summary-ribbon.ribbon-collapsed .summary-ribbon-inner {
    display: none;
  }

  /* ==========================================================================
     Responsive: Collapse on smaller viewports
     ========================================================================== */

  @media (max-width: 768px) {
    .summary-ribbon {
      flex-wrap: wrap;
    }

    .summary-ribbon-inner {
      flex-wrap: wrap;
      gap: var(--rd-sp-2);
    }

    .ribbon-metric {
      font-size: var(--rd-text-xs);
    }

    /* Hide less important metrics on small screens */
    .ribbon-metric-dates {
      display: none;
    }

    .ribbon-toggle {
      display: flex;
    }
  }

  @media (max-width: 480px) {
    .summary-ribbon-inner {
      gap: var(--rd-sp-1);
    }

    .ribbon-metric-label {
      display: none;
    }

    .ribbon-progress-bar {
      display: none;
    }
  }
}
