/*
 * Código do Nome — Sistema Visual das Funções R1
 * R78 / Expansão Funcional R2
 *
 * A função desta camada é somente harmonizar tipografia/legibilidade.
 * Layouts, cores e comportamentos específicos continuam nos templates.
 */
.cdn-functional-r1{
  --cdn-tool-h1:42px;
  --cdn-tool-section-title:30px;
  --cdn-tool-subtitle:24px;
  --cdn-tool-card-title:20px;
  --cdn-tool-body:16px;
  --cdn-tool-aux:14px;
  --cdn-tool-label:12px;
  --cdn-tool-micro:11px;
  color:#24313a;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:var(--cdn-tool-body);
  line-height:1.55;
}

.cdn-functional-r1 h4{
  
  line-height:1.3!important;
}
.cdn-functional-r1 p,
.cdn-functional-r1 li,
.cdn-functional-r1 .lead,
.cdn-functional-r1 .desc,
.cdn-functional-r1 .bubble,
.cdn-functional-r1 .meaning,
.cdn-functional-r1 .panel>p,
.cdn-functional-r1 .panel p:not(.notice):not(.note):not(.warning):not(.method):not(.foot),
.cdn-functional-r1 .route-card p,
.cdn-functional-r1 .name-card p,
.cdn-functional-r1 .reading p,
.cdn-functional-r1 .summary p,
.cdn-functional-r1 .side>p,
.cdn-functional-r1 .section-head>p,
.cdn-functional-r1 .results-head>p,
.cdn-functional-r1 .chart-title>p{
  font-size:var(--cdn-tool-body)!important;
  line-height:1.55!important;
}

.cdn-functional-r1 input,
.cdn-functional-r1 select,
.cdn-functional-r1 textarea{
  font-family:inherit!important;
  font-size:var(--cdn-tool-body)!important;
  line-height:1.35!important;
}
.cdn-functional-r1 button,
.cdn-functional-r1 .primary,
.cdn-functional-r1 .secondary,
.cdn-functional-r1 .go,
.cdn-functional-r1 .save,
.cdn-functional-r1 .actions a,
.cdn-functional-r1 .actions button,
.cdn-functional-r1 .quick button,
.cdn-functional-r1 .vote button,
.cdn-functional-r1 .bottom button,
.cdn-functional-r1 .card-actions button{
  font-family:inherit!important;
  font-size:var(--cdn-tool-aux)!important;
  line-height:1.3!important;
}

.cdn-functional-r1 small,
.cdn-functional-r1 label,
.cdn-functional-r1 .notice,
.cdn-functional-r1 .topnote,
.cdn-functional-r1 .context,
.cdn-functional-r1 .help,
.cdn-functional-r1 .hint,
.cdn-functional-r1 .note,
.cdn-functional-r1 .warning,
.cdn-functional-r1 .method,
.cdn-functional-r1 .foot,
.cdn-functional-r1 .footnote,
.cdn-functional-r1 .footer-note,
.cdn-functional-r1 .side-note,
.cdn-functional-r1 .hidden-note,
.cdn-functional-r1 .smallwarn,
.cdn-functional-r1 .status,
.cdn-functional-r1 .statusline,
.cdn-functional-r1 .qa,
.cdn-functional-r1 .count,
.cdn-functional-r1 .reason,
.cdn-functional-r1 .why,
.cdn-functional-r1 .explain,
.cdn-functional-r1 .metric,
.cdn-functional-r1 .context,
.cdn-functional-r1 .private,
.cdn-functional-r1 .reveal,
.cdn-functional-r1 .result-name,
.cdn-functional-r1 .diff,
.cdn-functional-r1 .distinct{
  font-size:var(--cdn-tool-aux)!important;
  line-height:1.45!important;
}

