/* Buttons */
.pco-btn {
  appearance: none;
  border: 1px solid transparent;
  border-radius: var(--pco-radius-md);
  padding: 0.75rem 1rem;
  font-weight: var(--pco-weight-semibold);
  font-size: var(--pco-text-md);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pco-2);
  transition: transform 120ms ease, filter 120ms ease, background 120ms ease, border-color 120ms ease;
  user-select: none;
}

.pco-btn:active { transform: translateY(1px); }
.pco-btn[disabled] { opacity: 0.55; cursor: not-allowed; }

.pco-btn-primary { background: var(--pco-primary); color: #fff; }
.pco-btn-primary:hover { filter: brightness(0.96); }

.pco-btn-secondary {
  background: #fff;
  color: var(--pco-primary);
  border-color: rgba(63,159,207,0.45);
}
.pco-btn-secondary:hover { filter: brightness(0.98); }

.pco-btn-danger { background: var(--pco-accent); color: #fff; }
.pco-btn-danger:hover { filter: brightness(0.96); }

/* Inputs */
.pco-label { font-size: var(--pco-text-sm); font-weight: var(--pco-weight-medium); color: var(--pco-ink); }

.pco-input, .pco-select, .pco-textarea {
  width: 100%;
  border: 1px solid var(--pco-border);
  border-radius: var(--pco-radius-md);
  padding: 0.75rem 0.85rem;
  font-size: var(--pco-text-md);
  background: #fff;
  color: var(--pco-ink);
}

.pco-input:focus, .pco-select:focus, .pco-textarea:focus {
  outline: none;
  box-shadow: var(--pco-ring);
  border-color: rgba(63,159,207,0.65);
}

.pco-help { font-size: var(--pco-text-sm); color: var(--pco-muted); }
.pco-error { font-size: var(--pco-text-sm); color: var(--pco-danger); }
.pco-input.is-error { border-color: rgba(220,38,38,0.55); }

/* Alerts */
.pco-alert {
  border-radius: var(--pco-radius-lg);
  padding: var(--pco-4);
  border: 1px solid var(--pco-border);
  background: #fff;
}

.pco-alert-info { border-color: rgba(37,99,235,0.25); background: rgba(37,99,235,0.06); }
.pco-alert-success { border-color: rgba(22,163,74,0.25); background: rgba(22,163,74,0.06); }
.pco-alert-warning { border-color: rgba(245,158,11,0.28); background: rgba(245,158,11,0.08); }
.pco-alert-danger { border-color: rgba(220,38,38,0.25); background: rgba(220,38,38,0.06); }

/* Chips */
.pco-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--pco-2);
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  border: 1px solid rgba(63,159,207,0.35);
  background: rgba(63,159,207,0.08);
  color: var(--pco-ink);
  font-size: var(--pco-text-sm);
  font-weight: var(--pco-weight-medium);
}

/* Dark-mode component refinements */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pco-input,
  :root:not([data-theme="light"]) .pco-select,
  :root:not([data-theme="light"]) .pco-textarea {
    background: rgba(255,255,255,0.04);
    border-color: var(--pco-border);
    color: var(--pco-ink);
  }

  :root:not([data-theme="light"]) .pco-btn-secondary {
    background: rgba(255,255,255,0.04);
    border-color: rgba(73,169,214,0.40);
    color: var(--pco-ink);
  }

  :root:not([data-theme="light"]) .pco-card,
  :root:not([data-theme="light"]) .pco-alert {
    background: var(--pco-surface);
    border-color: var(--pco-border);
  }
}

:root[data-theme="dark"] .pco-input,
:root[data-theme="dark"] .pco-select,
:root[data-theme="dark"] .pco-textarea {
  background: rgba(255,255,255,0.04);
  border-color: var(--pco-border);
  color: var(--pco-ink);
}

:root[data-theme="dark"] .pco-btn-secondary {
  background: rgba(255,255,255,0.04);
  border-color: rgba(73,169,214,0.40);
  color: var(--pco-ink);
}

:root[data-theme="dark"] .pco-card,
:root[data-theme="dark"] .pco-alert {
  background: var(--pco-surface);
  border-color: var(--pco-border);
}
