:root{
  --navy:#06263a;
  --navy2:#031724;
  --navy3:#0a3450;
  --gold:#d8ad5d;
  --gold2:#f1ca78;
  --text:#f7fbff;
  --muted:#b8c7d4;
  --line:rgba(255,255,255,.13);
  --glass:rgba(5,39,60,.78);
  --white:#ffffff;
  --ink:#132433;
}

*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}
a{text-decoration:none}

/* ========== ÁREA DO ASSOCIADO ========== */
body.asbac-app{
  min-height:100vh;
  color:var(--text);
  background:
    radial-gradient(circle at 80% 0%,rgba(216,173,93,.12),transparent 28%),
    radial-gradient(circle at 8% 18%,rgba(30,125,170,.18),transparent 26%),
    linear-gradient(145deg,var(--navy2),var(--navy) 55%,#02111b);
}

.app-shell{width:min(1180px,100%);margin:0 auto;padding:26px 20px 96px}
.app-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}
.app-logo{width:260px;max-width:62vw;filter:brightness(0) invert(1) drop-shadow(0 8px 22px rgba(0,0,0,.32))}
.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.premium-btn,.ghost-btn,.gold-btn{
  border-radius:14px;padding:11px 16px;font-weight:800;display:inline-flex;align-items:center;gap:9px
}
.gold-btn{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#081522;border:0}
.ghost-btn{border:1px solid rgba(216,173,93,.55);color:var(--gold);background:transparent}
.ghost-btn:hover{background:var(--gold);color:#071522}

.app-main{display:grid;gap:22px}
.hero-card,.glass-card,.quick-card,.member-card,.profile-summary,.app-form,.digital-card,.benefit-preview,.news-strip{
  border:1px solid var(--line);
  background:linear-gradient(145deg,rgba(8,51,77,.88),rgba(2,24,38,.86));
  box-shadow:0 24px 60px rgba(0,0,0,.24);
  border-radius:28px;
}
.hero-card{padding:clamp(24px,4vw,46px);display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center}
.hero-kicker{color:var(--gold);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.hero-card h1{font-size:clamp(34px,5vw,64px);line-height:1;margin:8px 0 12px}
.muted{color:var(--muted)}
.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:8px 14px;font-weight:900;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#071522}
.status-pill.danger{background:#dc3545;color:white}
.notice{border:1px solid var(--line);border-radius:18px;padding:15px 18px;background:rgba(255,255,255,.04)}
.notice.success{border-color:rgba(40,205,130,.35)}
.notice.warning{border-color:rgba(216,173,93,.45)}

.member-card{padding:24px;display:grid;grid-template-columns:1fr 210px;gap:20px;align-items:center}
.member-card h2{font-size:clamp(26px,4vw,42px);margin:6px 0}
.mini-card-preview{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#071522;border-radius:22px;padding:18px;min-height:150px;display:grid;align-content:space-between;font-weight:900}
.section-title{font-size:26px;margin:8px 0 0}
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.quick-card{padding:24px;color:var(--text);min-height:170px;transition:.18s}
.quick-card:hover{transform:translateY(-3px);border-color:rgba(216,173,93,.55)}
.icon-box{width:52px;height:52px;border-radius:18px;background:rgba(216,173,93,.10);border:1px solid rgba(216,173,93,.26);display:grid;place-items:center;color:var(--gold);margin-bottom:16px}
.icon-box svg{width:26px;height:26px}
.quick-card strong{font-size:21px;display:block;margin-bottom:8px}
.quick-card span{color:var(--muted)}
.disabled-card{opacity:.62}

.news-strip{padding:22px}
.news-strip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.news-strip-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.news-strip-item{border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:18px;padding:16px;color:var(--text)}
.news-strip-item h3{font-size:17px;margin:6px 0}

/* Carteirinha sem QR */
.page-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.page-title-row h1{font-size:clamp(34px,5vw,56px);margin:0}
.digital-card{padding:clamp(22px,4vw,36px);position:relative;overflow:hidden}
.digital-card::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 12%,rgba(216,173,93,.16),transparent 26%),repeating-linear-gradient(135deg,transparent 0 10px,rgba(255,255,255,.025) 11px 12px);pointer-events:none}
.card-top,.card-body-grid,.card-footer-line{position:relative;z-index:1}
.card-logo{width:240px;max-width:70vw;filter:brightness(0) invert(1)}
.card-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:28px}
.card-body-grid{display:grid;grid-template-columns:190px 1fr;gap:34px;align-items:center}
.photo-box{width:190px;aspect-ratio:3/4;border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.20);background:rgba(255,255,255,.08)}
.photo-box img{width:100%;height:100%;object-fit:cover}
.photo-placeholder{height:100%;display:grid;place-items:center;color:var(--muted);font-weight:900}
.identity-data span,.data-grid span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.identity-data>strong{display:block;font-size:clamp(28px,5vw,46px);line-height:1.05;margin:6px 0 26px}
.data-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.data-grid strong{font-size:21px}
.card-footer-line{border-top:1px solid var(--line);margin-top:28px;padding-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.info-mini span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase}
.info-mini strong{font-size:18px}
.valid-card{border:1px solid rgba(53,196,123,.35);background:rgba(53,196,123,.08);border-radius:22px;padding:20px}

/* Forms */
.profile-summary{padding:22px;display:flex;gap:20px;align-items:center}
.small-photo{width:105px;flex:0 0 105px}
.app-form{padding:clamp(20px,3vw,32px)}
.form-section{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.app-form label{color:var(--muted);margin-bottom:6px}
.app-input{background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.18)!important;color:var(--text)!important;border-radius:14px!important;padding:13px 15px!important}
.app-input option{color:#111}

/* Login */
.login-page{display:grid;place-items:center}
.login-shell{min-height:100vh;width:min(520px,100%);display:grid;place-items:center;padding:26px}
.login-card{width:100%;border:1px solid var(--line);background:linear-gradient(145deg,rgba(8,51,77,.94),rgba(2,20,32,.96));border-radius:30px;padding:clamp(28px,6vw,46px);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.login-logo{width:min(360px,86%);display:block;margin:0 auto 34px;filter:brightness(0) invert(1) drop-shadow(0 10px 26px rgba(0,0,0,.30))}
.login-card h1{font-size:30px}

/* Bottom */
.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(1180px,100%);background:rgba(1,18,29,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:10px 8px 14px;z-index:10}
.bottom-nav a{color:var(--muted);display:grid;place-items:center;gap:3px;font-size:12px}
.bottom-nav svg{width:24px;height:24px;color:var(--gold)}

/* ========== PORTAL PÚBLICO ========== */
body.portal-public{background:#f5f7fa;color:var(--ink)}
.portal-top{background:linear-gradient(135deg,#001826,#063a56);color:white}
.portal-shell{width:min(1220px,100%);margin:0 auto;padding:0 20px}
.portal-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0}
.portal-logo{width:250px;max-width:60vw;filter:brightness(0) invert(1)}
.portal-nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.portal-nav a{color:#d8e8f4;font-weight:700}
.portal-hero{padding:58px 0 70px;display:grid;grid-template-columns:1.15fr .85fr;gap:38px;align-items:center}
.portal-hero h1{font-size:clamp(42px,6vw,76px);line-height:1;margin:0 0 16px}
.portal-feature{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:28px;padding:28px}
.portal-section{width:min(1220px,100%);margin:0 auto;padding:42px 20px}
.portal-section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}
.portal-section-title h2{font-size:34px;margin:0}
.main-news-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}
.lead-news,.side-news,.public-card{background:white;border-radius:24px;box-shadow:0 14px 45px rgba(10,35,55,.08);border:1px solid #e6edf3;overflow:hidden}
.news-image{height:250px;background:linear-gradient(135deg,#063a56,#d8ad5d);display:grid;place-items:center;color:white;font-weight:900;font-size:18px}
.lead-news .news-body,.side-news .news-body,.public-card .news-body{padding:24px}
.lead-news h3{font-size:34px;line-height:1.12}
.side-list{display:grid;gap:16px}
.side-news{display:grid;grid-template-columns:130px 1fr}
.side-news .news-image{height:100%;font-size:13px}
.news-list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tag{display:inline-flex;background:#fff4d8;color:#7a5512;border-radius:999px;padding:6px 10px;font-weight:800;font-size:12px}
.portal-footer{background:#001826;color:#b8c7d4;margin-top:40px;padding:34px 0}

/* Admin theme stays in admin css */

@media(max-width:800px){
  .app-shell{padding:20px 14px 96px}
  .app-header{align-items:flex-start}
  .app-logo{width:210px}
  .hero-card,.member-card,.card-body-grid,.portal-hero,.main-news-grid{grid-template-columns:1fr}
  .quick-grid,.news-strip-list,.news-list-grid{grid-template-columns:repeat(2,1fr)}
  .card-top{flex-direction:column}
  .card-footer-line,.form-grid,.data-grid{grid-template-columns:1fr}
  .photo-box{width:min(190px,100%)}
  .portal-header{align-items:flex-start}
  .portal-logo{width:210px}
  .side-news{grid-template-columns:1fr}
  .side-news .news-image{height:120px}
}
@media(max-width:520px){
  .quick-grid,.news-strip-list,.news-list-grid{grid-template-columns:1fr}
  .portal-nav{font-size:14px}
  .portal-header{flex-direction:column}
  .header-actions{justify-content:flex-end}
}



/* ASBAC - logo centralizado e maior no portal e área do associado */

/* Área do associado */
.app-header {
  justify-content: center !important;
  position: relative !important;
  padding-top: 8px !important;
  margin-bottom: 34px !important;
}

.app-header > a:first-child {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
}

.app-logo {
  width: clamp(260px, 42vw, 380px) !important;
  max-width: 82vw !important;
  margin: 0 auto !important;
  display: block !important;
}

.app-header .header-actions {
  position: absolute !important;
  right: 0 !important;
  top: 10px !important;
}

/* Portal público */
.portal-header-inner {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: center !important;
  gap: 18px !important;
  padding: 24px 0 !important;
}

.portal-header-inner > a:first-child {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
}

.portal-logo {
  width: clamp(260px, 36vw, 390px) !important;
  max-width: 84vw !important;
  margin: 0 auto !important;
  display: block !important;
}

.portal-menu {
  width: 100% !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 14px 22px !important;
}

/* Mobile */
@media (max-width: 720px) {
  .app-header {
    padding-top: 18px !important;
    margin-bottom: 28px !important;
  }

  .app-logo {
    width: 300px !important;
    max-width: 78vw !important;
  }

  .app-header .header-actions {
    position: static !important;
    width: 100% !important;
    justify-content: center !important;
    margin-top: 12px !important;
  }

  .portal-header-inner {
    padding: 26px 0 20px !important;
    gap: 18px !important;
  }

  .portal-logo {
    width: 285px !important;
    max-width: 80vw !important;
  }

  .portal-menu {
    justify-content: center !important;
    gap: 10px 14px !important;
  }

  .portal-menu a:not(.portal-btn):not(.portal-btn-outline) {
    font-size: 15px !important;
  }

  .portal-btn,
  .portal-btn-outline {
    font-size: 15px !important;
  }

  .portal-hero-v3 {
    padding-top: 24px !important;
  }
}

@media (max-width: 420px) {
  .app-logo,
  .portal-logo {
    width: 255px !important;
    max-width: 82vw !important;
  }

  .portal-menu {
    gap: 9px 11px !important;
  }

  .portal-menu a:not(.portal-btn):not(.portal-btn-outline) {
    font-size: 14px !important;
  }
}



/* ASBAC - topo premium da área do associado com paisagem discreta de Salvador */

body.asbac-app .app-header {
  display: none !important;
}

.asbac-app-hero-top {
  position: relative;
  overflow: hidden;
  min-height: 310px;
  border-radius: 0 0 34px 34px;
  margin: -26px -20px 28px;
  padding: 38px 32px 34px;
  background:
    radial-gradient(circle at 88% 18%, rgba(216,173,93,.15), transparent 26%),
    linear-gradient(135deg, rgba(0, 25, 40, .96), rgba(5, 49, 74, .92));
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
}

.asbac-app-hero-top::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,20,32,.94) 0%, rgba(0,24,38,.72) 48%, rgba(0,20,32,.38) 100%);
  z-index: 1;
}

.asbac-app-hero-top::after {
  content: "";
  position: absolute;
  right: 4%;
  bottom: 0;
  width: min(640px, 70%);
  height: 82%;
  opacity: .22;
  background:
    /* Elevador/Lacerda estilizado */
    linear-gradient(to top, rgba(255,255,255,.18), rgba(255,255,255,.18)) 72% 36% / 38px 54% no-repeat,
    linear-gradient(to top, rgba(255,255,255,.16), rgba(255,255,255,.16)) 82% 42% / 28px 45% no-repeat,
    linear-gradient(to right, rgba(255,255,255,.14), rgba(255,255,255,.14)) 61% 58% / 270px 16px no-repeat,
    linear-gradient(to right, rgba(255,255,255,.12), rgba(255,255,255,.12)) 62% 70% / 350px 11px no-repeat,
    /* casario/arcadas */
    repeating-linear-gradient(90deg, rgba(255,255,255,.10) 0 26px, transparent 26px 44px) 48% 80% / 410px 70px no-repeat,
    /* silhueta de prédio */
    linear-gradient(135deg, transparent 0 20%, rgba(255,255,255,.08) 20% 100%) 100% 100% / 520px 170px no-repeat;
  z-index: 0;
}

.asbac-hero-content {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 22px;
}

.asbac-hero-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.asbac-hero-logo {
  width: clamp(210px, 30vw, 330px);
  max-width: 78vw;
  filter: brightness(0) invert(1) drop-shadow(0 12px 30px rgba(0,0,0,.35));
}

.asbac-notification-btn {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  border: 1px solid rgba(216,173,93,.45);
  background: rgba(255,255,255,.06);
  color: var(--gold);
  display: grid;
  place-items: center;
}

.asbac-notification-btn svg {
  width: 26px;
  height: 26px;
}

.asbac-hero-text {
  margin-top: 14px;
  max-width: 640px;
}

.asbac-hero-text .hero-kicker {
  color: var(--gold);
  font-size: clamp(20px, 3vw, 32px);
  letter-spacing: 0;
  text-transform: none;
  margin-bottom: 8px;
}

.asbac-hero-text p {
  color: var(--muted);
  font-size: clamp(17px, 2vw, 23px);
  line-height: 1.35;
  margin: 0;
}

.asbac-hero-actions {
  margin-top: 24px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.asbac-hero-actions .ghost-btn,
.asbac-hero-actions .gold-btn {
  min-width: 150px;
}

/* Como o topo já virou hero, reduz o peso visual do primeiro card */
.app-main > .hero-card:first-of-type {
  margin-top: -4px;
}

/* Mobile */
@media (max-width: 720px) {
  .asbac-app-hero-top {
    min-height: 280px;
    margin: -20px -14px 24px;
    padding: 34px 24px 30px;
    border-radius: 0 0 30px 30px;
  }

  .asbac-hero-row {
    align-items: center;
  }

  .asbac-hero-logo {
    width: 245px;
    max-width: 72vw;
  }

  .asbac-notification-btn {
    width: 48px;
    height: 48px;
    border-radius: 16px;
  }

  .asbac-app-hero-top::after {
    right: -18%;
    width: 92%;
    height: 74%;
    opacity: .18;
  }

  .asbac-hero-text {
    margin-top: 20px;
  }

  .asbac-hero-text .hero-kicker {
    font-size: 25px;
  }

  .asbac-hero-text p {
    font-size: 18px;
    max-width: 310px;
  }
}

@media (max-width: 420px) {
  .asbac-app-hero-top {
    min-height: 270px;
    padding: 32px 22px 28px;
  }

  .asbac-hero-logo {
    width: 220px;
  }

  .asbac-hero-text .hero-kicker {
    font-size: 23px;
  }

  .asbac-hero-text p {
    font-size: 17px;
  }
}



/* ASBAC - remove duplicidade da saudação e ajusta topo personalizado */

.app-main > .hero-card:first-child {
  display: none !important;
}

.asbac-hero-text .hero-kicker {
  max-width: 760px;
  line-height: 1.08;
}

.asbac-hero-text p {
  max-width: 760px;
}

@media (max-width: 720px) {
  .asbac-hero-text .hero-kicker {
    font-size: clamp(26px, 7.8vw, 38px) !important;
    line-height: 1.05 !important;
  }

  .asbac-hero-text p {
    font-size: 18px !important;
  }
}



/* ASBAC - correção de Entrar/Sair */

.asbac-top-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.asbac-logout-top {
  min-width: 86px;
  justify-content: center;
}

@media (max-width: 720px) {
  .asbac-top-actions {
    display: grid;
    gap: 8px;
    justify-items: end;
  }

  .asbac-logout-top {
    padding: 8px 13px !important;
    min-width: 72px;
    font-size: 14px;
  }
}



/* ASBAC - não associado / cards bloqueados */
.disabled-card{
  cursor:not-allowed !important;
  opacity:.45 !important;
  filter:grayscale(.35) !important;
  pointer-events:none !important;
}

.disabled-card::after{
  content:"Bloqueado";
  position:absolute;
  top:20px;
  right:20px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(216,173,93,.45);
  color:#d8ad5d;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.notice.warning{
  border:1px solid rgba(216,173,93,.35);
  background:rgba(216,173,93,.10);
  color:#f1f5f9;
}



/* ASBAC - link área do associado */
.area-associado-link{
  color:inherit !important;
  text-decoration:none !important;
  cursor:pointer !important;
}
.area-associado-link:hover{
  text-decoration:underline !important;
}
/* ASBAC - bloqueio para não associado */
.disabled-card{
  cursor:not-allowed !important;
  opacity:.45 !important;
  filter:grayscale(.35) !important;
  pointer-events:none !important;
}



/* ASBAC - REPARO DEFINITIVO CARDS DASHBOARD */
.dashboard-hero{
  margin-bottom:34px !important;
}

.acesso-rapido-section{
  margin-top:34px !important;
}

.acesso-rapido-section h2{
  margin:0 0 22px !important;
  font-size:32px !important;
  line-height:1.15 !important;
}

.acesso-rapido-grid{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:22px !important;
  width:100% !important;
  align-items:stretch !important;
}

.acesso-rapido-grid .quick-card{
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  margin:0 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:210px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  padding:28px !important;
  border-radius:26px !important;
  overflow:hidden !important;
  text-decoration:none !important;
}

.acesso-rapido-grid .quick-card .icon-box{
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
  margin:0 0 22px 0 !important;
  flex:0 0 auto !important;
}

.acesso-rapido-grid .quick-card strong{
  display:block !important;
  margin:0 0 12px !important;
  font-size:24px !important;
  line-height:1.15 !important;
  color:#fff !important;
  opacity:1 !important;
}

.acesso-rapido-grid .quick-card span{
  display:block !important;
  font-size:17px !important;
  line-height:1.45 !important;
  opacity:.9 !important;
}

.disabled-card{
  cursor:not-allowed !important;
  opacity:.45 !important;
  filter:grayscale(.35) !important;
  pointer-events:none !important;
}

.disabled-card::after{
  content:"Bloqueado";
  position:absolute;
  top:20px;
  right:20px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(216,173,93,.45);
  color:#d8ad5d;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.notice.warning{
  border:1px solid rgba(216,173,93,.35);
  background:rgba(216,173,93,.10);
  color:#f1f5f9;
}

@media(max-width:1000px){
  .acesso-rapido-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media(max-width:680px){
  .acesso-rapido-grid{
    grid-template-columns:1fr !important;
  }
}

/* =========================================================
   ASBAC Digital - correção global de links em cards e títulos
   Evita roxo/sublinhado padrão do navegador em links visitados.
   Mantém links de texto comum sem interferência agressiva.
   ========================================================= */
.app-shell a,
.portal-public a,
.quick-card,
.quick-card:link,
.quick-card:visited,
.quick-card:hover,
.quick-card:active,
.news-strip-item,
.news-strip-item:link,
.news-strip-item:visited,
.news-strip-item:hover,
.news-strip-item:active,
.public-card,
.public-card:link,
.public-card:visited,
.public-card:hover,
.public-card:active,
.lead-news a,
.side-news a,
.public-card a,
.hero-card a,
.glass-card a,
.member-card a,
.benefit-preview a,
.digital-card a {
  text-decoration: none !important;
}

.quick-card,
.quick-card:visited,
.news-strip-item,
.news-strip-item:visited {
  color: var(--text) !important;
}

.quick-card strong,
.quick-card:visited strong,
.quick-card:hover strong,
.quick-card span,
.quick-card:visited span,
.quick-card:hover span {
  text-decoration: none !important;
}

.quick-card:hover strong,
.news-strip-item:hover h3 {
  color: var(--gold2) !important;
}

.portal-public .lead-news a,
.portal-public .side-news a,
.portal-public .public-card a,
.portal-public .lead-news a:visited,
.portal-public .side-news a:visited,
.portal-public .public-card a:visited {
  color: var(--ink) !important;
  text-decoration: none !important;
}

.portal-public .lead-news a:hover,
.portal-public .side-news a:hover,
.portal-public .public-card a:hover {
  color: #0a3450 !important;
  text-decoration: none !important;
}

.portal-public .tag,
.portal-public .tag:visited,
.portal-public .tag:hover {
  color: #17324d !important;
  text-decoration: none !important;
}


/* ASBAC V1 - Login limpo e recuperação de senha */
.login-links-clean{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:24px;
  flex-wrap:wrap;
  color:rgba(255,255,255,.35);
  font-weight:800;
}
.login-links-clean a,
.login-card .gold-link{
  color:var(--gold2)!important;
  font-weight:900;
  text-decoration:none!important;
}
.login-links-clean a:hover,
.login-card .gold-link:hover{
  color:#fff!important;
  text-decoration:none!important;
}
.login-card .app-input::placeholder{
  color:rgba(255,255,255,.50)!important;
}


/* === ASBAC V1.0 - login final === */
.login-card .form-check,
.login-card input[name="primeiro_acesso"],
.login-card label[for*="primeiro_acesso"] {
  display: none !important;
}
.login-links-final {
  margin-top: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  color: rgba(255,255,255,.45);
  font-weight: 800;
}
.login-links-final .gold-link {
  color: var(--gold2) !important;
  font-weight: 900;
}
.login-links-final .gold-link:hover {
  color: #fff !important;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.login-social {
  margin-top: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.login-social a {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
  transition: .18s ease;
}
.login-social a:hover {
  transform: translateY(-2px);
  color: #071522 !important;
  background: linear-gradient(135deg,var(--gold),var(--gold2));
  border-color: transparent;
}
.login-social svg {
  width: 21px;
  height: 21px;
  fill: currentColor;
}
.login-card .app-input::placeholder,
.login-card input::placeholder {
  color: rgba(255,255,255,.55) !important;
  opacity: 1 !important;
}
.login-card .alert-info,
.login-card .alert-warning { border-radius: 14px; }
@media(max-width:520px){
  .login-card { padding: 28px 22px !important; }
  .login-logo { margin-bottom: 26px !important; }
}

/* ASBAC redes sociais rodape/login */
.asbac-login-social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
}
.asbac-login-social a {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff !important;
  text-decoration: none !important;
}
.asbac-login-social a:hover {
  background: rgba(233,184,79,.18);
  border-color: rgba(233,184,79,.55);
  transform: translateY(-2px);
}
.asbac-login-social svg { width: 20px; height: 20px; fill: currentColor; }

/* =========================================================
   PATCH 34.6 — TOPO MOBILE DA ÁREA DO ASSOCIADO
   Centraliza e amplia a marca e posiciona o botão Sair
   no canto superior, sem alterar o desktop.
   ========================================================= */

@media (max-width: 720px) {
  .asbac-app-hero-top {
    padding-top: 24px !important;
  }

  .asbac-hero-row {
    position: relative !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 218px !important;
  }

  .asbac-hero-row > a:first-child {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    line-height: 0 !important;
  }

  .asbac-hero-logo {
    width: min(310px, 82vw) !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 auto !important;
    display: block !important;
    filter: brightness(0) invert(1) drop-shadow(0 12px 30px rgba(0,0,0,.35)) !important;
  }

  .asbac-top-actions {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    z-index: 4 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
  }

  .asbac-logout-top {
    min-width: 76px !important;
    min-height: 48px !important;
    padding: 10px 15px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 15px !important;
    line-height: 1 !important;
    border-radius: 16px !important;
  }

  .asbac-hero-content {
    gap: 12px !important;
  }

  .asbac-hero-text {
    margin-top: 4px !important;
  }
}

@media (max-width: 420px) {
  .asbac-app-hero-top {
    padding-top: 20px !important;
  }

  .asbac-hero-row {
    min-height: 205px !important;
  }

  .asbac-hero-logo {
    width: min(292px, 84vw) !important;
  }

  .asbac-logout-top {
    min-width: 72px !important;
    min-height: 46px !important;
    padding: 9px 13px !important;
    font-size: 14px !important;
  }
}

/* =========================================================
   PATCH 34.7 — REFINAMENTO FINAL DO TOPO MOBILE
   Equilibra logo, botão Sair e bloco de boas-vindas.
   ========================================================= */

@media (max-width: 720px) {
  .asbac-app-hero-top {
    padding-top: 16px !important;
  }

  .asbac-hero-row {
    min-height: 188px !important;
    margin-bottom: 0 !important;
  }

  .asbac-hero-logo {
    width: min(286px, 78vw) !important;
    max-width: none !important;
    margin: 0 auto !important;
  }

  .asbac-top-actions {
    top: -4px !important;
    right: 2px !important;
  }

  .asbac-logout-top {
    min-width: 70px !important;
    min-height: 44px !important;
    padding: 8px 13px !important;
    font-size: 14px !important;
    border-radius: 14px !important;
  }

  .asbac-hero-content {
    gap: 8px !important;
  }

  .asbac-hero-text {
    margin-top: -8px !important;
  }

  .asbac-hero-text h1,
  .asbac-hero-title {
    line-height: 1.04 !important;
    margin-bottom: 10px !important;
  }

  .asbac-hero-subtitle,
  .asbac-hero-text p {
    margin-bottom: 18px !important;
  }
}

@media (max-width: 420px) {
  .asbac-app-hero-top {
    padding-top: 14px !important;
  }

  .asbac-hero-row {
    min-height: 178px !important;
  }

  .asbac-hero-logo {
    width: min(272px, 79vw) !important;
  }

  .asbac-top-actions {
    top: -2px !important;
    right: 0 !important;
  }

  .asbac-hero-text {
    margin-top: -10px !important;
  }
}

/* =========================================================
   PATCH 34.8 — AJUSTES FINOS DO TOPO MOBILE
   Mantém exatamente o tamanho atual da logo.
   ========================================================= */

@media (max-width: 720px) {
  /* Mantém o tamanho da logo definido no patch anterior. */
  .asbac-hero-logo {
    width: min(286px, 78vw) !important;
  }

  /* Sobe discretamente a marca sem reduzir seu tamanho. */
  .asbac-hero-row > a:first-child {
    transform: translateY(-10px) !important;
  }

  /* Aproxima o bloco de boas-vindas da logo. */
  .asbac-hero-text {
    margin-top: -22px !important;
  }

  /* Botão Sair mais discreto e melhor alinhado. */
  .asbac-top-actions {
    top: -10px !important;
    right: 0 !important;
  }

  .asbac-logout-top {
    min-width: 66px !important;
    min-height: 42px !important;
    padding: 7px 12px !important;
    font-size: 13px !important;
    border-radius: 13px !important;
  }

  /* Botões principais com o mesmo peso e largura. */
  .asbac-hero-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
  }

  .asbac-hero-actions a,
  .asbac-hero-actions button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    text-align: center !important;
    justify-content: center !important;
  }

  /* Reduz o vazio entre o topo e a seção seguinte. */
  .asbac-quick-access,
  .acesso-rapido,
  .quick-access-section {
    margin-top: 28px !important;
  }

  .asbac-quick-access h2,
  .acesso-rapido h2,
  .quick-access-section h2 {
    margin-bottom: 18px !important;
  }
}

@media (max-width: 420px) {
  .asbac-hero-logo {
    width: min(272px, 79vw) !important;
  }

  .asbac-hero-row > a:first-child {
    transform: translateY(-8px) !important;
  }

  .asbac-hero-text {
    margin-top: -20px !important;
  }

  .asbac-logout-top {
    min-width: 62px !important;
    min-height: 40px !important;
    padding: 6px 10px !important;
    font-size: 13px !important;
  }

  .asbac-hero-actions {
    gap: 10px !important;
  }
}