/* Labels, badges e metadados curtos continuam compactos, mas legíveis. */
.cdn-functional-r1 .ey,
.cdn-functional-r1 .eyebrow,
.cdn-functional-r1 .kicker,
.cdn-functional-r1 .q-kicker,
.cdn-functional-r1 .label,
.cdn-functional-r1 .smalllabel,
.cdn-functional-r1 .badge,
.cdn-functional-r1 .pill,
.cdn-functional-r1 .chip,
.cdn-functional-r1 .tag,
.cdn-functional-r1 .stamp,
.cdn-functional-r1 .stage span,
.cdn-functional-r1 .route-meta span,
.cdn-functional-r1 .meta,
.cdn-functional-r1 .meta span,
.cdn-functional-r1 .pref span,
.cdn-functional-r1 .profile-title,
.cdn-functional-r1 .profile .sub,
.cdn-functional-r1 .syl,
.cdn-functional-r1 .period,
.cdn-functional-r1 .progress,
.cdn-functional-r1 .progress-head span,
.cdn-functional-r1 .steps button,
.cdn-functional-r1 .modes button,
.cdn-functional-r1 .intent button,
.cdn-functional-r1 .chips button,
.cdn-functional-r1 .quick button,
.cdn-functional-r1 .audio,
.cdn-functional-r1 .invite,
.cdn-functional-r1 .blind,
.cdn-functional-r1 .sample,
.cdn-functional-r1 .theme-hint,
.cdn-functional-r1 .toast{
  font-size:var(--cdn-tool-label)!important;
  line-height:1.35!important;
}

/* Títulos/copy de controles que eram comprimidos a 10–13 px nos protótipos. */
.cdn-functional-r1 .brand,
.cdn-functional-r1 .sidebar>p,
.cdn-functional-r1 .route-card .kicker,
.cdn-functional-r1 .route p,
.cdn-functional-r1 .panel .empty,
.cdn-functional-r1 .empty,
.cdn-functional-r1 .name-token,
.cdn-functional-r1 .check,
.cdn-functional-r1 .why,
.cdn-functional-r1 .explain{
  font-size:var(--cdn-tool-aux)!important;
}

.cdn-functional-r1 a:focus-visible,
.cdn-functional-r1 button:focus-visible,
.cdn-functional-r1 input:focus-visible,
.cdn-functional-r1 select:focus-visible,
.cdn-functional-r1 textarea:focus-visible{
  outline:3px solid #149eff;
  outline-offset:3px;
}

@media (max-width:760px){
  .cdn-functional-r1{
    --cdn-tool-h1:34px;
    --cdn-tool-section-title:27px;
    --cdn-tool-subtitle:22px;
    --cdn-tool-card-title:19px;
    --cdn-tool-body:16px;
    --cdn-tool-aux:14px;
    --cdn-tool-label:12px;
  }
}

/* R78.4 — cobertura dos padrões de classe herdados dos protótipos R1. */
.cdn-functional-r1 .subtitle,
.cdn-functional-r1 .subheadline,
.cdn-functional-r1 .section-subtitle{
  font-size:var(--cdn-tool-subtitle)!important;
  line-height:1.3!important;
}
.cdn-functional-r1 .lead{
  font-size:18px!important;
  line-height:1.5!important;
}
.cdn-functional-r1 .matches span,
.cdn-functional-r1 .disclaimer,
.cdn-functional-r1 .num,
.cdn-functional-r1 .field>span,
.cdn-functional-r1 .stat .sub,
.cdn-functional-r1 .saved,
.cdn-functional-r1 .name-hidden,
.cdn-functional-r1 .tab,
.cdn-functional-r1 .example,
.cdn-functional-r1 .reason-title,
.cdn-functional-r1 .saved-list,
.cdn-functional-r1 .step,
.cdn-functional-r1 .prototype-note,
.cdn-functional-r1 .theme,
.cdn-functional-r1 .pref strong{
  font-size:var(--cdn-tool-aux)!important;
  line-height:1.45!important;
}
.cdn-functional-r1 .q strong{
  font-size:var(--cdn-tool-body)!important;
  line-height:1.45!important;
}
.cdn-functional-r1 .tags span,
.cdn-functional-r1 .frags span,
.cdn-functional-r1 .hero-meta span,
.cdn-functional-r1 .mini-chips span{
  font-size:var(--cdn-tool-label)!important;
  line-height:1.35!important;
}

