/**
 * NANO FILTROS - Brand UI System (Component Library Styles)
 * Health-Tech Home Maintenance · Production-ready components
 */

@import url('../design-tokens/tokens.css');

/* ==========================================================================
   Base & Reset for Components
   ========================================================================== */
.pa-scope {
  font-family: var(--pa-font-ui);
  color: var(--nano-violeta-noturno);
  line-height: 1.5;
  box-sizing: border-box;
}

.pa-scope *, .pa-scope *::before, .pa-scope *::after {
  box-sizing: border-box;
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.pa-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  font-family: var(--pa-font-ui);
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1;
  border-radius: var(--pa-radius-md);
  border: 1.5px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--pa-transition-normal);
  user-select: none;
  white-space: nowrap;
}

.pa-btn:focus-visible {
  outline: 3px solid rgba(131, 96, 149, 0.5);
  outline-offset: 2px;
}

/* Button Variants */
.pa-btn-primary {
  background: linear-gradient(135deg, var(--nano-violeta-assinatura) 0%, #714282 100%);
  color: #FFFFFF;
  box-shadow: 0 4px 14px rgba(94, 36, 110, 0.25);
}

.pa-btn-primary:hover {
  background: linear-gradient(135deg, #714282 0%, #7A518B 100%);
  box-shadow: 0 6px 20px rgba(94, 36, 110, 0.35);
  transform: translateY(-2px);
}

.pa-btn-primary:active {
  transform: translateY(0);
}

.pa-btn-lavanda {
  background: linear-gradient(135deg, var(--nano-lavanda-premium) 0%, var(--nano-lavanda-bruma) 100%);
  color: #FFFFFF;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(131, 96, 149, 0.25);
}

.pa-btn-lavanda:hover {
  background: linear-gradient(135deg, var(--nano-lavanda-bruma) 0%, var(--nano-lavanda-premium) 100%);
  box-shadow: 0 6px 22px rgba(131, 96, 149, 0.4);
  transform: translateY(-2px);
}

.pa-btn-dark {
  background: var(--nano-violeta-noturno);
  color: #FFFFFF;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(35, 33, 63, 0.3);
}

.pa-btn-dark:hover {
  background: var(--nano-violeta-tecnico);
  transform: translateY(-2px);
}

.pa-btn-outline-violet {
  background: transparent;
  color: var(--nano-violeta-assinatura);
  border-color: var(--nano-violeta-assinatura);
}

.pa-btn-outline-violet:hover {
  background: rgba(94, 36, 110, 0.08);
  border-color: var(--nano-violeta-mineral);
}

.pa-btn-outline-lavanda {
  background: transparent;
  color: var(--nano-lavanda-premium);
  border-color: var(--nano-lavanda-premium);
}

.pa-btn-outline-lavanda:hover {
  background: rgba(131, 96, 149, 0.08);
  border-color: var(--nano-lavanda-bruma);
}

/* Backward compatibility aliases */
.pa-btn-aqua { background: var(--nano-lavanda-premium); color: #fff; }
.pa-btn-cyan { background: var(--nano-violeta-assinatura); color: #fff; }
.pa-btn-outline-navy { border-color: var(--nano-violeta-assinatura); color: var(--nano-violeta-assinatura); }
.pa-btn-outline-navy:hover { background: rgba(94, 36, 110, 0.08); }
.pa-btn-outline-aqua { border-color: var(--nano-lavanda-premium); color: var(--nano-lavanda-premium); }
.pa-btn-outline-aqua:hover { background: rgba(131, 96, 149, 0.08); }

.pa-btn-ghost {
  background: transparent;
  color: var(--portal-text-muted);
  border-color: var(--portal-border);
}

.pa-btn-ghost:hover {
  background: var(--portal-surface-secondary);
  color: var(--portal-text-heading);
}

.pa-btn-ghost.active {
  background: var(--nano-violeta-assinatura);
  color: #FFFFFF;
  border-color: var(--nano-violeta-assinatura);
}

.pa-btn-sm {
  padding: 8px 16px;
  font-size: 0.82rem;
  border-radius: var(--pa-radius-sm);
}

.pa-btn-lg {
  padding: 16px 32px;
  font-size: 1.05rem;
  border-radius: var(--pa-radius-lg);
}

/* ==========================================================================
   Badges & Tags
   ========================================================================== */
.pa-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-family: var(--pa-font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: var(--pa-radius-full);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.pa-badge-violet {
  background: rgba(94, 36, 110, 0.12);
  color: var(--nano-violeta-assinatura);
  border: 1px solid rgba(94, 36, 110, 0.25);
}

.pa-badge-lavanda {
  background: rgba(131, 96, 149, 0.12);
  color: var(--nano-lavanda-premium);
  border: 1px solid rgba(131, 96, 149, 0.25);
}

.pa-badge-dark {
  background: var(--nano-violeta-noturno);
  color: #FFFFFF;
}

.pa-badge-mineral {
  background: var(--nano-papel-mineral);
  color: var(--nano-violeta-noturno);
  border: 1px solid var(--nano-gelo-azulado);
}

/* Backward compatibility aliases */
.pa-badge-navy { background: rgba(94, 36, 110, 0.12); color: var(--nano-violeta-assinatura); border: 1px solid rgba(94, 36, 110, 0.25); }
.pa-badge-aqua { background: rgba(131, 96, 149, 0.12); color: var(--nano-lavanda-premium); border: 1px solid rgba(131, 96, 149, 0.25); }

/* ==========================================================================
   Cards & Content Containers
   ========================================================================== */
.pa-card {
  background: var(--portal-card-bg);
  border: 1px solid var(--portal-border);
  border-radius: var(--pa-radius-lg);
  padding: 28px;
  box-shadow: var(--portal-shadow);
  transition: all var(--pa-transition-normal);
  display: flex;
  flex-direction: column;
}

.pa-card:hover {
  border-color: rgba(94, 36, 110, 0.3);
  box-shadow: 0 8px 30px rgba(94, 36, 110, 0.12);
  transform: translateY(-2px);
}

.pa-card-highlight {
  border-color: rgba(94, 36, 110, 0.4);
  background: linear-gradient(180deg, var(--portal-card-bg) 0%, rgba(94, 36, 110, 0.04) 100%);
}

.pa-card-dark {
  background: var(--nano-violeta-noturno);
  color: #FFFFFF;
  border-color: rgba(131, 96, 149, 0.25);
}

.pa-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.pa-card-title {
  font-family: var(--pa-font-brand);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--portal-text-heading);
  letter-spacing: -0.01em;
}

.pa-card-dark .pa-card-title {
  color: #FFFFFF;
}

.pa-card-desc {
  font-size: 0.9rem;
  color: var(--portal-text-muted);
  line-height: 1.6;
}

.pa-card-dark .pa-card-desc {
  color: var(--nano-gelo-azulado);
}
