﻿/* Agenda PSI — Design System 2.0
   Fonte visual oficial: Landing Page Agenda PSI */

:root {
  --aps-primary: #26215c;
  --aps-primary-light: #3d3680;
  --aps-primary-dark: #1a1740;
  --aps-accent: #7f77dd;
  --aps-accent-soft: rgba(127, 119, 221, .12);
  --aps-cta: #534ab7;
  --aps-cta-hover: #4339a3;
  --aps-bg: #fafafe;
  --aps-bg-warm: #f9f8fc;
  --aps-surface: #fff;
  --aps-surface-subtle: #f8f7ff;
  --aps-surface-lilac: #f5f3ff;
  --aps-text: #1a1a2e;
  --aps-text-secondary: #5c5c7a;
  --aps-text-muted: #777792;
  --aps-border: #eeedfe;
  --aps-border-strong: #dedbf8;
  --aps-success: #10b981;
  --aps-success-soft: #d1fae5;
  --aps-warning: #f59e0b;
  --aps-warning-soft: #fef3c7;
  --aps-danger: #ef4444;
  --aps-danger-soft: #fee2e2;
  --aps-info: #3b82f6;
  --aps-info-soft: #dbeafe;

  --aps-font-display: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --aps-font-body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --aps-text-xs: .75rem;
  --aps-text-sm: .875rem;
  --aps-text-base: 1rem;
  --aps-text-lg: 1.125rem;
  --aps-text-xl: 1.25rem;
  --aps-text-2xl: 1.5rem;
  --aps-text-3xl: 2rem;

  --aps-space-1: .25rem;
  --aps-space-2: .5rem;
  --aps-space-3: .75rem;
  --aps-space-4: 1rem;
  --aps-space-5: 1.25rem;
  --aps-space-6: 1.5rem;
  --aps-space-8: 2rem;
  --aps-space-10: 2.5rem;
  --aps-space-12: 3rem;

  --aps-radius-sm: 6px;
  --aps-radius-md: 10px;
  --aps-radius-lg: 14px;
  --aps-radius-xl: 20px;
  --aps-radius-2xl: 28px;
  --aps-radius-full: 999px;

  --aps-shadow-sm: 0 1px 2px rgba(26, 26, 46, .04);
  --aps-shadow-md: 0 4px 16px rgba(26, 26, 46, .055), 0 1px 3px rgba(26, 26, 46, .035);
  --aps-shadow-lg: 0 12px 40px rgba(26, 26, 46, .08), 0 4px 12px rgba(26, 26, 46, .035);
  --aps-shadow-focus: 0 0 0 4px rgba(127, 119, 221, .18);

  --aps-ease: cubic-bezier(.4, 0, .2, 1);
  --aps-fast: 150ms var(--aps-ease);
  --aps-base: 250ms var(--aps-ease);
  --aps-sidebar: 252px;
  --aps-content: 1440px;
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; -webkit-font-smoothing: antialiased; }
body { margin: 0; color: var(--aps-text); background: var(--aps-bg); font: 400 var(--aps-text-base)/1.55 var(--aps-font-body); }
button, input { font: inherit; }
button { color: inherit; }

.aps-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.aps-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: var(--aps-radius-md);
  cursor: pointer;
  font-size: var(--aps-text-sm);
  font-weight: 700;
  transition: transform var(--aps-fast), background var(--aps-fast), border-color var(--aps-fast), box-shadow var(--aps-fast);
}
.aps-btn:hover { transform: translateY(-1px); }
.aps-btn:active { transform: translateY(0); }
.aps-btn:focus-visible, .aps-icon-btn:focus-visible, .aps-nav-item:focus-visible { outline: 0; box-shadow: var(--aps-shadow-focus); }
.aps-btn--primary { color: #fff; background: var(--aps-cta); box-shadow: 0 6px 18px rgba(83, 74, 183, .18); }
.aps-btn--primary:hover { background: var(--aps-cta-hover); }
.aps-btn--secondary { color: var(--aps-primary); background: #fff; border-color: var(--aps-border); }
.aps-btn--secondary:hover { border-color: var(--aps-border-strong); background: var(--aps-surface-subtle); }

.aps-icon-btn {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--aps-border);
  border-radius: var(--aps-radius-md);
  background: #fff;
  cursor: pointer;
  transition: background var(--aps-fast), border-color var(--aps-fast), transform var(--aps-fast);
}
.aps-icon-btn:hover { transform: translateY(-1px); border-color: var(--aps-border-strong); background: var(--aps-surface-subtle); }

.aps-card {
  border: 1px solid var(--aps-border);
  border-radius: var(--aps-radius-xl);
  background: var(--aps-surface);
  box-shadow: var(--aps-shadow-md);
}
.aps-card--quiet { box-shadow: var(--aps-shadow-sm); }
.aps-card--focus { box-shadow: var(--aps-shadow-lg); }

.aps-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: max-content;
  padding: 5px 9px;
  border-radius: var(--aps-radius-full);
  font-size:14px;
  font-weight: 700;
}
.aps-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.aps-badge--success { color: #047857; background: var(--aps-success-soft); }
.aps-badge--warning { color: #b45309; background: var(--aps-warning-soft); }
.aps-badge--neutral { color: var(--aps-text-secondary); background: #f1f5f9; }

.aps-avatar {
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(127, 119, 221, .2);
  border-radius: 12px;
  color: var(--aps-cta);
  background: var(--aps-surface-lilac);
  font: 700 12px/1 var(--aps-font-display);
}

.aps-kicker { color: var(--aps-cta); font-size:14px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.aps-heading { margin: 0; color: var(--aps-primary); font-family: var(--aps-font-display); letter-spacing: -.035em; }
.aps-muted { color: var(--aps-text-muted); }

/* Estados oficiais: claros, tranquilos e sem aparência técnica. */
.aps-state {
  display: grid;
  place-items: center;
  min-height: 180px;
  padding: 28px;
  border: 1px dashed var(--aps-border-strong);
  border-radius: var(--aps-radius-lg);
  color: var(--aps-text-secondary);
  background: var(--aps-surface-subtle);
  text-align: center;
}
.aps-state__icon { display: grid; place-items: center; width: 42px; height: 42px; margin: 0 auto 12px; border-radius: 13px; color: var(--aps-cta); background: var(--aps-accent-soft); }
.aps-state__title { margin: 0; color: var(--aps-primary); font: 750 15px/1.3 var(--aps-font-display); }
.aps-state__text { max-width: 360px; margin: 7px auto 0; color: var(--aps-text-muted); font-size:14px; }
.aps-state--error { border-style: solid; border-color: #fecaca; background: #fffafa; }
.aps-state--error .aps-state__icon { color: #b91c1c; background: #fee2e2; }

.aps-skeleton { position: relative; overflow: hidden; border-radius: 9px; background: #eeedf8; }
.aps-skeleton::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent); animation: aps-shimmer 1.5s ease-in-out infinite; }
@keyframes aps-shimmer { to { transform: translateX(100%); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

