:root{
    --fp-bg: #07111f;
    --fp-bg-secondary: #0b1728;
    --fp-surface: rgba(12, 24, 40, 0.88);
    --fp-surface-strong: #0f1c2f;
    --fp-card: rgba(15, 28, 47, 0.92);
    --fp-card-hover: rgba(18, 35, 58, 0.98);
    --fp-border: rgba(120, 170, 255, 0.14);
    --fp-border-strong: rgba(0, 212, 255, 0.28);
    --fp-text: #eef4ff;
    --fp-text-soft: #a7b7d4;
    --fp-text-muted: #7e8da8;
    --fp-primary: #00d4ff;
    --fp-primary-strong: #00b8e6;
    --fp-primary-glow: rgba(0, 212, 255, 0.22);
    --fp-success: #23c483;
    --fp-warning: #f7b84b;
    --fp-danger: #ff6b6b;
    --fp-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
    --fp-radius: 18px;
    --fp-radius-lg: 24px;
  }
  
  *{
    box-sizing:border-box;
  }
  
  html{
    scroll-behavior:smooth;
  }
  
  body{
    margin:0;
    min-height:100vh;
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    background:
      radial-gradient(circle at top left, rgba(0,212,255,0.10), transparent 32%),
      radial-gradient(circle at top right, rgba(0,140,255,0.08), transparent 28%),
      linear-gradient(135deg, #07111f 0%, #0b1728 45%, #091423 100%);
    color:var(--fp-text);
  }
  
  /* =========================
     BASE
  ========================= */
  h1,h2,h3,h4,h5,h6{
    color:var(--fp-text);
    letter-spacing:-0.02em;
  }
  
  p,
  span,
  label,
  small,
  div{
    color:inherit;
  }
  
  .text-muted{
    color:var(--fp-text-muted) !important;
  }
  
  a{
    color:var(--fp-primary);
    text-decoration:none;
  }
  
  a:hover{
    color:#6be7ff;
  }
  
  .container-fluid{
    max-width:1600px;
  }
  
  /* =========================
     NAVBAR
  ========================= */
  .navbar{
    background:rgba(6, 13, 24, 0.86) !important;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(255,255,255,0.06);
    box-shadow:0 10px 40px rgba(0,0,0,0.22);
    padding:14px 18px;
  }
  
  .navbar-brand{
    margin:0;
  }
  
  .fp-logo-text{
    text-shadow:0 0 24px rgba(0,212,255,0.10);
  }
  
  .fp-logo-text span{
    text-shadow:0 0 24px rgba(0,212,255,0.24);
  }
  
  .fp-logo-sub{
    margin-top:2px;
  }
  
  /* =========================
     HERO
  ========================= */
  .hero-section{
    position:relative;
    overflow:hidden;
    margin-bottom:28px;
    border-radius:var(--fp-radius-lg);
    border:1px solid var(--fp-border);
    background:
      linear-gradient(135deg, rgba(0,212,255,0.10), rgba(0,212,255,0.02) 35%, rgba(255,255,255,0.01) 100%),
      rgba(10, 20, 35, 0.85);
    box-shadow:var(--fp-shadow);
  }
  
  .hero-section::before{
    content:"";
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 20% 20%, rgba(0,212,255,0.10), transparent 20%),
      radial-gradient(circle at 80% 30%, rgba(0,115,255,0.10), transparent 18%);
    pointer-events:none;
  }
  
  .hero-section h1{
    position:relative;
    z-index:1;
    font-weight:800;
    font-size:clamp(2rem, 4vw, 3rem);
  }
  
  .hero-section .lead{
    position:relative;
    z-index:1;
    color:var(--fp-text-soft);
    font-size:1.05rem;
  }
  
  /* =========================
     CARDS
  ========================= */
  .card{
    background:var(--fp-card);
    border:1px solid var(--fp-border);
    border-radius:var(--fp-radius);
    box-shadow:var(--fp-shadow);
    overflow:hidden;
  }
  
  .card-header{
    background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0));
    border-bottom:1px solid rgba(255,255,255,0.06);
    padding:16px 18px;
  }
  
  .card-body{
    padding:18px;
  }
  
  .card-title{
    font-weight:700;
    color:var(--fp-text);
  }
  
  /* =========================
     SEARCH TYPE / PLATFORM CARDS
  ========================= */
  .search-type-card,
  .platform-card{
    cursor:pointer;
    transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
    background:linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0));
    border:1px solid rgba(255,255,255,0.06);
  }
  
  .search-type-card:hover,
  .platform-card:hover{
    transform:translateY(-4px);
    border-color:var(--fp-border-strong);
    background:var(--fp-card-hover);
    box-shadow:0 18px 40px rgba(0,0,0,0.35), 0 0 0 1px rgba(0,212,255,0.08) inset;
  }
  
  .search-type-card.selected,
  .platform-card.selected,
  #empresas-card.active,
  #social-card.active,
  #linkedin-card.active,
  #instagram-card.active{
    border-color:var(--fp-primary);
    background:
      linear-gradient(180deg, rgba(0,212,255,0.10), rgba(0,212,255,0.03)),
      var(--fp-card-hover);
    box-shadow:0 0 0 1px rgba(0,212,255,0.16) inset, 0 20px 44px rgba(0,0,0,0.36);
  }
  
  .platform-example{
    margin-top:10px;
    padding:10px 12px;
    border-radius:12px;
    background:rgba(255,255,255,0.03);
    border:1px solid rgba(255,255,255,0.05);
    color:var(--fp-text-soft);
    font-size:.9rem;
  }
  
  /* =========================
     GRADIENT ICON BOXES
  ========================= */
  .gradient-bg{
    background:linear-gradient(135deg, #00d4ff 0%, #0ea5e9 50%, #2563eb 100%);
    box-shadow:0 10px 30px rgba(0,212,255,0.20);
  }
  
  .maps-gradient{
    background:linear-gradient(135deg, #00d4ff 0%, #0284c7 100%);
    box-shadow:0 10px 30px rgba(0,212,255,0.18);
  }
  
  .linkedin-gradient{
    background:linear-gradient(135deg, #0077b5 0%, #0a66c2 100%);
    box-shadow:0 10px 30px rgba(10,102,194,0.22);
  }
  
  .instagram-gradient{
    background:linear-gradient(135deg, #f58529 0%, #dd2a7b 50%, #8134af 100%);
    box-shadow:0 10px 30px rgba(221,42,123,0.22);
  }
  
  /* =========================
     FORMULÁRIOS
  ========================= */
  .form-control,
  .form-select,
  .input-group-text{
    min-height:54px;
    border-radius:14px !important;
    border:1px solid rgba(255,255,255,0.08);
    background:rgba(255,255,255,0.03);
    color:var(--fp-text);
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
  }
  
  .form-control::placeholder{
    color:#7f91af;
  }
  
  .form-control:focus,
  .form-select:focus{
    color:var(--fp-text);
    background:rgba(255,255,255,0.04);
    border-color:rgba(0,212,255,0.42);
    box-shadow:0 0 0 .2rem rgba(0,212,255,0.12);
  }
  
  .input-group-text{
    color:var(--fp-primary);
    background:rgba(255,255,255,0.04);
  }
  
  .form-select option{
    background:#0f1c2f;
    color:var(--fp-text);
  }
  
  /* =========================
     BOTÕES
  ========================= */
  .btn{
    border-radius:14px;
    font-weight:700;
    transition:all .2s ease;
    border-width:1px;
  }
  
  .btn:hover{
    transform:translateY(-1px);
  }
  
  .btn-primary,
  .btn-success,
  .btn-danger{
    border:none;
  }
  
  .btn-primary{
    background:linear-gradient(135deg, #00d4ff 0%, #0ea5e9 100%);
    color:#03121e;
    box-shadow:0 10px 24px rgba(0,212,255,0.18);
  }
  
  .btn-primary:hover{
    background:linear-gradient(135deg, #15dcff 0%, #1bb2ff 100%);
    color:#03121e;
  }
  
  .btn-success{
    background:linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
    box-shadow:0 10px 24px rgba(34,197,94,0.20);
  }
  
  .btn-outline-primary{
    color:var(--fp-primary);
    border-color:rgba(0,212,255,0.36);
    background:transparent;
  }
  
  .btn-outline-primary:hover{
    color:#03121e;
    background:var(--fp-primary);
    border-color:var(--fp-primary);
  }
  
  .btn-outline-secondary{
    color:var(--fp-text-soft);
    border-color:rgba(255,255,255,0.08);
    background:rgba(255,255,255,0.02);
  }
  
  .btn-outline-secondary:hover{
    color:var(--fp-text);
    border-color:rgba(255,255,255,0.16);
    background:rgba(255,255,255,0.06);
  }
  
  .btn-outline-danger{
    color:#ff8c8c;
    border-color:rgba(255,107,107,0.28);
    background:transparent;
  }
  
  .btn-outline-danger:hover{
    background:rgba(255,107,107,0.12);
    color:#ffd3d3;
    border-color:rgba(255,107,107,0.44);
  }
  
  #search-btn{
    background:linear-gradient(135deg, #00d4ff 0%, #0ea5e9 50%, #2563eb 100%);
    border:none;
    box-shadow:0 12px 30px rgba(0,212,255,0.18);
  }
  
  #search-btn:hover{
    filter:brightness(1.05);
  }
  
  #search-btn:disabled,
  #export-btn:disabled,
  #export-all-btn:disabled{
    opacity:.55;
    transform:none;
    box-shadow:none;
    cursor:not-allowed;
  }
  
  /* =========================
     BADGES / ALERTS
  ========================= */
  .badge{
    border-radius:999px;
    padding:.55em .85em;
    font-weight:700;
  }
  
  .bg-primary{
    background:linear-gradient(135deg, #00d4ff 0%, #0ea5e9 100%) !important;
    color:#041521 !important;
  }
  
  .bg-light.text-dark{
    background:rgba(255,255,255,0.08) !important;
    color:var(--fp-text) !important;
  }
  
  .alert{
    border:none;
    border-radius:16px;
  }
  
  .alert-info{
    background:rgba(0,212,255,0.08);
    color:#d8f8ff;
    border:1px solid rgba(0,212,255,0.16);
  }
  
  /* =========================
     FILTROS / STATUS
  ========================= */
  #filters-section{
    padding:14px;
    border-radius:16px;
    background:rgba(255,255,255,0.02);
    border:1px solid rgba(255,255,255,0.04);
  }
  
  .filter-status{
    margin-bottom:14px;
    padding:10px 14px;
    border-radius:12px;
    background:rgba(0,212,255,0.06);
    border:1px solid rgba(0,212,255,0.12);
    color:#d9f9ff;
  }
  
  /* =========================
     PAGINAÇÃO
  ========================= */
  .pagination-controls{
    margin-bottom:18px;
    padding:14px 16px;
    border-radius:16px;
    background:rgba(255,255,255,0.02);
    border:1px solid rgba(255,255,255,0.04);
  }
  
  #page-info{
    padding:8px 12px;
  }
  
  /* =========================
     RESULTADOS
  ========================= */
  #results-container .card{
    border-radius:16px;
    background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  }
  
  #results-container .card:hover{
    border-color:rgba(0,212,255,0.22);
    background:linear-gradient(180deg, rgba(0,212,255,0.04), rgba(255,255,255,0.02));
  }
  
  #results-container .btn-sm,
  #results-container .form-check-input{
    position:relative;
    z-index:2;
  }
  
  /* caso seu JS renderize títulos/linhas internas */
  .result-item-title,
  .lead-name,
  .result-title{
    color:var(--fp-text);
    font-weight:700;
  }
  
  .result-meta,
  .result-address,
  .result-contact,
  .lead-meta{
    color:var(--fp-text-soft);
  }
  
  .form-check-input{
    width:1.15rem;
    height:1.15rem;
    background-color:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.16);
  }
  
  .form-check-input:checked{
    background-color:var(--fp-primary);
    border-color:var(--fp-primary);
  }
  
  /* =========================
     MAPA
  ========================= */
  #minimap{
    width:100%;
    height:320px;
    border-radius:0 0 18px 18px;
    overflow:hidden;
    background:#0b1728;
  }
  
  .leaflet-container{
    background:#0b1728 !important;
  }
  
  .leaflet-control-zoom a{
    background:#102038 !important;
    color:var(--fp-text) !important;
    border-color:rgba(255,255,255,0.08) !important;
  }
  
  .leaflet-popup-content-wrapper,
  .leaflet-popup-tip{
    background:#102038;
    color:var(--fp-text);
    border:1px solid rgba(255,255,255,0.06);
  }
  
  /* =========================
     ESTATÍSTICAS
  ========================= */
  #stats-container > div{
    display:flex;
  }
  
  #stats-container .stat-card,
  #stats-container .card,
  .stat-box{
    width:100%;
    padding:16px;
    border-radius:16px;
    background:
      linear-gradient(180deg, rgba(0,212,255,0.06), rgba(255,255,255,0.02));
    border:1px solid rgba(255,255,255,0.05);
    text-align:center;
  }
  
  .stat-value{
    display:block;
    font-size:1.5rem;
    font-weight:800;
    color:var(--fp-primary);
    line-height:1;
  }
  
  .stat-label{
    display:block;
    margin-top:8px;
    color:var(--fp-text-soft);
    font-size:.9rem;
  }
  
  /* =========================
     EXPORT SECTION
  ========================= */
  .export-section{
    border-radius:var(--fp-radius-lg);
    border:1px solid var(--fp-border);
    background:
      linear-gradient(180deg, rgba(0,212,255,0.08), rgba(255,255,255,0.01)),
      rgba(11, 23, 40, 0.88);
    box-shadow:var(--fp-shadow);
  }
  
  .export-section h5{
    font-weight:800;
  }
  
  .export-btn{
    min-height:56px;
  }
  
  #export-info{
    color:var(--fp-text-soft);
  }
  
  /* =========================
     EMPTY STATE
  ========================= */
  #empty-state{
    border:1px dashed rgba(255,255,255,0.08);
    border-radius:18px;
    background:rgba(255,255,255,0.02);
  }
  
  /* =========================
     MODAL
  ========================= */
  .modal-content{
    background:#0d192b;
    border:1px solid rgba(255,255,255,0.08);
    border-radius:22px;
    box-shadow:0 25px 80px rgba(0,0,0,0.50);
    color:var(--fp-text);
  }
  
  .modal-header,
  .modal-footer{
    border-color:rgba(255,255,255,0.06);
  }
  
  .modal-backdrop.show{
    opacity:.7;
  }
  
  .btn-close{
    filter:invert(1) grayscale(1);
  }
  
  .serper-key-input .input-group-text{
    min-width:72px;
    justify-content:center;
  }
  
  /* =========================
     SCROLLBAR
  ========================= */
  ::-webkit-scrollbar{
    width:10px;
    height:10px;
  }
  
  ::-webkit-scrollbar-track{
    background:#08111f;
  }
  
  ::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg, rgba(0,212,255,0.5), rgba(37,99,235,0.45));
    border-radius:999px;
  }
  
  /* =========================
     UTILITÁRIOS
  ========================= */
  .shadow-sm{
    box-shadow:var(--fp-shadow) !important;
  }
  
  .rounded-3{
    border-radius:16px !important;
  }
  
  .search-header{
    background:
      linear-gradient(90deg, rgba(0,212,255,0.08), rgba(255,255,255,0.01));
  }
  
  /* =========================
     RESPONSIVO
  ========================= */
  @media (max-width: 991.98px){
    .hero-section{
      padding:28px 20px !important;
    }
  
    .card-body,
    .card-header{
      padding:16px;
    }
  
    #minimap{
      height:260px;
    }
  }
  
  @media (max-width: 767.98px){
    .navbar{
      padding:12px;
    }
  
    .fp-logo-text{
      font-size:20px;
    }
  
    .hero-section h1{
      font-size:2rem;
    }
  
    .hero-section .lead{
      font-size:.98rem;
    }
  
    .form-control,
    .form-select,
    .input-group-text,
    .btn-lg{
      min-height:50px;
    }
  
    #filters-section{
      padding:12px;
    }
  }