/* V3.43.83.29 — PUBLIC UI STANDARDIZATION R1
   Sistema visual compartilhado inspirado na Ficha e no Laboratório.
   O objetivo é unificar hierarquia, superfícies, controles e espaçamento sem
   substituir a lógica ou os layouts funcionais específicos de cada ferramenta. */
.cdn-functional-r1-page{
  background:#f5f7f8!important;
  color:#24313a!important;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
.cdn-functional-r1{
  --cdn-ui-ink:#24313a;
  --cdn-ui-text:#52636d;
  --cdn-ui-muted:#65737c;
  --cdn-ui-blue:#0e607f;
  --cdn-ui-teal:#007681;
  --cdn-ui-pink:#e0006f;
  --cdn-ui-line:#c4d1d5;
  --cdn-ui-paper:#f5f7f8;
  --cdn-ui-soft:#eef5f7;
  --cdn-ui-pink-soft:#fff0f7;
  width:100%!important;
  padding:28px 0 64px!important;
  background:var(--cdn-ui-paper)!important;
  color:var(--cdn-ui-ink)!important;
  font:400 16px/1.6 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-synthesis:none!important;
  overflow-wrap:anywhere;
}
.cdn-functional-r1 *,
.cdn-functional-r1 *::before,
.cdn-functional-r1 *::after{box-sizing:border-box}
.cdn-functional-r1 > :is(.shell,.wrap,.page,.cdn-passport){
  width:calc(100% - 48px)!important;
  max-width:1080px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.cdn-functional-r1 .cdn-passport>.pp-shell{
  width:100%!important;
  max-width:1080px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.cdn-functional-r1 :is(h1,h2,h3,h4,p,ul,ol,dl){font-family:inherit!important}
.cdn-functional-r1 h1{
  margin:0 0 14px!important;
  color:var(--cdn-ui-ink)!important;
  font-size:42px!important;
  line-height:1.1!important;
  font-weight:700!important;
  letter-spacing:-.025em!important;
}
.cdn-functional-r1 h2{
  color:var(--cdn-ui-ink)!important;
  font-size:30px!important;
  line-height:1.2!important;
  font-weight:700!important;
  letter-spacing:-.02em!important;
}
.cdn-functional-r1 h3{
  color:var(--cdn-ui-ink)!important;
  font-size:22px!important;
  line-height:1.3!important;
  font-weight:600!important;
  letter-spacing:-.01em!important;
}
.cdn-functional-r1 h4{color:var(--cdn-ui-ink)!important;font-size:18px!important;font-weight:600!important}
.cdn-functional-r1 p{color:var(--cdn-ui-text);line-height:1.6}
.cdn-functional-r1 :is(.lead,.pp-lead){
  max-width:780px!important;
  color:var(--cdn-ui-text)!important;
  font-size:17px!important;
  line-height:1.62!important;
}
.cdn-functional-r1 :is(.ey,.eyebrow,.kicker,.q-kicker,.pp-kicker,.badge){
  color:var(--cdn-ui-teal)!important;
  font-size:12px!important;
  line-height:1.35!important;
  font-weight:700!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
}
.cdn-functional-r1 :is(.hero,.pp-hero){
  margin:0 0 24px!important;
  padding-top:16px!important;
  padding-bottom:12px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.cdn-functional-r1 :is(.notice,.topnote,.prototype-note){
  margin:0 0 24px!important;
  padding:14px 16px!important;
  border:1px solid #d8e4e8!important;
  border-radius:12px!important;
  background:#eef5f7!important;
  color:var(--cdn-ui-text)!important;
  box-shadow:none!important;
  font-size:14px!important;
  line-height:1.5!important;
}
.cdn-functional-r1 :is(.notice,.topnote,.prototype-note) strong{color:var(--cdn-ui-ink)!important}

/* Superfícies de conteúdo. */
.cdn-functional-r1 :is(.panel,.card,.step,.resultbox,.pp-search-card,.pp-country,.pp-method){
  border:1px solid var(--cdn-ui-line)!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.cdn-functional-r1 :is(.panel,.card,.step,.resultbox,.pp-search-card,.pp-method){padding:24px!important}
.cdn-functional-r1 .pp-country{overflow:hidden!important}
.cdn-functional-r1 :is(.panel,.card,.step,.resultbox,.pp-search-card,.pp-country,.pp-method):focus-within{
  border-color:#9fb4bd!important;
}
.cdn-functional-r1 :is(.result,.results,.pp-results){margin-top:28px!important}
.cdn-functional-r1 :is(.section-head,.results-head,.result-head,.head){color:var(--cdn-ui-ink)}

/* Campos e controles seguem o Laboratório. */
.cdn-functional-r1 :is(input,select,textarea){
  min-height:48px!important;
  padding:11px 12px!important;
  border:1px solid #7a909c!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--cdn-ui-ink)!important;
  font:400 16px/24px Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  box-shadow:none!important;
}
.cdn-functional-r1 textarea{min-height:112px!important;resize:vertical}
.cdn-functional-r1 label,
.cdn-functional-r1 .field>span,
.cdn-functional-r1 .label{
  color:var(--cdn-ui-ink)!important;
  font-size:14px!important;
  line-height:1.4!important;
  font-weight:600!important;
}
.cdn-functional-r1 :is(input,select,textarea):focus{
  border-color:var(--cdn-ui-blue)!important;
  outline:3px solid rgba(14,96,127,.14)!important;
  outline-offset:1px!important;
}

/* Ações principais e secundárias. */
.cdn-functional-r1 :is(button,.primary,.secondary,.go,.save,.btn,.actions a){
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  text-transform:none!important;
  letter-spacing:normal!important;
  box-shadow:none!important;
}
.cdn-functional-r1 :is(.primary,.submit,.btn-primary,#send,#pp-go){
  min-height:48px!important;
  padding:11px 20px!important;
  border:1px solid var(--cdn-ui-pink)!important;
  border-radius:12px!important;
  background:var(--cdn-ui-pink)!important;
  color:#fff!important;
  font-size:15px!important;
  line-height:24px!important;
  font-weight:600!important;
}
.cdn-functional-r1 :is(.primary,.submit,.btn-primary,#send,#pp-go):hover{background:#bc005d!important;border-color:#bc005d!important}
.cdn-functional-r1 :is(.secondary,.btn-secondary,.reset){
  min-height:44px!important;
  padding:9px 16px!important;
  border:1px solid var(--cdn-ui-blue)!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--cdn-ui-blue)!important;
  font-size:14px!important;
  line-height:24px!important;
  font-weight:600!important;
}
.cdn-functional-r1 :is(.secondary,.btn-secondary,.reset):hover{background:#eef5f7!important}
.cdn-functional-r1 button:disabled{opacity:.62!important;cursor:not-allowed!important}

/* Metadados e mensagens: compactos, mas nunca com aparência de painel técnico. */
.cdn-functional-r1 :is(.help,.hint,.note,.warning,.method,.foot,.footnote,.footer-note,.side-note,.hidden-note,.smallwarn,.status,.statusline,.reason,.why,.explain,.disclaimer,.pp-audio-note){
  color:var(--cdn-ui-muted)!important;
  font-size:14px!important;
  line-height:1.5!important;
}
.cdn-functional-r1 :is(.chip,.pill,.tag,.stamp,.meta span,.hero-meta span,.mini-chips span,.pp-summary-chips span){
  border-color:#d8e4e8!important;
  background:#fff!important;
  color:#41636b!important;
}
.cdn-functional-r1 :is(a,button,summary,input,select,textarea):focus-visible{
  outline:3px solid #1f2a3d!important;
  outline-offset:2px!important;
}

@media(max-width:760px){
  .cdn-functional-r1{padding:20px 0 48px!important}
  .cdn-functional-r1 > :is(.shell,.wrap,.page,.cdn-passport){width:calc(100% - 32px)!important}
  .cdn-functional-r1 h1{font-size:35px!important;line-height:1.12!important}
  .cdn-functional-r1 h2{font-size:27px!important}
  .cdn-functional-r1 h3{font-size:20px!important}
  .cdn-functional-r1 :is(.hero,.pp-hero){padding-top:10px!important}
  .cdn-functional-r1 :is(.panel,.card,.step,.resultbox,.pp-search-card,.pp-method){padding:18px!important;border-radius:16px!important}
}

/* V0.3.43.83.31-layoutfix1 — FUNCTIONAL LAYOUT NORMALIZATION R1
 * Alinha as páginas funcionais ao mesmo grid público sem alterar lógica,
 * conteúdo, tipografia, cores ou comportamento. Os templates históricos
 * mantêm seus layouts internos; esta camada corrige apenas o frame externo,
 * o ritmo entre blocos principais e os três shells .app que tinham paddings
 * incompatíveis entre cabeçalho e conteúdo.
 */
.cdn-functional-r1 > :is(.shell,.wrap,.page,.cdn-passport){
  padding:0!important;
}
.cdn-functional-r1 > :is(.shell,.wrap,.page,.cdn-passport),
.cdn-functional-r1 > :is(.shell,.wrap,.page,.cdn-passport) > :is(.notice,.topnote,.prototype-note,.hero,.pp-hero,.app,.panel,.card,.step,.result,.results,.layout,.workspace,.main,.pp-shell){
  box-sizing:border-box!important;
}
.cdn-functional-r1 > :is(.shell,.wrap,.page,.cdn-passport) > :is(.app,.panel,.card,.step,.resultbox,.pp-shell){
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* O hero já estabelece 24px de respiro inferior; evita soma de margens
 * históricas que fazia o primeiro quadro começar em alturas diferentes. */
.cdn-functional-r1 :is(.hero,.pp-hero) + :is(.layout,.workspace,.main,.panel,.step,.result,.results,.pp-search-card){
  margin-top:0!important;
}

/* Shells compostos: cabeçalho e conteúdo passam a compartilhar o mesmo eixo. */
.cdn-functional-r1[data-cdn-functional-r1="choose-together"] .app,
.cdn-functional-r1[data-cdn-functional-r1="name-assistant"] .app{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  border-color:var(--cdn-ui-line)!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:none!important;
}


.cdn-functional-r1[data-cdn-functional-r1="choose-together"] .app{
  min-height:0!important;
}
.cdn-functional-r1[data-cdn-functional-r1="choose-together"] .app > .top{
  padding:24px!important;
  border-bottom:1px solid var(--cdn-ui-line)!important;
}
.cdn-functional-r1[data-cdn-functional-r1="choose-together"] .app > .content{
  width:100%!important;
  padding:24px!important;
}

/* Assistente preserva o painel alto/chat, mas alinha o frame externo ao grid. */
.cdn-functional-r1[data-cdn-functional-r1="name-assistant"] .app{
  min-height:690px!important;
}

@media(max-width:760px){
  .cdn-functional-r1 > :is(.shell,.wrap,.page,.cdn-passport){padding:0!important}
  .cdn-functional-r1[data-cdn-functional-r1="choose-together"] .app > .top,
  .cdn-functional-r1[data-cdn-functional-r1="choose-together"] .app > .content{
    padding:18px!important;
  }
  .cdn-functional-r1[data-cdn-functional-r1="name-assistant"] .app{min-height:0!important}
}


/* V0.3.43.83.31-uifix1 — source UI correction
 * Horizontal hero padding is intentionally owned by each functional fragment.
 * Shared CSS controls only vertical rhythm, preventing generic .hero rules from
 * erasing the fragment's own left/right inset. */
