/* Sovereign UI Kit — Reusable component library */
/* Dark mode native — uses surface/cream tokens only */
/* All rules wrapped in @layer components to match sovereign.css cascade structure */

@layer components {

  /* ─────────────────────────────────────────────
     Buttons (.btn)
     ───────────────────────────────────────────── */

  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    border: none;
    cursor: pointer;
    border-radius: var(--radius-sm);
    padding: 10px 22px;
    transition: all var(--ease-normal);
    letter-spacing: 0.01em;
    text-decoration: none;
    line-height: 1;
  }

  .btn-primary {
    background: var(--terracotta-button);
    color: white;
  }

  .btn-primary:hover {
    filter: brightness(0.88);
  }

  .btn-secondary {
    background: var(--surface-3);
    color: var(--cream);
  }

  .btn-secondary:hover {
    background: var(--surface-4);
  }

  .btn-ghost {
    background: transparent;
    color: var(--terracotta);
    padding: 10px 16px;
  }

  .btn-ghost:hover {
    background: var(--terracotta-muted);
  }

  .btn-danger {
    background: rgba(199, 93, 74, 0.12);
    color: var(--danger);
  }

  .btn-danger:hover {
    background: rgba(199, 93, 74, 0.2);
  }

  .btn:focus-visible {
    outline: 2px solid var(--terracotta-light);
    outline-offset: 2px;
  }

  .btn:active {
    transform: scale(0.97);
  }

  .btn:disabled,
  .btn[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
  }

  .btn-sm {
    font-size: 13px;
    padding: 7px 16px;
  }


  /* ─────────────────────────────────────────────
     Inputs (.input-group, .input-label, .input-field)
     ───────────────────────────────────────────── */

  .input-group {
    margin-bottom: var(--space-4);
  }

  .input-label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: var(--ink-ghost);
    margin-bottom: var(--space-2);
    letter-spacing: 0.02em;
  }

  .input-field {
    width: 100%;
    font-family: var(--font-body);
    font-size: 15px;
    padding: 11px 14px;
    border: 1.5px solid var(--surface-3);
    border-radius: var(--radius-sm);
    background: var(--surface-1);
    color: var(--cream);
    transition: border-color var(--ease-normal);
    outline: none;
  }

  .input-field:focus {
    border-color: var(--terracotta);
  }

  .input-field::placeholder {
    color: var(--ink-muted);
  }

  .input-field:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    background: var(--surface-2);
  }

  .input-field.error {
    border-color: var(--danger);
  }

  .input-hint {
    font-size: 12px;
    color: var(--ink-ghost);
    margin-top: var(--space-1);
  }

  .input-error-msg {
    font-size: 12px;
    color: var(--danger);
    margin-top: var(--space-1);
  }


  /* ─────────────────────────────────────────────
     Tags / Chips (.tag)
     ───────────────────────────────────────────── */

  .tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    padding: 5px 12px;
    border-radius: 100px;
    letter-spacing: 0.01em;
  }

  .tag-terracotta {
    background: var(--terracotta-muted);
    color: var(--terracotta-light);
  }

  .tag-sage {
    background: var(--sage-muted);
    color: var(--sage);
  }

  .tag-sky {
    background: var(--sky-muted);
    color: var(--sky);
  }

  .tag-amber {
    background: var(--amber-muted);
    color: var(--amber);
  }

  .tag-danger {
    background: rgba(199, 93, 74, 0.12);
    color: var(--danger);
  }

  .tag-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
  }


  /* ─────────────────────────────────────────────
     Stat Cards (.stat-row, .stat-item)
     ───────────────────────────────────────────── */

  .stat-row {
    display: flex;
    gap: var(--space-5);
  }

  .stat-item {
    flex: 1;
  }

  .stat-label {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-ghost);
    margin-bottom: var(--space-1);
  }

  .stat-value {
    font-family: var(--font-display);
    font-size: 28px;
    color: var(--cream);
  }

  .stat-value .unit {
    font-size: 16px;
    color: var(--ink-ghost);
  }

  .stat-trend {
    font-size: 12px;
    color: var(--sage);
    font-weight: 500;
    margin-top: 2px;
  }

  .stat-trend.down {
    color: var(--danger);
  }

  .stat-trend.neutral {
    color: var(--ink-ghost);
  }


  /* ─────────────────────────────────────────────
     Briefing Cards (.brief-card)
     ───────────────────────────────────────────── */

  .brief-card {
    background: var(--surface-2);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    border: 1px solid var(--surface-3);
    transition: border-color var(--ease-normal);
    cursor: pointer;
  }

  .brief-card:hover {
    border-color: var(--surface-4);
  }

  .brief-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-3);
  }

  .brief-label {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-ghost);
  }

  .brief-icon {
    font-size: 16px;
    opacity: 0.5;
  }

  .brief-value {
    font-family: var(--font-display);
    font-size: 26px;
    color: var(--cream);
    margin-bottom: var(--space-1);
  }

  .brief-detail {
    font-size: 13px;
    color: var(--ink-ghost);
    font-weight: 300;
  }

  .brief-detail .positive {
    color: var(--sage);
  }

  .brief-detail .warning {
    color: var(--amber);
  }

  .brief-detail .danger {
    color: var(--danger);
  }

  .brief-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
  }


  /* ─────────────────────────────────────────────
     Utilities
     ───────────────────────────────────────────── */

  .divider {
    height: 1px;
    background: var(--divider);
    margin: var(--space-5) 0;
  }

  .section-label {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-ghost);
    margin-bottom: var(--space-4);
  }

  .mono-value {
    font-family: var(--mono);
    font-size: 13px;
    color: var(--cream);
  }

}
