/* Impacto Fit Pass — identidade visual compartilhada */
:root {
    --ifp-bg: #070a07;
    --ifp-surface: #101510;
    --ifp-surface-2: #171d17;
    --ifp-line: rgba(190, 242, 100, .16);
    --ifp-green: #84cc16;
    --ifp-green-light: #bef264;
    --ifp-green-dark: #4d7c0f;
    --ifp-text: #f7fee7;
    --ifp-muted: #a8b39f;
    --ifp-danger: #fb7185;
    --ifp-radius: 18px;
    --ifp-shadow: 0 22px 60px rgba(0, 0, 0, .38);
  }
  
  html { color-scheme: dark; background: var(--ifp-bg); }
  body {
    background:
      radial-gradient(circle at 92% 0%, rgba(132, 204, 22, .12), transparent 30rem),
      radial-gradient(circle at 0% 92%, rgba(77, 124, 15, .10), transparent 28rem),
      var(--ifp-bg) !important;
    color: var(--ifp-text) !important;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 16px;
    line-height: 1.55;
  }
  
  a { color: var(--ifp-green-light); }
  a:hover { color: #d9f99d; }
  
  /* Cabeçalhos e marcas */
  .header, .topbar, header.topbar, header.header {
    background: rgba(7, 10, 7, .92) !important;
    border-bottom: 1px solid var(--ifp-line) !important;
    box-shadow: 0 10px 36px rgba(0, 0, 0, .24) !important;
    backdrop-filter: blur(18px);
  }
  .brand, .logo, .topbar-brand, .topbar-logo, .login-title,
  .sidebar-brand, .login-brand-text, .brand-copy strong {
    color: var(--ifp-text) !important;
    font-weight: 800 !important;
    letter-spacing: -.025em;
  }
  .brand small, .logo small, .topbar-brand small, .topbar-mini,
  .login-sub, .brand-copy span, .sidebar-brand small { color: var(--ifp-muted) !important; }
  
  /* Painéis e cartões */
  .card, .panel, .login-card, .login-box, .hero-card, .hero-side,
  .content-card, .cat-card, .info-chip, .hero-point, .stat-card,
  .section-card, .form-card, .dashboard-card, .table-card {
    background: linear-gradient(145deg, rgba(23, 29, 23, .98), rgba(13, 17, 13, .98)) !important;
    border: 1px solid var(--ifp-line) !important;
    border-radius: var(--ifp-radius) !important;
    box-shadow: var(--ifp-shadow) !important;
  }
  .hero h1, .hero-card h1, h1, h2, h3 { color: var(--ifp-text); }
  .hero h1 span, h1 span, .eyebrow, .hero-kicker, .hero-tag {
    color: var(--ifp-green-light) !important;
  }
  p, .hint, .login-helper, .hero-copy > p, .content-card li { color: var(--ifp-muted); }
  
  /* Formulários */
  input, select, textarea {
    min-height: 46px;
    background: #0b0f0b !important;
    color: var(--ifp-text) !important;
    border: 1px solid rgba(168, 179, 159, .25) !important;
    border-radius: 12px !important;
    font: inherit;
  }
  input::placeholder, textarea::placeholder { color: #73806c !important; }
  input:focus, select:focus, textarea:focus {
    outline: 3px solid rgba(132, 204, 22, .18) !important;
    border-color: var(--ifp-green) !important;
  }
  label { color: #dce8d3 !important; font-size: .9rem; font-weight: 650; }
  
  /* Botões e links de ação */
  .btn, .btn-primary, .primary, .btn-login, .login-submit,
  button[type="submit"], a.btn-primary {
    min-height: 46px;
    border: 0 !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, var(--ifp-green-light), var(--ifp-green)) !important;
    color: #101a08 !important;
    font-weight: 800 !important;
    box-shadow: 0 12px 28px rgba(132, 204, 22, .18) !important;
  }
  .btn:hover, .btn-primary:hover, .primary:hover, .btn-login:hover,
  .login-submit:hover, button[type="submit"]:hover, a.btn-primary:hover {
    filter: brightness(1.07);
    transform: translateY(-1px);
  }
  .btn-outline, .btn-ghost, .btn-secondary, .secondary, .header-link,
  .btn-logout, a.link-btn.secondary {
    min-height: 42px;
    border: 1px solid var(--ifp-line) !important;
    border-radius: 11px !important;
    background: rgba(255, 255, 255, .035) !important;
    color: var(--ifp-text) !important;
    font-weight: 700;
  }
  button, a.btn, a.btn-primary, a.btn-outline, a.btn-ghost,
  .header-link, .nav-item { transition: .18s ease; }
  
  /* Navegação dos painéis */
  .sidebar {
    background: #0b0f0b !important;
    border-right: 1px solid var(--ifp-line) !important;
  }
  .nav-item, .nav button, .sidebar a, .sidebar button { color: var(--ifp-muted) !important; }
  .nav-item:hover, .nav button:hover, .sidebar a:hover, .sidebar button:hover,
  .nav-item.active, .nav button.active, .sidebar .active {
    background: rgba(132, 204, 22, .11) !important;
    color: var(--ifp-green-light) !important;
    border-color: rgba(132, 204, 22, .22) !important;
  }
  
  table { color: var(--ifp-text) !important; }
  th { color: var(--ifp-green-light) !important; background: rgba(132, 204, 22, .07) !important; }
  td, th { border-color: rgba(168, 179, 159, .14) !important; }
  .badge, .status, .chip {
    border-color: rgba(132, 204, 22, .24) !important;
    background: rgba(132, 204, 22, .09) !important;
    color: var(--ifp-green-light) !important;
  }
  .error-msg, .err, .error { color: var(--ifp-danger) !important; }
  
  @media (max-width: 760px) {
    body { font-size: 16px; }
    .header-inner, .topbar-inner, .header { gap: 12px; }
    .header-actions, .header-links, .nav { flex-wrap: wrap; }
    .hero { padding-top: 28px !important; }
    .hero h1, .hero-card h1 { font-size: clamp(2rem, 11vw, 3.2rem) !important; line-height: 1.04; }
    .login-card, .login-box, .card { width: min(100% - 24px, 520px) !important; }
  }
  
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
  }
  
  /* Logo oficial aprovada — presença consistente em todas as páginas internas */
  body::before {
    content: "";
    position: fixed;
    z-index: 10050;
    top: 8px;
    left: 14px;
    width: 230px;
    height: 64px;
    pointer-events: none;
    border: 1px solid rgba(132, 204, 22, .18);
    border-radius: 12px;
    background: #000 url("/logo-impactofitpass-aprovada.png?v=20260902") center / contain no-repeat;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .3);
  }
  
  @media (max-width: 760px) {
    body::before {
      top: 7px;
      left: 8px;
      width: 158px;
      height: 52px;
      border-radius: 10px;
    }
  }
  