/* =============================================
   AnunciosAdultos.pt — CSS Principal
   ============================================= */

:root {
  --p1:#833AB4; --p2:#C13584; --p3:#E1306C;
  --p4:#FD1D1D; --p5:#F56040; --p6:#F77737;
  --p7:#FCAF45; --p8:#FFDC80;
  --grad: linear-gradient(135deg,#833AB4 0%,#C13584 25%,#E1306C 50%,#F56040 75%,#FCAF45 100%);
  --grad-warm: linear-gradient(135deg,#E1306C,#F56040,#FCAF45);
  --grad-cool: linear-gradient(135deg,#833AB4,#C13584,#E1306C);
  --bg:#FAFAFA; --card:#fff; --text:#1A1A1A; --muted:#8E8E8E; --border:#EFEFEF;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);}

/* ── APP SHELL ── */
.app{width:100%;max-width:480px;min-height:100vh;min-height:100dvh;margin:0 auto;background:var(--bg);position:relative;}

/* ── HEADER ── */
.site-header{background:#fff;padding:14px 18px 10px;position:sticky;top:0;z-index:100;border-bottom:1px solid var(--border);}
.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.logo{font-size:18px;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px;text-decoration:none;}
.h-icons{display:flex;gap:8px;align-items:center;}
.h-btn{width:34px;height:34px;border-radius:50%;background:var(--bg);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;position:relative;text-decoration:none;}
.notif-red{position:absolute;top:-1px;right:-1px;width:8px;height:8px;background:var(--p3);border-radius:50%;border:1.5px solid #fff;}
.avatar-sm{width:34px;height:34px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:15px;border:2px solid var(--p2);cursor:pointer;text-decoration:none;color:#fff;}

/* SEARCH */
.search-wrap{display:flex;align-items:center;background:var(--bg);border:1.5px solid var(--border);border-radius:12px;padding:9px 14px;gap:8px;}
.search-wrap input{border:none;background:none;flex:1;font-size:14px;color:var(--text);outline:none;}
.search-wrap input::placeholder{color:#bbb;}

/* PILLS */
.pills{display:flex;gap:8px;padding:12px 18px 8px;overflow-x:auto;scrollbar-width:none;background:#fff;border-bottom:1px solid var(--border);}
.pills::-webkit-scrollbar{display:none;}
.pill{padding:6px 16px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap;border:none;cursor:pointer;text-decoration:none;display:inline-block;}
.pill.on,.pill.active{background:var(--grad-cool);color:#fff;box-shadow:0 3px 10px rgba(193,53,132,.3);}
.pill:not(.on):not(.active){background:#fff;color:var(--muted);border:1.5px solid var(--border);}

/* BANNER */
.banner{margin:14px 18px;border-radius:18px;background:var(--grad);padding:16px 18px;color:#fff;display:flex;align-items:center;gap:14px;position:relative;overflow:hidden;box-shadow:0 6px 20px rgba(225,48,108,.28);cursor:pointer;text-decoration:none;}
.banner::after{content:'';position:absolute;right:-20px;top:-20px;width:100px;height:100px;background:rgba(255,255,255,.1);border-radius:50%;}
.banner-txt strong{display:block;font-size:15px;font-weight:800;margin-bottom:2px;}
.banner-txt p{font-size:12px;opacity:.85;}
.banner-arr{margin-left:auto;font-size:22px;opacity:.8;flex-shrink:0;}

/* SECTION */
.sec{padding:6px 18px 12px;display:flex;align-items:center;justify-content:space-between;}
.sec h2{font-size:16px;font-weight:800;}
.sec a{font-size:12px;font-weight:700;cursor:pointer;background:var(--grad-cool);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;}

/* CAT GRID */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:0 18px 18px;}
.cat-item{display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;text-decoration:none;}
.cat-ic{width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:30px;box-shadow:0 6px 16px rgba(0,0,0,.16);transition:transform .15s, box-shadow .15s;}
.cat-item:hover .cat-ic{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.22);}
.cat-lbl{font-size:11px;font-weight:700;text-align:center;line-height:1.2;color:var(--text);}

/* Banner Premium+ — ganhar dinheiro */
.premium-banner{display:flex;align-items:center;gap:14px;margin:4px 18px 22px;padding:16px 18px;border-radius:18px;text-decoration:none;
  background:linear-gradient(135deg,#2A1A3E 0%,#5E1A47 55%,#9B1B5A 100%);
  box-shadow:0 8px 24px rgba(94,26,71,.35);position:relative;overflow:hidden;}
.premium-banner::after{content:'';position:absolute;top:-40%;right:-10%;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,200,80,.25),transparent 70%);}
.premium-banner .pb-ic{flex:0 0 auto;width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#FFD86B,#F0A92E);display:flex;align-items:center;justify-content:center;color:#5E1A47;font-size:28px;box-shadow:0 4px 14px rgba(240,169,46,.5);}
.premium-banner .pb-ic svg{width:30px;height:30px;}
.premium-banner .pb-txt{flex:1;min-width:0;position:relative;z-index:1;}
.premium-banner .pb-title{font-size:14.5px;font-weight:900;color:#fff;line-height:1.3;margin-bottom:3px;}
.premium-banner .pb-sub{font-size:12px;color:rgba(255,255,255,.8);line-height:1.4;}
.premium-banner .pb-arrow{flex:0 0 auto;font-size:26px;color:rgba(255,255,255,.7);font-weight:700;}
@media(max-width:600px){.premium-banner .pb-sub{display:none;}}

/* HORIZONTAL SCROLL */
.h-scroll{display:flex;gap:12px;padding:0 18px 18px;overflow-x:auto;scrollbar-width:none;}
.h-scroll::-webkit-scrollbar{display:none;}
.d-card{background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.08);width:152px;min-width:152px;max-width:152px;flex:0 0 152px;cursor:pointer;border:1px solid var(--border);text-decoration:none;display:block;}
@media(min-width:768px){.d-card{width:200px;min-width:200px;max-width:200px;flex-basis:200px;}}
.d-img{width:100%;height:110px;display:flex;align-items:center;justify-content:center;font-size:40px;position:relative;overflow:hidden;}
.d-body{padding:8px 10px 10px;}
.d-body strong{display:block;font-size:13px;font-weight:800;margin-bottom:1px;color:var(--text);}
.d-body small{font-size:11px;color:var(--muted);}

/* MAIN CARDS GRID */
.main-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 18px;}
.m-card{background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.07);border:1px solid var(--border);cursor:pointer;text-decoration:none;display:block;}
.m-img{width:100%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;font-size:52px;position:relative;overflow:hidden;}
.m-img img{width:100%;height:100%;object-fit:cover;}
.online{position:absolute;top:9px;right:9px;width:10px;height:10px;background:#2ECC71;border-radius:50%;border:2px solid #fff;}
.b-over{position:absolute;top:9px;left:9px;border-radius:20px;padding:3px 8px;font-size:10px;font-weight:800;}
.bv{background:rgba(255,255,255,.92);color:var(--p1);}
.bp{background:var(--grad-warm);color:#fff;}
.m-body{padding:10px 11px 12px;}
.m-name{font-size:14px;font-weight:800;margin-bottom:2px;color:var(--text);}
.m-city{font-size:12px;color:var(--muted);margin-bottom:7px;}

/* BADGES */
.badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:10px;font-weight:800;}
.ba{background:#FCE4EC;color:#C13584;}
.bm{background:#EDE7F6;color:#833AB4;}
.be{background:#FFF3E0;color:#F56040;}
.bt{background:#E3F2FD;color:#1565C0;}
.bc{background:#E8F5E9;color:#2E7D32;}
.bs{background:#FCE4EC;color:#E1306C;}
.bg-ero{background:#FFF8E1;color:#F77737;}

/* GRADIENTS */
.g1{background:linear-gradient(160deg,#F77737,#E1306C);}
.g2{background:linear-gradient(160deg,#833AB4,#C13584);}
.g3{background:linear-gradient(160deg,#FCAF45,#F56040);}
.g4{background:linear-gradient(160deg,#C13584,#E1306C,#FD1D1D);}
.g5{background:linear-gradient(160deg,#E1306C,#F56040,#FCAF45);}
.g6{background:linear-gradient(160deg,#833AB4,#C13584,#F56040);}

/* AUTH */
.auth-page{background:#fff;}
.auth-header{padding:52px 24px 28px;color:#fff;}
.auth-back{font-size:22px;cursor:pointer;display:inline-block;opacity:.9;color:#fff;text-decoration:none;margin-bottom:16px;}
.auth-title{font-size:26px;font-weight:900;margin-bottom:4px;}
.auth-sub{font-size:14px;opacity:.8;}
.auth-body{padding:24px 24px 40px;overflow-y:auto;}
.field-group{margin-bottom:16px;}
.field-label{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px;}
.field-input{width:100%;padding:13px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:15px;color:var(--text);outline:none;background:#FAFAFA;transition:border-color .2s;font-family:inherit;}
.field-input:focus{border-color:var(--p2);background:#fff;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.gender-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.gender-btn{padding:11px 6px;border-radius:12px;border:1.5px solid var(--border);background:#fff;font-size:12px;font-weight:700;text-align:center;cursor:pointer;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:4px;}
.gender-btn.sel,.gender-btn:has(input:checked){border-color:var(--p2);background:#FCE4EC;color:var(--p2);}
.gender-icon{font-size:22px;}
.age-confirm{display:flex;align-items:flex-start;gap:12px;margin-top:16px;cursor:pointer;}
.age-confirm input[type=checkbox]{width:20px;height:20px;accent-color:var(--p2);flex-shrink:0;margin-top:2px;}
.age-text{font-size:13px;color:var(--muted);line-height:1.5;}
.age-text a{color:var(--p2);}
.auth-divider{text-align:center;color:var(--muted);font-size:13px;margin:18px 0;display:flex;align-items:center;gap:12px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.auth-switch{text-align:center;font-size:14px;color:var(--muted);margin-top:16px;}
.auth-switch a{font-weight:700;color:var(--p2);cursor:pointer;text-decoration:none;}
.social-btn{width:100%;padding:13px;border-radius:12px;border:1.5px solid var(--border);background:#fff;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text);margin-bottom:10px;text-decoration:none;}

/* BUTTONS */
.btn-grad{width:100%;padding:15px;border-radius:14px;border:none;background:var(--grad);color:#fff;font-size:16px;font-weight:800;cursor:pointer;box-shadow:0 6px 20px rgba(225,48,108,.35);font-family:inherit;}
.btn-grad:active{opacity:.88;}
.btn-outline-grad{width:100%;padding:14px;border-radius:14px;border:2px solid var(--p2);background:transparent;color:var(--p2);font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;}

/* ALERTS */
.alert{padding:12px 16px;border-radius:12px;font-size:14px;margin-bottom:16px;}
.alert-erro{background:#FCE4EC;color:#C13584;border:1px solid #F8BBD9;}
.alert-ok{background:#E8F5E9;color:#2E7D32;border:1px solid #A5D6A7;}

/* FAB */
.fab{position:fixed;bottom:72px;left:50%;transform:translateX(-50%);width:56px;height:56px;border-radius:50%;background:var(--grad);border:none;color:#fff;font-size:28px;cursor:pointer;box-shadow:0 6px 22px rgba(225,48,108,.45);display:flex;align-items:center;justify-content:center;z-index:200;text-decoration:none;}

/* BOTTOM NAV */
.bnav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:#fff;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-around;padding:10px 0 calc(18px + env(safe-area-inset-bottom));z-index:100;}
.ni{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:700;color:#bbb;cursor:pointer;min-width:56px;text-decoration:none;}
.ni.on{background:var(--grad-cool);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.ni-ic{font-size:22px;}
.ni.center{opacity:0;pointer-events:none;}
.nw{position:relative;display:inline-block;}
.nd{position:absolute;top:-3px;right:-5px;width:8px;height:8px;background:var(--p3);border-radius:50%;border:1.5px solid #fff;}

/* SCROLL */
.scroll{padding-bottom:90px;overflow-y:auto;}

/* ANÚNCIO DETALHE */
.anuncio-fotos{display:flex;gap:8px;padding:14px 18px;overflow-x:auto;}
.anuncio-foto-main{width:100%;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#eee;}
.anuncio-foto-main img{width:100%;height:100%;object-fit:cover;}
.anuncio-info{padding:0 18px;}
.anuncio-title{font-size:20px;font-weight:900;margin-bottom:6px;}
.anuncio-meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.anuncio-contato{margin:18px 18px 0;}

/* PERFIL */
.prof-hero{background:var(--grad);padding:52px 18px 24px;display:flex;flex-direction:column;align-items:center;color:#fff;}
.prof-avatar{width:88px;height:88px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:44px;margin-bottom:12px;border:3px solid rgba(255,255,255,.5);overflow:hidden;}
.prof-avatar img{width:100%;height:100%;object-fit:cover;}
.prof-name{font-size:22px;font-weight:900;}
.prof-email{font-size:13px;opacity:.75;margin-top:2px;}
.prof-badges{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;justify-content:center;}
.prof-badge{background:rgba(255,255,255,.2);border-radius:20px;padding:4px 12px;font-size:12px;font-weight:700;}
.prof-menu{padding:18px;}
.pm-item{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--border);cursor:pointer;text-decoration:none;}
.pm-item:last-child{border:none;}
.pm-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.pm-txt strong{display:block;font-size:14px;font-weight:700;color:var(--text);}
.pm-txt small{font-size:12px;color:var(--muted);}
.pm-arr{margin-left:auto;color:var(--muted);font-size:18px;}
.logout-btn{margin:0 18px 30px;width:calc(100% - 36px);padding:14px;border-radius:14px;border:1.5px solid #FCE4EC;background:#FFF5F7;color:var(--p3);font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;}

/* PUBLICAR ANÚNCIO */
.pub-header{background:var(--grad);padding:52px 18px 24px;color:#fff;}
.pub-steps{display:flex;justify-content:center;gap:8px;margin-top:16px;}
.pub-step{width:32px;height:4px;border-radius:2px;background:rgba(255,255,255,.3);}
.pub-step.on{background:#fff;}

/* ADMIN */
/* Garante scroll em qualquer página admin — anula qualquer overflow:hidden global */
html:has(.admin-wrap), body:has(.admin-wrap){overflow-x:hidden;}
.admin-sidebar{width:220px;height:100vh;height:100dvh;background:#1A1A2E;padding:0 0 16px;position:fixed;top:0;left:0;overflow-y:auto;z-index:100;}
.admin-logo{padding:16px 24px 12px;font-size:15px;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.admin-nav{display:block;}
.admin-nav a{display:flex;align-items:center;gap:11px;padding:8px 24px;color:#aaa;text-decoration:none;font-size:13.5px;font-weight:600;transition:all .2s;}
.admin-nav a:hover,.admin-nav a.on{color:#fff;background:rgba(255,255,255,.07);}
.admin-nav a.on{border-left:3px solid var(--p2);}
.admin-nav .nav-sair-voltar{margin-top:16px;color:#fff;}
.admin-nav .nav-sair{color:#e74c3c;}
.admin-content{margin-left:220px;padding:30px;min-height:100vh;min-height:100dvh;}
.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px;}
.stat-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 10px rgba(0,0,0,.06);border:1px solid var(--border);}
.stat-num{font-size:28px;font-weight:900;margin-bottom:4px;}
.stat-lbl{font-size:13px;color:var(--muted);}
.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.06);}
.admin-table th{padding:14px 16px;text-align:left;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);}
.admin-table td{padding:14px 16px;font-size:14px;border-bottom:1px solid var(--border);}
.admin-table tr:last-child td{border:none;}
.admin-table tr:hover td{background:#FAFAFA;}
.status-pill{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;}
.sp-ativo{background:#E8F5E9;color:#2E7D32;}
.sp-pendente{background:#FFF8E1;color:#F57F17;}
.sp-bloqueado{background:#FCE4EC;color:#C13584;}
.admin-btn{padding:8px 16px;border-radius:10px;border:none;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;}
.ab-green{background:#E8F5E9;color:#2E7D32;}
.ab-red{background:#FCE4EC;color:#C13584;}
.ab-grad{background:var(--grad);color:#fff;}

/* PREMIUM PAGE */
.premium-cards{display:grid;grid-template-columns:1fr;gap:14px;padding:18px;}
.prem-card{background:#fff;border-radius:18px;border:2px solid var(--border);padding:20px;position:relative;}
.prem-card.popular{border-color:var(--p2);box-shadow:0 4px 20px rgba(193,53,132,.2);}
.prem-pop-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--grad);color:#fff;padding:4px 16px;border-radius:20px;font-size:12px;font-weight:800;white-space:nowrap;}
.prem-price{font-size:32px;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.prem-per{font-size:13px;color:var(--muted);}
.prem-features{list-style:none;margin:14px 0;display:flex;flex-direction:column;gap:8px;}
.prem-features li{font-size:14px;display:flex;align-items:center;gap:8px;}

/* TOAST */
.toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--text);color:#fff;padding:10px 20px;border-radius:20px;font-size:13px;font-weight:600;opacity:0;transition:all .3s;z-index:999;white-space:nowrap;pointer-events:none;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* UTILITY */
.mt-16{margin-top:16px;}
.pb-90{padding-bottom:90px;}
.text-center{text-align:center;}
.text-grad{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ADMIN — botão hambúrguer e overlay (escondidos no desktop) */
.admin-toggle{display:none;}
.admin-overlay{display:none;}

@media(max-width:900px){
  .admin-content{margin-left:0;padding:16px 16px 40px;}
  .stat-cards{grid-template-columns:1fr 1fr;}

  /* sidebar passa a painel deslizante */
  .admin-sidebar{transform:translateX(-100%);transition:transform .28s ease;z-index:1000;box-shadow:4px 0 24px rgba(0,0,0,.25);-webkit-overflow-scrolling:touch;}
  .admin-wrap.menu-open .admin-sidebar{transform:translateX(0);}

  /* botão hambúrguer fixo no canto */
  .admin-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:14px;left:14px;width:44px;height:44px;border-radius:12px;background:#1A1A2E;color:#fff;font-size:22px;border:none;cursor:pointer;z-index:1001;box-shadow:0 4px 14px rgba(0,0,0,.25);}

  /* dar espaço ao botão para não tapar o título */
  .admin-content > h1:first-child{padding-left:54px;min-height:44px;display:flex;align-items:center;}

  /* overlay escuro quando o menu está aberto */
  .admin-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .28s;z-index:999;}
  .admin-wrap.menu-open .admin-overlay{opacity:1;visibility:visible;}
}

@media(max-width:480px){
  .stat-cards{grid-template-columns:1fr;}
}

/* =============================================
   DESKTOP — min-width: 768px
   ============================================= */

@media(min-width:768px) {

  /* Fundo desktop do ecrã de app.
     NÃO prender o scroll de html/body via :has() — o .app já tem
     height:100vh + overflow:hidden, e prender aqui fazia a barra de
     scroll desaparecer até atualizar (bug de recálculo do :has no Chrome). */
  body:has(.app) { background:#F0F0F5; }

  .app {
    max-width:100%;
    display:grid;
    grid-template-columns:240px 1fr;
    grid-template-rows:58px 1fr;
    height:100vh;height:100dvh;
    overflow:hidden;
    background:transparent;
  }

  /* HEADER */
  .site-header {
    grid-column:1/-1;
    grid-row:1;
    display:flex;
    align-items:center;
    gap:16px;
    padding:0 24px;
    height:58px;
    max-width:100%;
  }
  .header-top { margin-bottom:0; flex:0 0 auto; }

  /* ESCONDER LOGO IMAGEM no header */
  .logo-img { display:none; }

  /* MOSTRAR LOGO TEXTO */
  .logo-txt {
    font-size:16px;
    font-weight:900;
    background:var(--grad);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    white-space:nowrap;
  }

  .search-wrap { flex:1; max-width:600px; }

  /* SIDEBAR */
  .pills {
    grid-column:1;
    grid-row:2;
    flex-direction:column;
    overflow:hidden;
    background:#fff;
    border-right:1px solid var(--border);
    border-bottom:none;
    padding:12px 10px;
    height:calc(100vh - 58px);height:calc(100dvh - 58px);
    gap:2px;
    align-items:stretch;
  }
  .pill {
    padding:8px 12px;
    border-radius:10px;
    font-size:12px;
    text-align:left;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    flex-shrink:0;
  }

  /* CONTEÚDO — único scroll */
  .scroll {
    grid-column:2;
    grid-row:2;
    padding:20px 24px 40px;
    overflow-y:auto;
    overflow-x:hidden;
    height:calc(100vh - 58px);height:calc(100dvh - 58px);
    background:var(--bg);
  }

  .banner { margin:0 0 20px 0; border-radius:20px; }
  .main-grid { grid-template-columns:repeat(3,1fr); gap:16px; padding:0; }
  .cat-grid { grid-template-columns:repeat(8,1fr); padding:0 0 20px 0; }
  .h-scroll { padding:0 0 20px 0; }
  .sec { padding:6px 0 12px; }

  .fab {
    left:auto; right:30px; bottom:30px;
    transform:none; width:60px; height:60px; font-size:30px;
  }

  .bnav { display:none; }

  .prof-hero { padding:40px 30px 24px; }
  .premium-cards { grid-template-columns:repeat(3,1fr); padding:0 0 20px; }
  .pub-header { padding:40px 30px 24px; }
  .toast { bottom:30px; }
}

@media(min-width:1200px) {
  .main-grid { grid-template-columns:repeat(4,1fr); }
  .app { grid-template-columns:260px 1fr; }
}

/* Remover a imagem da mulher do logo em todas as páginas (fica só o texto) */
.topnav-logo img,.logo img,.logo-img img,.logo-txt img,.m-drawer-brand img,#logoImg img,#logoTxt img,img[src*="mulher.png"]{display:none !important;}

/* ═══ MOBILE: evitar zoom automático do iOS nos campos (font-size >=16px) ═══ */
@media (max-width:767px){
  input[type=text],input[type=email],input[type=password],input[type=tel],
  input[type=number],input[type=search],input[type=url],input[type=date],
  select,textarea{font-size:16px !important;}
  /* respeitar a barra inferior (home indicator) no conteúdo com scroll */
  .scroll{scroll-padding-bottom:env(safe-area-inset-bottom);}
}

/* ═══════════════════════════════════════════════════════════
   MENU (gaveta de ícones) — componente partilhado (categorias)
   Igual ao da home. Na home continua a haver cópia inline própria.
   ═══════════════════════════════════════════════════════════ */
.m-menu-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;border:1.8px solid #2A2A2A;background:#fff;font-size:20px;color:var(--text);cursor:pointer;flex:0 0 auto;-webkit-tap-highlight-color:transparent;}
.m-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:opacity .22s;z-index:300;}
.m-overlay.open{opacity:1;visibility:visible;}
.m-drawer{display:flex;flex-direction:column;position:fixed;top:50%;left:50%;width:calc(100% - 34px);max-width:400px;max-height:84vh;background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.32);opacity:0;visibility:hidden;transform:translate(-50%,-50%) scale(.9);transition:opacity .22s ease, transform .22s cubic-bezier(.2,.8,.3,1);z-index:301;}
.m-drawer.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);}
.m-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;flex:0 0 auto;}
.m-drawer-brand{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.m-drawer-x{width:34px;height:34px;border-radius:50%;background:#F1F1F4;border:none;font-size:16px;color:var(--muted);cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.m-drawer-hi{padding:0 20px 8px;font-size:13.5px;font-weight:800;color:var(--text);}
.m-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 6px;padding:8px 14px 22px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.m-tile{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;}
.m-tile .m-ic{width:62px;height:62px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:27px;line-height:1;color:#fff;background:var(--grad);box-shadow:0 7px 16px rgba(225,48,108,.30);transition:transform .12s ease;}
.m-tile:hover .m-ic{transform:translateY(-2px);}
.m-tile:active .m-ic{transform:scale(.92);}
.m-tile span{font-size:11.5px;font-weight:700;color:var(--text);text-align:center;line-height:1.2;max-width:88px;}
.m-tile.gold  .m-ic{background:linear-gradient(135deg,#F7C948,#E8A317);box-shadow:0 7px 16px rgba(200,133,26,.34);}
.m-tile.admin .m-ic{background:linear-gradient(135deg,#2B2E4A,#4A4E82);box-shadow:0 7px 16px rgba(43,46,74,.34);}
.m-tile.danger .m-ic{background:linear-gradient(135deg,#FF6B6B,#C81D4E);box-shadow:0 7px 16px rgba(200,29,78,.32);}
@media(min-width:768px){.m-drawer{max-width:640px;}.m-grid{grid-template-columns:repeat(4,1fr);gap:18px 8px;}}

/* ═══════════════════════════════════════════════════════════
   MENU DE TOPO FIXO EM TODO O SITE
   Qualquer página com .topnav mantém o menu no topo ao fazer scroll.
   ═══════════════════════════════════════════════════════════ */
.topnav{position:sticky!important;top:0!important;z-index:100;}
