
#----------------------Base-------------------------

    :root {
      --accent-primary: #0d6efd;
      --accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
      --shadow-sm: 0 2px 8px rgba(0,0,0,0.1);
      --shadow-md: 0 4px 16px rgba(0,0,0,0.15);
      --shadow-lg: 0 8px 32px rgba(0,0,0,0.2);
      --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    * {
      transition: var(--transition);
    }

    body { 
      min-height: 100vh;
      background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
      position: relative;
      overflow-x: hidden;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      -webkit-touch-callout: none;
    }

    /* Animated background particles */
    body::before {
      content: '';
      position: fixed;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      background-image: 
        radial-gradient(circle at 20% 50%, rgba(102, 126, 234, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(118, 75, 162, 0.1) 0%, transparent 50%);
      pointer-events: none;
      z-index: 0;
    }

    main {
      position: relative;
      z-index: 1;
    }

    /* Navbar styling */
    .navbar {
      backdrop-filter: blur(20px);
      background: rgba(26, 26, 46, 0.8) !important;
      box-shadow: var(--shadow-md);
      border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    .brand { 
      font-weight: 700;
      letter-spacing: 1px;
      background: var(--accent-gradient);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      font-size: 1.5rem;
      position: relative;
      padding: 0.5rem 0;
    }

    .brand::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 2px;
      background: var(--accent-gradient);
      transition: width 0.3s ease;
    }

    .brand:hover::after {
      width: 100%;
    }

    /* Nav links */
    .nav-link, .dropdown-item {
      position: relative;
      font-weight: 500;
      padding: 0.75rem 1rem;
      border-radius: 8px;
      transition: var(--transition);
    }

    .nav-link:hover, .dropdown-item:hover {
      background: rgba(102, 126, 234, 0.15);
      transform: translateY(-2px);
    }

    .nav-link.active, .dropdown-item.active {
      background: var(--accent-gradient);
      font-weight: 600;
      box-shadow: var(--shadow-sm);
    }

    .nav-link::before {
      content: '';
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 2px;
      background: var(--accent-gradient);
      transition: width 0.3s ease;
    }

    .nav-link:hover::before {
      width: 80%;
    }

    /* Dropdown styling */
    .dropdown-menu {
      backdrop-filter: blur(20px);
      background: rgba(26, 26, 46, 0.95) !important;
      border: 1px solid rgba(255, 255, 255, 0.1);
      box-shadow: var(--shadow-lg);
      border-radius: 12px;
      padding: 0.75rem;
      margin-top: 0.5rem;
      animation: dropdownSlide 0.3s ease;
    }

    @keyframes dropdownSlide {
      from {
        opacity: 0;
        transform: translateY(-10px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .dropdown-item {
      margin: 0.25rem 0;
      border-radius: 8px;
    }

    .dropdown-divider {
      border-color: rgba(255, 255, 255, 0.1);
      margin: 0.75rem 0;
    }

    /* Restricted access styling */
    .text-warning-emphasis {
      color: #ffc107 !important;
      font-weight: 600;
    }

    .text-warning-emphasis i {
      animation: pulse 2s infinite;
    }

    @keyframes pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.6; }
    }

    /* User info section */
    .user-info {
      padding: 0.5rem 1rem;
      background: rgba(102, 126, 234, 0.1);
      border-radius: 50px;
      border: 1px solid rgba(102, 126, 234, 0.3);
      backdrop-filter: blur(10px);
    }

    .user-greeting {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-weight: 500;
    }

    .user-greeting::before {
      content: '👋';
      animation: wave 1.5s infinite;
      transform-origin: 70% 70%;
      display: inline-block;
    }

    @keyframes wave {
      0%, 100% { transform: rotate(0deg); }
      10%, 30% { transform: rotate(14deg); }
      20% { transform: rotate(-8deg); }
      40% { transform: rotate(-4deg); }
      50% { transform: rotate(10deg); }
    }

    /* Button styling */
    .btn {
      border-radius: 50px;
      padding: 0.5rem 1.5rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-size: 0.85rem;
      transition: var(--transition);
      position: relative;
      overflow: hidden;
    }

    .btn::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 0;
      height: 0;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.2);
      transform: translate(-50%, -50%);
      transition: width 0.6s, height 0.6s;
    }

    .btn:hover::before {
      width: 300px;
      height: 300px;
    }

    .btn:hover {
      transform: translateY(-2px);
      box-shadow: var(--shadow-md);
    }

    .btn-outline-secondary {
      border: 2px solid rgba(255, 255, 255, 0.3);
    }

    .btn-outline-secondary:hover {
      background: rgba(255, 255, 255, 0.1);
      border-color: rgba(255, 255, 255, 0.5);
    }

    /* Main content container */
    main.container {
      background: rgba(255, 255, 255, 0.05);
      border-radius: 20px;
      box-shadow: var(--shadow-lg);
      backdrop-filter: blur(10px);
      border: 1px solid rgba(255, 255, 255, 0.1);
      padding: 2rem;
      margin-top: 2rem;
      margin-bottom: 2rem;
      animation: fadeInUp 0.6s ease;
    }

    @keyframes fadeInUp {
      from {
        opacity: 0;
        transform: translateY(30px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* Empresa badge */
    .empresa-badge {
      background: var(--accent-gradient);
      padding: 0.5rem 1rem;
      border-radius: 50px;
      font-size: 0.85rem;
      font-weight: 600;
      box-shadow: var(--shadow-sm);
      animation: slideInRight 0.6s ease;
    }

    @keyframes slideInRight {
      from {
        opacity: 0;
        transform: translateX(20px);
      }
      to {
        opacity: 1;
        transform: translateX(0);
      }
    }

    /* Navbar toggler */
    .navbar-toggler {
      border: 2px solid rgba(255, 255, 255, 0.3);
      border-radius: 8px;
      padding: 0.5rem;
    }

    .navbar-toggler:hover {
      background: rgba(102, 126, 234, 0.2);
      border-color: rgba(102, 126, 234, 0.5);
    }

    .navbar-toggler:focus {
      box-shadow: 0 0 0 0.25rem rgba(102, 126, 234, 0.25);
    }

    /* Smooth scroll */
    html {
      scroll-behavior: smooth;
    }

    /* Icons in dropdown */
    .dropdown-item i {
      transition: transform 0.3s ease;
    }

    .dropdown-item:hover i {
      transform: scale(1.2) rotate(5deg);
    }

    /* Responsive adjustments */
    @media (max-width: 991px) {
      .navbar-collapse {
        background: rgba(26, 26, 46, 0.95);
        backdrop-filter: blur(20px);
        border-radius: 12px;
        padding: 1rem;
        margin-top: 1rem;
        border: 1px solid rgba(255, 255, 255, 0.1);
      }

      .d-flex.align-items-center {
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
      }
    }

      /* chips */
  .chip {
    display:inline-flex; gap:.5rem; align-items:center;
    border-radius: 999px; padding:.45rem .8rem;
    border:1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.10);
    font-weight:600;
  }
  .chip .dot{ width:8px; height:8px; border-radius:50%; background:#1dd1a1; box-shadow:0 0 10px #1dd1a1; }

  /* Deixa só o <main> um pouco mais largo em telas grandes */
  @media (min-width: 1400px){
    main.container.container-wider { max-width: 1770px; }  /* ajuste fino aqui */
    /* se quiser testar mais opções:
      main.container.w1500 { max-width: 1500px; }
      main.container.w1600 { max-width: 1600px; }
    */
  }

#----------------------Base-------------------------

    :root {
      --accent-primary: #0d6efd;
      --accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
      --shadow-sm: 0 2px 8px rgba(0,0,0,0.1);
      --shadow-md: 0 4px 16px rgba(0,0,0,0.15);
      --shadow-lg: 0 8px 32px rgba(0,0,0,0.2);
      --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    * {
      transition: var(--transition);
    }

    body { 
      min-height: 100vh;
      background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
      position: relative;
      overflow-x: hidden;
    }

    /* Animated background particles */
    body::before {
      content: '';
      position: fixed;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      background-image: 
        radial-gradient(circle at 20% 50%, rgba(102, 126, 234, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(118, 75, 162, 0.1) 0%, transparent 50%);
      pointer-events: none;
      z-index: 0;
    }

    main {
      position: relative;
      z-index: 1;
    }

    /* Navbar styling */
    .navbar {
      backdrop-filter: blur(20px);
      background: rgba(26, 26, 46, 0.8) !important;
      box-shadow: var(--shadow-md);
      border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    .brand { 
      font-weight: 700;
      letter-spacing: 1px;
      background: var(--accent-gradient);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      font-size: 1.5rem;
      position: relative;
      padding: 0.5rem 0;
    }

    .brand::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 2px;
      background: var(--accent-gradient);
      transition: width 0.3s ease;
    }

    .brand:hover::after {
      width: 100%;
    }

    /* Nav links */
    .nav-link, .dropdown-item {
      position: relative;
      font-weight: 500;
      padding: 0.75rem 1rem;
      border-radius: 8px;
      transition: var(--transition);
    }

    .nav-link:hover, .dropdown-item:hover {
      background: rgba(102, 126, 234, 0.15);
      transform: translateY(-2px);
    }

    .nav-link.active, .dropdown-item.active {
      background: var(--accent-gradient);
      font-weight: 600;
      box-shadow: var(--shadow-sm);
    }

    .nav-link::before {
      content: '';
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 2px;
      background: var(--accent-gradient);
      transition: width 0.3s ease;
    }

    .nav-link:hover::before {
      width: 80%;
    }

    /* Dropdown styling */
    .dropdown-menu {
      backdrop-filter: blur(20px);
      background: rgba(26, 26, 46, 0.95) !important;
      border: 1px solid rgba(255, 255, 255, 0.1);
      box-shadow: var(--shadow-lg);
      border-radius: 12px;
      padding: 0.75rem;
      margin-top: 0.5rem;
      animation: dropdownSlide 0.3s ease;
    }

    @keyframes dropdownSlide {
      from {
        opacity: 0;
        transform: translateY(-10px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .dropdown-item {
      margin: 0.25rem 0;
      border-radius: 8px;
    }

    .dropdown-divider {
      border-color: rgba(255, 255, 255, 0.1);
      margin: 0.75rem 0;
    }

    /* Restricted access styling */
    .text-warning-emphasis {
      color: #ffc107 !important;
      font-weight: 600;
    }

    .text-warning-emphasis i {
      animation: pulse 2s infinite;
    }

    @keyframes pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.6; }
    }

    /* User info section */
    .user-info {
      padding: 0.5rem 1rem;
      background: rgba(102, 126, 234, 0.1);
      border-radius: 50px;
      border: 1px solid rgba(102, 126, 234, 0.3);
      backdrop-filter: blur(10px);
    }

    .user-greeting {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-weight: 500;
    }

    .user-greeting::before {
      content: '👋';
      animation: wave 1.5s infinite;
      transform-origin: 70% 70%;
      display: inline-block;
    }

    @keyframes wave {
      0%, 100% { transform: rotate(0deg); }
      10%, 30% { transform: rotate(14deg); }
      20% { transform: rotate(-8deg); }
      40% { transform: rotate(-4deg); }
      50% { transform: rotate(10deg); }
    }

    /* Button styling */
    .btn {
      border-radius: 50px;
      padding: 0.5rem 1.5rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-size: 0.85rem;
      transition: var(--transition);
      position: relative;
      overflow: hidden;
    }

    .btn::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 0;
      height: 0;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.2);
      transform: translate(-50%, -50%);
      transition: width 0.6s, height 0.6s;
    }

    .btn:hover::before {
      width: 300px;
      height: 300px;
    }

    .btn:hover {
      transform: translateY(-2px);
      box-shadow: var(--shadow-md);
    }

    .btn-outline-secondary {
      border: 2px solid rgba(255, 255, 255, 0.3);
    }

    .btn-outline-secondary:hover {
      background: rgba(255, 255, 255, 0.1);
      border-color: rgba(255, 255, 255, 0.5);
    }

    /* Main content container */
    main.container {
      background: rgba(255, 255, 255, 0.05);
      border-radius: 20px;
      box-shadow: var(--shadow-lg);
      backdrop-filter: blur(10px);
      border: 1px solid rgba(255, 255, 255, 0.1);
      padding: 2rem;
      margin-top: 2rem;
      margin-bottom: 2rem;
      animation: fadeInUp 0.6s ease;
    }

    @keyframes fadeInUp {
      from {
        opacity: 0;
        transform: translateY(30px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* Empresa badge */
    .empresa-badge {
      background: var(--accent-gradient);
      padding: 0.5rem 1rem;
      border-radius: 50px;
      font-size: 0.85rem;
      font-weight: 600;
      box-shadow: var(--shadow-sm);
      animation: slideInRight 0.6s ease;
    }

    @keyframes slideInRight {
      from {
        opacity: 0;
        transform: translateX(20px);
      }
      to {
        opacity: 1;
        transform: translateX(0);
      }
    }

    /* Navbar toggler */
    .navbar-toggler {
      border: 2px solid rgba(255, 255, 255, 0.3);
      border-radius: 8px;
      padding: 0.5rem;
    }

    .navbar-toggler:hover {
      background: rgba(102, 126, 234, 0.2);
      border-color: rgba(102, 126, 234, 0.5);
    }

    .navbar-toggler:focus {
      box-shadow: 0 0 0 0.25rem rgba(102, 126, 234, 0.25);
    }

    /* Smooth scroll */
    html {
      scroll-behavior: smooth;
    }

    /* Icons in dropdown */
    .dropdown-item i {
      transition: transform 0.3s ease;
    }

    .dropdown-item:hover i {
      transform: scale(1.2) rotate(5deg);
    }

    /* Responsive adjustments */
    @media (max-width: 991px) {
      .navbar-collapse {
        background: rgba(26, 26, 46, 0.95);
        backdrop-filter: blur(20px);
        border-radius: 12px;
        padding: 1rem;
        margin-top: 1rem;
        border: 1px solid rgba(255, 255, 255, 0.1);
      }

      .d-flex.align-items-center {
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
      }
    }

      /* chips */
  .chip {
    display:inline-flex; gap:.5rem; align-items:center;
    border-radius: 999px; padding:.45rem .8rem;
    border:1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.10);
    font-weight:600;
  }
  .chip .dot{ width:8px; height:8px; border-radius:50%; background:#1dd1a1; box-shadow:0 0 10px #1dd1a1; }

  /* Deixa só o <main> um pouco mais largo em telas grandes */
  @media (min-width: 1400px){
    main.container.container-wider { max-width: 1770px; }  /* ajuste fino aqui */
    /* se quiser testar mais opções:
      main.container.w1500 { max-width: 1500px; }
      main.container.w1600 { max-width: 1600px; }
    */
  }

  /* efeito ripple mínimo */
  .ripple {
    position: absolute;
    border-radius: 50%;
    transform: scale(0);
    opacity: .6;
    background: currentColor;
    pointer-events: none;
    animation: ripple-anim .6s ease-out;
  }
  @keyframes ripple-anim { to { transform: scale(3); opacity: 0; } }

  /* animação do dropdown */
  @keyframes dropdownSlide { from { opacity: 0; transform: translateY(-6px);} to { opacity:1; transform:translateY(0);} }


  /* Mensagens Bootstrap */
.alert {
  border-radius: 12px;
  font-weight: 600;
}

/* Sucesso: texto branco com contraste alto */
.alert.alert-success {
  /* mantém seu verde, mas força texto e contraste */
  color: #ffffff !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.25);
  border: 0;
}

/* Links/strong dentro da mensagem */
.alert.alert-success a,
.alert.alert-success strong {
  color: #ffffff !important;
  text-decoration: underline;
}


/* testes de partículas */

  /* só afeta os headers */
  .form-header, .page-header {
    position: relative;
    overflow: hidden; /* esconde partículas que passarem da área */
  }
  .header-particles {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none; /* não bloqueia cliques */
  }
  /* conteúdo do header fica acima das partículas */
  .form-header > *:not(.header-particles),
  .page-header > *:not(.header-particles),
  #aboutContainer > *:not(.header-particles) {
    position: relative;
    z-index: 1;
  }
  /* opt-out rápido */
  .no-particles .header-particles { display: none !important; }

  /* cada layer contém um canvas */
  .sperm-layer{ position:absolute; inset:0; }
  .sperm-layer canvas{ width:100%; height:100%; display:block; }


/* Tema escuro/claro - exemplo básico */
/* ============================
   Tema CLARO (override)
   Ativo quando: <html data-bs-theme="light">
   ============================ */
:root[data-bs-theme="light"] {
  --accent-primary: #0d6efd;
  --accent-gradient: linear-gradient(135deg, #5b8cfe 0%, #9867ff 100%);
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
  --shadow-md: 0 6px 20px rgba(0,0,0,0.12);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.14);
}

/* Fundo geral suavemente claro com o mesmo “clima” do escuro */
:root[data-bs-theme="light"] body {
  background: linear-gradient(135deg, #f7f9fc 0%, #e9eef9 100%);
}

/* Partículas mais discretas no claro */
:root[data-bs-theme="light"] body::before {
  background-image:
    radial-gradient(circle at 20% 50%, rgba(91, 140, 254, 0.18) 0%, transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(152, 103, 255, 0.16) 0%, transparent 50%);
}

/* Navbar vidro claro */
:root[data-bs-theme="light"] .navbar {
  background: rgba(255, 255, 255, 0.82) !important;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  box-shadow: var(--shadow-md);
}

/* Links e itens com hover mais sutil no claro */
:root[data-bs-theme="light"] .nav-link,
:root[data-bs-theme="light"] .dropdown-item {
  color: #1b2130;
}
:root[data-bs-theme="light"] .nav-link:hover,
:root[data-bs-theme="light"] .dropdown-item:hover {
  background: rgba(13, 110, 253, 0.08); /* usa --accent-primary */
  transform: translateY(-2px);
}
:root[data-bs-theme="light"] .nav-link.active,
:root[data-bs-theme="light"] .dropdown-item.active {
  background: var(--accent-gradient);
  color: #fff;
}

/* Linha animada sob .nav-link */
:root[data-bs-theme="light"] .nav-link::before {
  background: var(--accent-gradient);
}

/* Dropdown vidro claro */
:root[data-bs-theme="light"] .dropdown-menu {
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid rgba(0,0,0,0.08);
  box-shadow: var(--shadow-lg);
}
:root[data-bs-theme="light"] .dropdown-divider {
  border-color: rgba(0,0,0,0.08);
}

/* Acesso restrito mantém o destaque */
:root[data-bs-theme="light"] .text-warning-emphasis { color: #b78100 !important; }

/* Badge do usuário vira pill azul clarinho */
:root[data-bs-theme="light"] .user-info {
  background: rgba(13, 110, 253, 0.08);
  border: 1px solid rgba(13, 110, 253, 0.22);
}

/* Botões */
:root[data-bs-theme="light"] .btn-outline-secondary {
  border: 2px solid rgba(0,0,0,0.22);
  color: #1b2130;
}
:root[data-bs-theme="light"] .btn-outline-secondary:hover {
  background: rgba(0,0,0,0.05);
  border-color: rgba(0,0,0,0.35);
}

/* Container principal com vidro claro */
:root[data-bs-theme="light"] main.container {
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(0,0,0,0.08);
  box-shadow: var(--shadow-lg);
}

/* Marca (brand) continua com degradê */
:root[data-bs-theme="light"] .brand::after { background: var(--accent-gradient); }

/* Toggler no claro */
:root[data-bs-theme="light"] .navbar-toggler {
  border: 2px solid rgba(0,0,0,0.25);
}
:root[data-bs-theme="light"] .navbar-toggler:hover {
  background: rgba(13,110,253,0.10);
  border-color: rgba(13,110,253,0.35);
}
:root[data-bs-theme="light"] .navbar-toggler:focus {
  box-shadow: 0 0 0 0.25rem rgba(13,110,253,0.25);
}

/* Colapso mobile no claro */
@media (max-width: 991px) {
  :root[data-bs-theme="light"] .navbar-collapse {
    background: rgba(255,255,255,0.96);
    border: 1px solid rgba(0,0,0,0.08);
  }
  :root[data-bs-theme="light"] .d-flex.align-items-center {
    border-top: 1px solid rgba(0,0,0,0.08);
  }
}

/* Chips com azul translúcido */
:root[data-bs-theme="light"] .chip {
  border: 1px solid rgba(13,110,253,0.18);
  background: rgba(13,110,253,0.06);
  color: #0b1733;
}

/* Alertas no claro (mantém acessibilidade) */
:root[data-bs-theme="light"] .alert.alert-success {
  color: #0f5132 !important;
  text-shadow: none;
  border: 0;
}
:root[data-bs-theme="light"] .alert.alert-success a,
:root[data-bs-theme="light"] .alert.alert-success strong {
  color: #0f5132 !important;
}

