
:root{
  --primary:#2aaa80;
  --primary-dark:#1a5c45;
  --primary-deep:#0d3d2e;
  --primary-light:#e6f7f1;
  --accent:#2aaa80;
  --accent-dark:#1a7a5a;
  --bg:#f5f5f0;
  --surface:#fff;
  --surface-soft:#eef8f3;
  --surface-mid:#d8f0e6;
  --text:#0f1f19;
  --muted:#5a6e66;
  --border:#d0e8dc;
  --open:#1a5c45;
  --planned:#0031FF;
  --published:#C4170C;
  --requested:#806600;
  --shadow:0 4px 20px rgba(13,61,46,.06);
  --shadow-sm:0 2px 8px rgba(13,61,46,.05);
  --shadow-lg:0 16px 56px rgba(13,61,46,.13);
  --radius:16px;
  --radius-lg:24px;
  --max:1200px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:'Hanken Grotesk',system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5;padding-bottom:76px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(var(--max),calc(100% - 40px));margin-inline:auto}.serif{font-family:'Source Serif 4',Georgia,serif}.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}.nav{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:26px;line-height:1;letter-spacing:-.02em;text-decoration:none;display:inline-flex;align-items:baseline;gap:0;flex-shrink:0}.menu{display:flex;align-items:center;gap:24px;color:var(--muted);font-weight:600}.menu a:hover,.menu .active{color:var(--primary);}.actions{display:flex;align-items:center;gap:12px}.searchBox{height:42px;display:flex;align-items:center;gap:8px;background:var(--surface-soft);border:1px solid var(--border);border-radius:999px;padding:0 14px;min-width:260px}.searchBox input{border:0;background:transparent;outline:0;width:100%;font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;background:var(--primary);color:#fff;padding:12px 18px;font-weight:800;cursor:pointer;transition:.2s}.btn:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn.ghost{background:#fff;color:var(--primary);border:1px solid var(--border)}.hero{display:grid;grid-template-columns:2fr 1fr;gap:24px;padding:34px 0 22px}.heroMain{min-height:510px;position:relative;overflow:hidden;border-radius:22px;background:linear-gradient(135deg,#0d3d2e,#2aaa80 48%,#c8eedd);box-shadow:var(--shadow);isolation:isolate}.heroMain:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 22%,rgba(255,255,255,.22),transparent 28%),linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,.18),transparent)}.heroPattern{position:absolute;inset:0;opacity:.24;background-image:linear-gradient(30deg,transparent 30%,rgba(255,255,255,.25) 31%,transparent 32%),linear-gradient(120deg,transparent 30%,rgba(255,255,255,.18) 31%,transparent 32%);background-size:90px 90px}.heroContent{position:absolute;left:34px;right:34px;bottom:34px;color:#fff}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;line-height:1;text-transform:uppercase;font-weight:800;letter-spacing:.04em;background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.18)}.chip.green{background:#dff7eb;color:var(--primary-dark);border:0}.hero h1{font:700 clamp(22px,2.4vw,32px)/1.08 'Source Serif 4',serif;letter-spacing:-.025em;margin:0;max-width:650px}.heroTitleLink{display:block;color:#fff}.heroTitleLink:hover h1{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.hero p{font-size:19px;color:rgba(255,255,255,.82);max-width:620px;margin:0 0 24px}.sideStack{display:grid;gap:24px}.featureCard,.card,.newsMini,.filterPanel,.newsletter,.toolBand,.stateCard{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.featureCard{padding:24px;min-height:243px;display:flex;flex-direction:column;justify-content:space-between}.kicker{color:var(--primary);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.featureCard h3,.card h3,.sectionTitle{font-family:'Source Serif 4',serif;letter-spacing:-.02em}.featureCard h3{font-size:26px;line-height:1.08;margin:10px 0}.meta{color:var(--muted);font-size:14px;font-weight:600;display:flex;gap:14px;flex-wrap:wrap}.filterPanel{padding:16px;margin:22px 0 18px;display:grid;grid-template-columns:1.2fr repeat(4,1fr) auto;gap:12px}.field{height:46px;border:0;border-radius:12px;background:var(--surface-soft);padding:0 14px;font:600 14px/1 'Hanken Grotesk';color:var(--text);outline:0}.sectionHead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:44px 0 22px}.sectionTitle{font-size:34px;line-height:1.08;margin:0}.sectionLead{color:var(--muted);margin:6px 0 0}.link{color:var(--primary);font-weight:900}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}.card{overflow:hidden;transition:.2s;display:flex;flex-direction:column;height:100%}.card:hover{transform:translateY(-4px)}.cardBody{padding:24px;display:flex;flex-direction:column;flex:1}.cardTop{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px;gap:12px}.org{width:auto;min-width:58px;max-width:78px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--surface-mid);color:var(--primary);font-size:14px;line-height:1;text-align:center;white-space:nowrap;font-weight:900;flex-shrink:0;padding:0 10px}.status{font-size:11px;text-transform:uppercase;font-weight:900;border-radius:8px;padding:6px 9px;flex-shrink:0}.status.open{background:rgba(42,170,128,.1);color:var(--open)}.status.published{background:rgba(196,23,12,.1);color:var(--published)}.status.planned{background:rgba(0,49,255,.08);color:var(--planned)}.status.requested{background:rgba(128,102,0,.11);color:var(--requested)}.card h3{font-size:25px;line-height:1.1;margin:0 0 6px;min-height:2.2em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .banca{color:var(--muted);font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:.08em}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:auto;padding-top:22px}.stat{background:var(--surface-soft);border-radius:12px;padding:12px}.stat span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800}.stat strong{display:block;margin-top:2px;color:var(--primary-dark)}.cardFoot{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface-soft);border-top:1px solid var(--border);padding:15px 24px;color:var(--muted);font-size:14px;font-weight:700;margin-top:auto}.newsArea{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:28px;border-top:1px solid var(--border);margin-top:48px}.articleList{display:grid;gap:22px}.article{display:grid;grid-template-columns:126px 1fr;gap:18px}.thumb{height:126px;border-radius:14px;background:linear-gradient(135deg,#d0ede2,#fff 45%,#2aaa80);border:1px solid var(--border)}.article h3{font-family:'Source Serif 4',serif;font-size:25px;line-height:1.12;margin:4px 0 8px}.miniGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.newsMini{padding:22px;border-left:5px solid var(--primary)}.newsMini h4{font-family:'Source Serif 4',serif;font-size:20px;line-height:1.18;margin:0 0 16px}.toolBand{margin-top:56px;background:var(--primary);color:#fff;padding:42px;display:grid;grid-template-columns:.8fr 1.6fr;gap:34px;border-radius:28px}.toolBand p{color:rgba(255,255,255,.78)}.toolGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tool{padding:22px;border-radius:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18)}.tool .material-symbols-outlined{font-size:36px}.states{display:grid;grid-template-columns:repeat(7,1fr);gap:14px}.stateCard{padding:22px 12px;text-align:center;transition:.2s}.stateCard strong{display:block;font-size:28px;color:var(--text)}.stateCard span{color:var(--muted);font-size:13px;font-weight:700}.stateCard:hover{border-color:var(--primary);transform:translateY(-2px)}.newsletter{max-width:880px;margin:56px auto;padding:48px;text-align:center;border-radius:28px}.newsletter h2{font-family:'Source Serif 4',serif;font-size:36px;line-height:1.08;margin:8px 0}.newsletter p{color:var(--muted);font-size:18px}.newsletterForm{display:flex;gap:12px;margin-top:24px}.newsletterForm input{flex:1;height:54px;border:1px solid var(--border);border-radius:14px;padding:0 18px;background:var(--bg);font:inherit}.footer{border-top:1px solid var(--border);background:var(--surface-soft);padding:42px 0 96px}.footerGrid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:36px}.footer p,.footer a{color:var(--muted)}.footer h4{margin:0 0 12px}.bottomNav{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid var(--border);display:none;padding:9px 8px}.bottomNav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);font-size:11px;font-weight:800}.bottomNav .active{color:var(--primary)}.material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24}.pageHero{padding:46px 0 24px}.pageHero h1{font:700 clamp(36px,5vw,60px)/1.02 'Source Serif 4',serif;margin:0 0 10px;letter-spacing:-.03em}.pageHero p{color:var(--muted);font-size:19px;max-width:760px}.contentBox{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px;padding:28px}.toolsPage{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.toolPageCard{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px;padding:28px}.calcRow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.result{margin-top:16px;background:var(--surface-soft);padding:16px;border-radius:14px;font-weight:800;color:var(--primary-dark)}
@media(max-width:980px){.container{width:min(100% - 32px,var(--max))}.menu,.searchBox{display:none}.nav{height:68px}.hero{grid-template-columns:1fr}.heroMain{min-height:460px}.filterPanel{grid-template-columns:1fr 1fr}.grid3,.newsArea,.toolBand,.toolsPage{grid-template-columns:1fr}.toolGrid{grid-template-columns:1fr}.states{grid-template-columns:repeat(3,1fr)}.footerGrid{grid-template-columns:1fr 1fr}.actions .btn{display:none}.bottomNav{display:flex}}@media(max-width:640px){body{font-size:15px}.heroMain{min-height:430px;border-radius:18px}.heroContent{left:22px;right:22px;bottom:24px}.hero h1{font-size:clamp(22px,7vw,30px)}.hero p{font-size:16px}.featureCard{min-height:auto}.filterPanel{grid-template-columns:1fr}.sectionHead{align-items:flex-start;flex-direction:column}.sectionTitle{font-size:30px}.grid3{gap:16px}.article{grid-template-columns:1fr}.thumb{display:none}.miniGrid{grid-template-columns:1fr}.toolBand{padding:26px;border-radius:22px}.states{grid-template-columns:repeat(2,1fr)}.newsletter{padding:28px}.newsletterForm{flex-direction:column}.footerGrid{grid-template-columns:1fr}.calcRow{grid-template-columns:1fr}}


.detailCards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
}

