
    * { scrollbar-width: thin; scrollbar-color: rgba(99, 102, 241, 0.3) transparent; }
    *::-webkit-scrollbar { width: 8px; height: 8px; }
    *::-webkit-scrollbar-track { background: transparent; }
    *::-webkit-scrollbar-thumb { background: rgba(99, 102, 241, 0.3); border-radius: 4px; }
    *::-webkit-scrollbar-thumb:hover { background: rgba(99, 102, 241, 0.5); }

    @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&display=swap');
    
    body { font-family: 'Montserrat', sans-serif; }

    .glass-effect {
      background: rgba(255, 255, 255, 0.1);
      backdrop-filter: blur(10px);
      border: 1px solid rgba(255, 255, 255, 0.2);
    }

    .dark .glass-effect {
      background: rgba(0, 0, 0, 0.2);
      border: 1px solid rgba(255, 255, 255, 0.1);
    }

    @keyframes slideIn {
      from { opacity: 0; transform: translateY(10px); }
      to { opacity: 1; transform: translateY(0); }
    }

    @keyframes fadeIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }

    @keyframes pulse-subtle {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.8; }
    }

    .animate-slide-in { animation: slideIn 0.4s ease-out; }
    .animate-fade-in { animation: fadeIn 0.3s ease-out; }
    .animate-pulse-subtle { animation: pulse-subtle 2s ease-in-out infinite; }

    .btn-transition { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
    .card-transition { transition: all 0.3s ease; }

    .gradient-accent {
      background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    }

    .gradient-success {
      background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    }

    .gradient-warning {
      background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    }

    .gradient-danger {
      background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    }

    .stat-card {
      background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1));
      border: 1px solid rgba(99, 102, 241, 0.2);
    }

    .dark .stat-card {
      background: linear-gradient(135deg, rgba(99, 102, 241, 0.05), rgba(139, 92, 246, 0.05));
    }

    body.auth-modal-open {
      overflow: hidden;
    }

    body.auth-modal-open > div:not(#modal-auth) {
      pointer-events: none;
      opacity: 0.5;
    }

    #modal-auth {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: rgba(0, 0, 0, 0.6);
      backdrop-filter: blur(4px);
    }

    #modal-auth.hidden {
      display: none !important;
    }
  
body { box-sizing: border-box; }

          @keyframes plusBounce {
            0%, 100% { transform: rotate(-8deg) scale(1); }
            50% { transform: rotate(-8deg) scale(1.08); }
          }
          @keyframes drawLine {
            0% { stroke-dashoffset: 40; }
            100% { stroke-dashoffset: 0; }
          }
          .pen-stroke {
            stroke-dasharray: 40;
            animation: drawLine 3s ease-in-out infinite;
            filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, 0.3));
          }
        
.bg-gradient-accent{background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%)}
.nav-link.active{background:rgba(99,102,241,.12);color:#4f46e5}.dark .nav-link.active{color:#a5b4fc;background:rgba(99,102,241,.18)}
#modal-auth.hidden,.modal.hidden{display:none!important}.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.5);backdrop-filter:blur(4px)}
.feature-card:hover{transform:translateY(-4px)}
html,body{min-height:100%;}

.language-button{transition:all .25s ease}.language-button:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(99,102,241,.18)}
.language-menu{animation:fadeIn .18s ease-out}.language-option{width:100%;display:flex;align-items:center;gap:.65rem;padding:.75rem .9rem;text-align:left;font-weight:700;color:#334155;background:transparent}.language-option:hover{background:#eef2ff;color:#4f46e5}.dark .language-option{color:#cbd5e1}.dark .language-option:hover{background:rgba(99,102,241,.18);color:#c7d2fe}
@media(max-width:640px){.language-button{padding:.625rem}.language-menu{right:-3rem}.language-switcher + a{padding-left:.75rem;padding-right:.75rem;font-size:.875rem}}

#modal-admin-login.hidden,#modal-admin-panel.hidden{display:none!important}
#modal-admin-login.flex,#modal-admin-panel.flex{display:flex!important}

/* Bloqueio visual enquanto o cadastro/login estiver aberto */
body.auth-modal-open { overflow: hidden; }
body.auth-modal-open .auth-locked-bg {
  filter: blur(3px) grayscale(0.15);
  opacity: 0.35;
  pointer-events: none;
  user-select: none;
  transition: opacity .2s ease, filter .2s ease;
}
#modal-auth-inline { display: none; }
#modal-auth-inline.flex { display: flex; }