@media (max-width: 760px) {
  .detailCards {
    grid-template-columns: 1fr 1fr;
  }
}

.cardMedia{height:180px;background:linear-gradient(135deg,#d0ede2,#fff 45%,#2aaa80);border-bottom:1px solid var(--border);overflow:hidden}.cardMedia img,.thumbImage img,.detailHero img{width:100%;height:100%;object-fit:cover}.cardMediaFallback,.detailHeroFallback{display:grid;place-items:center;background:linear-gradient(135deg,#0d3d2e,#2aaa80 52%,#c8eedd);color:#fff;font:700 42px/1 'Source Serif 4',serif;letter-spacing:-.03em}.thumb{height:126px;border-radius:14px;background:linear-gradient(135deg,#d0ede2,#fff 45%,#2aaa80);border:1px solid var(--border);overflow:hidden}.thumbImage{border:1px solid var(--border)}.detailHero{height:320px;border-radius:20px;overflow:hidden;background:linear-gradient(135deg,#d0ede2,#fff 45%,#2aaa80)}.detailHeroNews{height:360px}.detailHeroFallback{display:grid;place-items:center;color:#fff;font:700 54px/1 'Source Serif 4',serif;letter-spacing:-.03em}

.articleBody{max-width:760px;margin:28px auto 0;font-size:18px;line-height:1.85;color:var(--text)}
.articleBody > :first-child{margin-top:0}
.articleBody > *{margin:0 0 18px}
.articleBody p{margin:0 0 18px}
.articleBody h2,.articleBody h3,.articleBody h4{font-family:'Source Serif 4',serif;letter-spacing:-.02em;line-height:1.15;margin:30px 0 12px;color:var(--primary-dark)}
.articleBody h2{font-size:30px}
.articleBody h3{font-size:24px}
.articleBody h4{font-size:20px}
.articleBody ul,.articleBody ol{padding-left:22px;margin:0 0 18px}
.articleBody li{margin:8px 0}
.articleBody blockquote{margin:22px 0;padding:18px 22px;border-left:4px solid var(--primary);background:var(--surface-soft);border-radius:0 14px 14px 0;color:var(--primary-dark);font-weight:600}
.articleBody a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.articleBody img{border-radius:18px;border:1px solid var(--border);margin:26px 0}
.articleBodyNews{max-width:820px}
.articleBodyNews p:first-child{font-size:20px;line-height:1.8;color:var(--muted)}

.admin-check{display:flex;align-items:center;gap:8px;height:46px;border-radius:12px;background:var(--surface-soft);padding:0 14px;font-weight:800;color:var(--text)}.admin-check input{width:18px;height:18px;accent-color:var(--primary)}
.searchSubmit{width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}
.calendarHero{display:grid;grid-template-columns:1.3fr .7fr;gap:24px;margin-bottom:28px}.calendarHighlight,.calendarSummaryCard,.calendarItem{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px}.calendarHighlight{padding:30px;background:linear-gradient(135deg,#0d3d2e,#2aaa80 55%,#c8eedd);color:#fff}.calendarHighlight .kicker,.calendarHighlight .sectionLead{color:rgba(255,255,255,.82)}.calendarHighlight h2{font-size:clamp(28px,3vw,40px);line-height:1.04;margin:10px 0 8px}.calendarChips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.calendarChips .chip{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.16)}.calendarSummary{display:grid;gap:18px}.calendarSummaryCard{padding:28px}.calendarSummaryCard strong{display:block;font:700 clamp(34px,4vw,48px)/1 'Source Serif 4',serif;color:var(--primary-dark)}.calendarSummaryCard span{display:block;margin-top:10px;color:var(--muted);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.08em}.calendarList{display:grid;gap:18px}.calendarItem{padding:22px 24px;display:grid;grid-template-columns:130px 1fr auto;gap:20px;align-items:center}.calendarDate{display:grid;place-items:center;align-self:stretch;border-radius:18px;background:var(--surface-soft);text-align:center;padding:16px 10px}.calendarDate strong{font:700 38px/1 'Source Serif 4',serif;color:var(--primary-dark)}.calendarDate span{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.calendarBody h3{font-family:'Source Serif 4',serif;font-size:28px;line-height:1.08;margin:0 0 8px}.calendarMeta{display:flex;flex-wrap:wrap;gap:14px;color:var(--muted);font-weight:700}.calendarAside{display:grid;gap:12px;justify-items:end}.calendarTag{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:var(--surface-soft);padding:10px 14px;color:var(--primary-dark);font-size:12px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.calendarEmpty{padding:34px;text-align:center}
@media(max-width:980px){.calendarHero{grid-template-columns:1fr}.calendarItem{grid-template-columns:1fr}.calendarAside{justify-items:start}.calendarDate{max-width:140px}}


/* Ajustes de formatação editorial e páginas internas */
.pageHero{background:linear-gradient(180deg,#ffffff 0%,rgba(255,255,255,.45) 100%);border:1px solid var(--border);border-radius:24px;padding:34px;margin:28px 0 24px;box-shadow:var(--shadow)}
.pageHero h1{max-width:860px}.pageHero p{margin:0;color:var(--muted)}
.concursosFilter{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}.concursosFilter .field{width:100%}
.toolsPage{margin:0 0 42px;align-items:stretch}.toolPageCard{display:flex;flex-direction:column;gap:12px;min-height:280px}.toolPageCard h2{margin:0;font-size:28px;line-height:1.1}.toolPageCard .sectionLead{margin:0}.toolPageCard .link{margin-top:auto}.toolPageCard .field{width:100%}.calcRow{margin-top:4px}.result{min-height:54px;display:flex;align-items:center}
.contentBox{margin-bottom:42px}.articleBody{word-break:normal;overflow-wrap:break-word}.articleBody p{text-align:left}.card .banca,.meta{word-break:normal}.footer .brand{display:inline-flex;margin-bottom:10px}
@media(max-width:980px){.concursosFilter{grid-template-columns:1fr 1fr}.pageHero{padding:28px;margin-top:22px}.toolPageCard{min-height:auto}}
@media(max-width:640px){.container{width:min(100% - 28px,var(--max))}.pageHero{padding:24px 20px;border-radius:20px}.pageHero h1{font-size:34px}.pageHero p{font-size:16px}.concursosFilter{grid-template-columns:1fr}.toolsPage{gap:16px}.toolPageCard{padding:22px}.toolPageCard h2{font-size:24px}}

/* Destaque leve para o concurso marcado no admin */
.cardFeatured{
  position:relative;
  border-color:rgba(42,170,128,.42);
  box-shadow:0 12px 34px rgba(42,170,128,.12);
}
.cardFeatured:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--primary),var(--primary-dark));
  z-index:2;
}
.cardFeatured:after{
  content:"Destaque";
  position:absolute;
  top:12px;
  left:12px;
  z-index:3;
  border-radius:999px;
  background:rgba(20,80,61,.94);
  color:#fff;
  padding:6px 10px;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.cardFeatured .cardMedia{
  border-bottom-color:rgba(42,170,128,.28);
}
.cardFeatured .cardFoot{
  background:#eef8f3;
}


/* Destaque visual do concurso marcado no admin */
.card.cardFeatured{
  position:relative !important;
  border:2px solid rgba(42,170,128,.72) !important;
  box-shadow:0 18px 42px rgba(42,170,128,.20) !important;
  background:linear-gradient(180deg,#ffffff 0%,#f7fffb 100%) !important;
}
.card.cardFeatured::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:7px;
  background:linear-gradient(180deg,#2aaa80,#1a5c45);
  z-index:5;
}
.card.cardFeatured .cardMedia{
  border-bottom:2px solid rgba(42,170,128,.36) !important;
}
.card.cardFeatured .cardBody{
  background:linear-gradient(180deg,#ffffff 0%,#f8fffb 100%);
}
.card.cardFeatured .featuredBadge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:0 0 14px;
  border-radius:999px;
  background:#1a5c45;
  color:#fff;
  padding:7px 11px;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.card.cardFeatured .cardFoot{
  background:#e5f6ee !important;
  border-top-color:rgba(42,170,128,.32) !important;
}
.card.cardFeatured .org{
  background:#d7f0e4 !important;
  color:#1a5c45 !important;
}

/* Páginas institucionais */
.institucionalPage .pageHero{
  margin-top:32px;
  margin-bottom:24px;
}
.institutionalContent{
  max-width:860px;
  margin:0 auto 56px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:24px;
  padding:34px;
  box-shadow:0 18px 45px rgba(18,38,32,.06);
}
.institutionalContent h2{
  margin-top:28px;
  margin-bottom:10px;
  font-family:var(--serif);
  color:var(--primary-dark);
}
.institutionalContent h2:first-child{
  margin-top:0;
}
.institutionalContent p,
.institutionalContent li{
  font-size:17px;
  line-height:1.72;
  color:#31443e;
}
.institutionalContent a{
  color:var(--primary);
  font-weight:800;
}
@media (max-width:720px){
  .institutionalContent{
    padding:24px;
    border-radius:20px;
  }
  .institutionalContent p,
  .institutionalContent li{
    font-size:16px;
  }
}

/* Ferramentas principais */
.toolsIntroPanel{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow);padding:26px 28px;margin:0 0 26px}.toolsIntroPanel h2{font-size:30px;line-height:1.1;margin:6px 0}.toolsIntroPanel p{margin:0;color:var(--muted);max-width:760px}.toolsPageFull{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.toolFullCard{min-height:auto}.toolIcon{font-size:40px;color:var(--primary)}.toolFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.toolFormGrid.twoCols{grid-template-columns:repeat(2,minmax(0,1fr))}.toolFormGrid label{display:grid;gap:6px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.wideField{grid-column:1/-1}.textAreaField{min-height:96px;padding-top:14px;resize:vertical;line-height:1.45}.toolResult{display:grid;gap:4px;align-items:start}.toolResult span{display:block;color:var(--muted);font-weight:700}.toolNote{font-size:13px;color:var(--muted);margin:0}.countdownBox{display:grid;gap:6px;background:linear-gradient(135deg,var(--surface-soft),#fff);border:1px solid var(--border);border-radius:18px;padding:20px}.countdownBox strong{font-size:24px;color:var(--primary-dark)}.countdownBox span{color:var(--muted);font-weight:700}.plannerResult{background:var(--surface-soft);border-radius:16px;padding:18px;color:var(--text);font-weight:700}.plannerResult p{margin:6px 0 12px;color:var(--muted)}.plannerResult ul{margin:10px 0 0;padding:0;display:grid;gap:8px;list-style:none}.plannerResult li{display:grid;gap:2px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px}.plannerResult li span{color:var(--muted);font-size:14px}
@media(max-width:980px){.toolsIntroPanel{align-items:flex-start;flex-direction:column}.toolsPageFull{grid-template-columns:1fr}.toolFormGrid,.toolFormGrid.twoCols{grid-template-columns:1fr}}

/* Ranking de salários */
.toolsIntroActions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}

.rankingHero {
  border-bottom: 1px solid var(--border);
}

.rankingSummary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 24px 0 28px;
}

.rankingSummary article {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 18px;
  box-shadow: var(--shadow);
}

.rankingSummary strong {
  display: block;
  color: var(--primary);
  font-size: 1.35rem;
  line-height: 1.15;
}

.rankingSummary span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-weight: 700;
  font-size: .92rem;
}

.rankingLayout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
  margin-bottom: 42px;
}

.compactHead {
  margin-bottom: 18px;
}

.salaryRankingList {
  display: grid;
  gap: 12px;
}

.salaryRankItem {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 170px;
  gap: 18px;
  align-items: center;
  background: #fff;
  border: 1px solid rgba(20, 80, 61, .16);
  border-radius: 18px;
  padding: 16px 18px;
  box-shadow: 0 12px 32px rgba(11, 38, 29, .06);
}

.rankPosition {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #E7F4EE;
  color: var(--primary);
  font-weight: 900;
  font-size: 1rem;
}

.rankTitleLine {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.rankTitleLine h3 {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.2;
}

.rankMain p {
  margin: 4px 0 8px;
  color: var(--muted);
  font-weight: 700;
}

.rankTag {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: .76rem;
  font-weight: 900;
  color: #1a5c45;
  background: #DDF4E8;
}

.rankTagBlue { color: #1E558A; background: #DCEBFA; }
.rankTagPink { color: #8A2D55; background: #F8D8E6; }
.rankTagYellow { color: #7A5200; background: #FFE6A8; }
.rankTagGreen { color: #1a5c45; background: #DDF4E8; }

.rankBar {
  height: 5px;
  border-radius: 999px;
  background: #E4EFEA;
  overflow: hidden;
  margin: 8px 0 10px;
}

.rankBar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2aaa80, #35B889);
}

.rankMeta {
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.35;
}

.rankMeta a {
  color: var(--primary);
  font-weight: 800;
}

.rankSalary {
  text-align: right;
}

.rankSalary strong {
  display: block;
  color: var(--ink);
  font-size: 1.18rem;
  line-height: 1.2;
}

.rankSalary span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-weight: 800;
  font-size: .86rem;
}

.rankingCriteria {
  position: sticky;
  top: 96px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 22px;
  padding: 22px;
  box-shadow: var(--shadow);
}

.rankingCriteria h2 {
  margin: 6px 0 10px;
}

.rankingCriteria p,
.rankingCriteria li {
  color: var(--muted);
  line-height: 1.55;
}

.rankingCriteria ul {
  padding-left: 18px;
}

@media (max-width: 900px) {
  .toolsIntroActions {
    justify-content: flex-start;
  }

  .rankingSummary,
  .rankingLayout {
    grid-template-columns: 1fr;
  }

  .rankingCriteria {
    position: static;
  }

  .salaryRankItem {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .rankSalary {
    grid-column: 2;
    text-align: left;
  }
}

@media (max-width: 560px) {
  .salaryRankItem {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .rankPosition {
    width: 38px;
    height: 38px;
  }

  .rankSalary {
    grid-column: auto;
  }
}

/* Estados seguros para componentes dinâmicos */
.loadingBlock,
.errorBlock {
  border: 1px solid rgba(20, 80, 61, 0.14);
  border-radius: 22px;
  padding: 24px;
  background: #ffffff;
  color: #42514a;
}
.skeletonLine {
  display: block;
  height: 14px;
  max-width: 100%;
  margin: 10px 0;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(20, 80, 61, .08), rgba(20, 80, 61, .16), rgba(20, 80, 61, .08));
  background-size: 220% 100%;
  animation: vpSkeleton 1.3s ease-in-out infinite;
}
.skeletonLine.short { width: 42%; }
.skeletonLine.medium { width: 68%; }
@keyframes vpSkeleton { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }

/* ── Breadcrumb ─────────────────────────────── */
.breadcrumb {
  padding: 0.5rem 0 1rem;
}
.breadcrumb ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  font-size: 0.8125rem;
  color: var(--ink3, #888);
}
.breadcrumb li + li::before {
  content: '/';
  margin-right: 0.25rem;
  opacity: 0.5;
}
.breadcrumb a {
  color: var(--ink3, #888);
  text-decoration: none;
}
.breadcrumb a:hover {
  text-decoration: underline;
  color: var(--primary, #1a1a1a);
}
.breadcrumb [aria-current="page"] {
  color: var(--ink1, #1a1a1a);
  font-weight: 500;
}

/* ── Side News Card ─────────────────────────────── */
.featureCardNews {
  min-height: 243px;
  padding: 20px 24px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.sideNewsList {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
}
.sideNewsItem {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.sideNewsItem:first-child {
  padding-top: 0;
}
.sideNewsItem:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.sideNewsItem .kicker {
  font-size: 10px;
  letter-spacing: .1em;
}
.sideNewsItem a.sideNewsTitle {
  display: block;
  font-family: 'Source Serif 4', serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text);
  margin-top: 4px;
  transition: color .15s;
}
.sideNewsItem a.sideNewsTitle:hover {
  color: var(--primary);
}
.sideNewsItem .sideNewsMeta {
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
  margin-top: 3px;
}

/* ── Ferramentas — novo layout ─────────────────── */
.toolsNav {
  display: flex;
  gap: 10px;
  margin: 0 0 28px;
  flex-wrap: wrap;
}
.toolsNavItem {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 16px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
  transition: .15s;
  box-shadow: var(--shadow);
}
.toolsNavItem .material-symbols-outlined {
  font-size: 18px;
  color: var(--primary);
}
.toolsNavItem:hover {
  border-color: var(--primary);
  color: var(--primary);
  transform: translateY(-1px);
}

.toolsStack {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-bottom: 56px;
}

.toolCard {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: var(--shadow);
  overflow: hidden;
}

.toolCardHeader {
  padding: 28px 32px 0;
}

.toolCardMeta {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.toolCardMeta .toolIcon {
  font-size: 38px;
  color: var(--primary);
  margin-top: 2px;
  flex-shrink: 0;
}

.toolCardMeta h2 {
  font-family: 'Source Serif 4', serif;
  font-size: 26px;
  line-height: 1.1;
  margin: 0 0 4px;
  letter-spacing: -.02em;
}

.toolCardMeta .sectionLead {
  margin: 0;
  font-size: 15px;
}

.toolCardBody {
  padding: 20px 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.toolCardBody .btn {
  align-self: flex-start;
}

.toolCardPair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
}

/* ajustes nos campos dentro do novo layout */
.toolCard .toolFormGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.toolCard .toolFormGrid.twoCols {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.toolCard .toolFormGrid label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
}

.toolCard .toolFormGrid .field {
  width: 100%;
}

.toolCard .wideField {
  grid-column: 1 / -1;
}

.toolCard .toolResult {
  display: grid;
  gap: 4px;
  align-items: start;
}

.toolCard .toolNote {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
}

@media (max-width: 980px) {
  .toolCardPair {
    grid-template-columns: 1fr;
  }
  .toolCard .toolFormGrid,
  .toolCard .toolFormGrid.twoCols {
    grid-template-columns: 1fr;
  }
  .toolCardHeader {
    padding: 22px 22px 0;
  }
  .toolCardBody {
    padding: 16px 22px 22px;
  }
}

@media (max-width: 640px) {
  .toolsNav {
    gap: 8px;
  }
  .toolsNavItem {
    font-size: 12px;
    padding: 8px 12px;
  }
  .toolCardMeta {
    flex-direction: column;
    gap: 10px;
  }
  .toolCardMeta h2 {
    font-size: 22px;
  }
}

/* ── Ranking de salários ─────────────────────── */
.rankingHighlights {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 0 0 32px;
}
.rankingHighCard {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.rankingHighCard strong {
  display: block;
  font-size: 22px;
  font-family: 'Source Serif 4', serif;
  color: var(--primary-dark);
  line-height: 1;
}
.rankingHighCard span {
  display: block;
  font-size: 12px;
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-top: 4px;
}
.rankingLayout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 28px;
  align-items: start;
  margin-bottom: 48px;
}
.rankingMain { min-width: 0; }
.rankingSidebar { display: grid; gap: 20px; }
.rankingSideCard {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 22px;
}
.rankingSideCta {
  background: var(--primary);
  border-color: var(--primary);
}
.rankingRef { display: grid; gap: 10px; }
.rankingRefItem {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  background: var(--bg);
  border-radius: 10px;
}
.rankingRefArea { font-size: 13px; color: var(--muted); font-weight: 600; }
.rankingRefSalary { font-size: 14px; color: var(--primary-dark); font-weight: 800; }
.rankingLoading {
  padding: 48px;
  text-align: center;
  display: grid;
  gap: 10px;
  justify-items: center;
  color: var(--muted);
}
.rankingContext {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: var(--shadow);
  padding: 32px;
  margin-bottom: 48px;
}
.rankingContext h2 {
  font-family: 'Source Serif 4', serif;
  font-size: 24px;
  margin: 0 0 24px;
}
.rankingContextGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.rankingContextGrid h3 {
  font-size: 16px;
  margin: 0 0 8px;
  color: var(--primary-dark);
}
.rankingContextGrid p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
}
@media (max-width: 980px) {
  .rankingHighlights { grid-template-columns: repeat(2, 1fr); }
  .rankingLayout { grid-template-columns: 1fr; }
  .rankingContextGrid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .rankingHighlights { grid-template-columns: 1fr 1fr; }
  .rankingHighCard { padding: 14px; gap: 10px; }
  .rankingHighCard strong { font-size: 18px; }
}

/* ── Guias ───────────────────────────────────── */
.guidesLayout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 28px;
  align-items: start;
  margin-bottom: 56px;
}
.guidesMain { display: grid; gap: 36px; min-width: 0; }
.guidesBlock {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.guidesBlockHeader {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--border);
}
.guidesBlockHeader h2 {
  font-family: 'Source Serif 4', serif;
  font-size: 20px;
  margin: 0;
}
.guideCards { display: grid; }
.guideCard {
  display: grid;
  grid-template-columns: 44px 1fr 24px;
  gap: 14px;
  align-items: center;
  padding: 18px 24px;
  border-bottom: 1px solid var(--border);
  transition: background .15s;
  color: inherit;
}
.guideCard:last-child { border-bottom: none; }
.guideCard:hover { background: var(--surface-soft); }
.guideCardIcon {
  font-size: 28px;
  color: var(--primary);
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  background: var(--surface-soft);
  border-radius: 12px;
  flex-shrink: 0;
}
.guideCard h3 {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 4px;
  line-height: 1.3;
  color: var(--text);
}
.guideCard p {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}
.guideArrow {
  font-size: 20px;
  color: var(--border);
  transition: color .15s, transform .15s;
}
.guideCard:hover .guideArrow {
  color: var(--primary);
  transform: translateX(2px);
}
.guidesSidebar { display: grid; gap: 20px; }
.guidesSideCard {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 22px;
}
.guidesSideTool {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: var(--bg);
  border-radius: 12px;
  transition: background .15s;
  color: inherit;
}
.guidesSideTool:hover { background: var(--surface-mid); }
.guidesSideTool .material-symbols-outlined {
  font-size: 22px;
  color: var(--primary);
  flex-shrink: 0;
}
.guidesSideTool strong {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
}
.guidesSideTool span {
  display: block;
  font-size: 12px;
  color: var(--muted);
}
@media (max-width: 980px) {
  .guidesLayout { grid-template-columns: 1fr; }
  .guidesSidebar { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .guidesSidebar { grid-template-columns: 1fr; }
  .guideCard { grid-template-columns: 36px 1fr 20px; gap: 10px; padding: 14px 18px; }
  .guidesBlockHeader { padding: 16px 18px 12px; }
}

/* ── Simulado destaque em ferramentas ─────────── */
.simDestaque {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: linear-gradient(135deg, #0d3d2e, #2aaa80 60%, #2d8f6a);
  border-radius: 20px;
  padding: 24px 28px;
  margin-bottom: 28px;
  color: #fff;
  transition: opacity .15s;
}
.simDestaque:hover { opacity: .92; }
.simDestaque .kicker { color: rgba(255,255,255,.7); }
.simDestaque p { color: rgba(255,255,255,.8) !important; }
.simDestaque h2 { color: #fff; }
.simDestaqueLeft { display: flex; align-items: flex-start; gap: 16px; }
.simDestaque .btn { background: #fff; color: var(--primary-dark); font-weight: 800; }
.simDestaque .btn:hover { background: rgba(255,255,255,.9); transform: translateY(-1px); }
@media (max-width: 640px) {
  .simDestaque { flex-direction: column; align-items: flex-start; }
  .simDestaque .btn { width: 100%; justify-content: center; }
}

/* ── BRAND LOGO ── */
.brand{font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:26px;line-height:1;letter-spacing:-.02em;text-decoration:none;display:inline-flex;align-items:baseline;gap:0;flex-shrink:0}
.brand-vaga{font-weight:900;color:#1a5c45}
.brand-publica{font-weight:300;color:#2aaa80;letter-spacing:-.01em}
.brand--dark .brand-vaga{color:#fff}
.brand--dark .brand-publica{color:#7adcbb}
.brand--footer .brand-vaga{color:rgba(255,255,255,.9)}
.brand--footer .brand-publica{color:#7adcbb}
