.jf-lab-shell{
  --vinho:#78152c;
  --vinho-escuro:#54101f;
  --dourado:#b79a62;
  --creme:#f6f0e7;
  --texto:#201d1b;
  --cinza:#706a64;
  max-width:980px;
  margin:40px auto;
  padding:clamp(24px,5vw,64px);
  background:var(--creme);
  color:var(--texto);
  border:1px solid rgba(183,154,98,.45);
  box-sizing:border-box;
}
.jf-lab-shell *{box-sizing:border-box}
.jf-kicker{font-size:.78rem;letter-spacing:.18em;font-weight:700;color:var(--vinho);margin:0 0 12px}
.jf-head h1,.jf-lab-login h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.05;margin:.1em 0 .35em;font-family:Georgia,serif;font-weight:500}
.jf-head>p:last-child,.jf-lab-login>p{font-size:1.08rem;line-height:1.7;max-width:650px}
.jf-progress-wrap{margin:44px 0 32px}
.jf-progress-top{display:flex;justify-content:space-between;margin-bottom:10px}
.jf-progress{height:7px;background:rgba(32,29,27,.12);overflow:hidden}
.jf-progress span{display:block;height:100%;background:var(--vinho)}
.jf-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.jf-module{background:#fff;padding:24px;min-height:190px;border-top:3px solid var(--dourado)}
.jf-number{font-size:.78rem;letter-spacing:.15em;color:var(--vinho);margin-bottom:28px}
.jf-module h2{font-family:Georgia,serif;font-weight:500;margin:0 0 8px}
.jf-module p{line-height:1.5;color:var(--cinza)}
.jf-module small{display:block;margin-top:18px;font-weight:700}
.jf-check{color:var(--vinho)}
.jf-map{margin-top:34px;padding:32px 0;border-top:1px solid rgba(183,154,98,.6);border-bottom:1px solid rgba(183,154,98,.6)}
.jf-map h2{font-family:Georgia,serif;font-weight:500;font-size:1.7rem}
.jf-map p{line-height:1.65;max-width:700px}
.jf-map button{padding:13px 18px;border:0;background:#ded8cf;color:#756f68;font-weight:700;letter-spacing:.04em}
.jf-button{display:inline-block;margin-top:18px;padding:14px 22px;background:var(--vinho);color:#fff!important;text-decoration:none;font-weight:700;letter-spacing:.05em}
.jf-version{margin-top:30px;font-size:.78rem;color:var(--cinza)}
@media(max-width:720px){
  .jf-lab-shell{margin:16px auto;padding:26px 18px}
  .jf-modules{grid-template-columns:1fr}
  .jf-module{min-height:0}
}

.jf-head-row{display:flex;justify-content:space-between;gap:28px;align-items:flex-start}
.jf-user-nav{display:flex;gap:16px;flex-wrap:wrap;font-size:.9rem}
.jf-user-nav a,.jf-auth-help a,.jf-account a{color:var(--vinho)}
.jf-auth-shell{max-width:720px}
.jf-auth-tabs{display:flex;gap:22px;margin:28px 0 10px;border-bottom:1px solid rgba(183,154,98,.5);padding-bottom:12px}
.jf-auth-tabs a{color:var(--vinho);font-weight:700;text-decoration:none}
.jf-form{display:grid;gap:18px;margin-top:24px}
.jf-form label{display:grid;gap:8px;font-weight:700}
.jf-form label small{font-weight:400;color:var(--cinza)}
.jf-form input[type="text"],.jf-form input[type="email"],.jf-form input[type="password"]{width:100%;padding:13px 14px;border:1px solid rgba(32,29,27,.3);background:#fff;font:inherit}
.jf-form .jf-checkline{display:flex;grid-template-columns:none;flex-direction:row;align-items:flex-start;font-weight:400;line-height:1.5}
.jf-form .jf-checkline input{margin-top:.3em}
.jf-form button.jf-button{border:0;cursor:pointer;width:max-content}
.jf-notice{padding:13px 15px;margin:18px 0;border-left:3px solid var(--vinho);background:#fff}
.jf-success{border-left-color:#557a55}
.jf-private-page-marker{display:none!important}
body:has(.jf-private-page-marker) .post-share,
body:has(.jf-private-page-marker) .share-buttons,
body:has(.jf-private-page-marker) .reading-time,
body:has(.jf-private-page-marker) .post-reading-time{display:none!important}
@media(max-width:720px){
  .jf-head-row{display:block}
  .jf-user-nav{margin-top:20px}
  .jf-head h1,.jf-auth-shell h1,.jf-account h1{font-size:clamp(2rem,11vw,3.15rem);overflow-wrap:anywhere;word-break:normal}
  .jf-module h2{font-size:clamp(1.55rem,8vw,2.15rem);overflow-wrap:anywhere}
  .jf-module{padding:22px 18px}
  .jf-lab-shell{width:calc(100% - 24px);max-width:100%;overflow:hidden}
}


/* v0.2.1 — refinamento mobile */
@media (max-width:720px){
  .jf-lab-shell{
    width:calc(100% - 32px);
    margin-left:auto;
    margin-right:auto;
    padding:28px 24px;
    box-sizing:border-box;
    overflow:visible;
  }

  .jf-head h1,
  .jf-auth-shell h1,
  .jf-account h1{
    font-size:clamp(2rem,9vw,2.75rem);
    line-height:1.02;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  .jf-head p,
  .jf-auth-shell p,
  .jf-account p{
    font-size:1rem;
    line-height:1.55;
  }

  .jf-user-nav{
    margin-top:18px;
    gap:18px;
    font-size:.95rem;
  }

  .jf-progress-wrap{
    margin-top:30px;
  }

  .jf-modules{
    grid-template-columns:1fr;
    gap:14px;
    margin-top:24px;
  }

  .jf-module{
    padding:22px 20px 24px;
    min-height:0;
  }

  .jf-module h2{
    font-size:clamp(1.9rem,9vw,2.55rem);
    line-height:1;
    overflow-wrap:normal;
    word-break:keep-all;
    hyphens:none;
    white-space:normal;
  }

  .jf-module p{
    font-size:1rem;
    line-height:1.45;
    margin:.55rem 0 1rem;
  }

  .jf-module small{
    font-size:.88rem;
  }

  .jf-map{
    margin-top:28px;
    padding-top:26px;
  }

  .jf-map h2{
    font-size:clamp(2rem,9vw,2.75rem);
    line-height:1.05;
    margin:.45rem 0 1rem;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  .jf-map p{
    font-size:1rem;
    line-height:1.55;
  }

  .jf-map button{
    width:100%;
    padding:14px 16px;
    font-size:.9rem;
    line-height:1.25;
  }

  .jf-version{
    font-size:.78rem;
    margin-top:24px;
  }

  .jf-auth-tabs{
    gap:18px;
    flex-wrap:wrap;
  }

  .jf-form{
    gap:15px;
  }

  .jf-form input[type="text"],
  .jf-form input[type="email"],
  .jf-form input[type="password"]{
    min-height:48px;
  }
}


/* v0.2.2 — isolamento da área do Laboratório e correção de overflow */
.jf-lab-page .jf-lab-shell,
.jf-lab-page .jf-lab-shell *,
.jf-lab-page .jf-lab-shell *::before,
.jf-lab-page .jf-lab-shell *::after{
  box-sizing:border-box;
}

.jf-lab-page .jf-lab-shell{
  max-width:100%;
}

.jf-lab-page .jf-modules,
.jf-lab-page .jf-module,
.jf-lab-page .jf-module-copy{
  min-width:0;
  max-width:100%;
}

.jf-lab-page .jf-module h2{
  max-width:100%;
}

/* A página é uma área de produto/conta, não um artigo editorial. */
.jf-lab-page .reading-time,
.jf-lab-page .post-reading-time,
.jf-lab-page .entry-reading-time,
.jf-lab-page .estimated-reading-time,
.jf-lab-page .post-share,
.jf-lab-page .share-buttons,
.jf-lab-page .social-share,
.jf-lab-page .social-sharing,
.jf-lab-page .sharedaddy,
.jf-lab-page .sd-sharing,
.jf-lab-page [class*="reading-time"],
.jf-lab-page [class*="post-share"],
.jf-lab-page [class*="social-share"],
.jf-lab-page [class*="share-buttons"]{
  display:none!important;
}

/* O marcador fica invisível em qualquer estado. */
.jf-lab-page .jf-private-page-marker{
  display:none!important;
}

@media (max-width:720px){
  .jf-lab-page .jf-lab-shell{
    width:calc(100% - 28px)!important;
    max-width:calc(100% - 28px)!important;
    margin:0 auto!important;
    padding:24px 18px!important;
    overflow:hidden!important;
  }

  .jf-lab-page .jf-head-row{
    display:block!important;
  }

  .jf-lab-page .jf-head h1,
  .jf-lab-page .jf-auth-shell h1,
  .jf-lab-page .jf-account h1{
    font-size:clamp(1.85rem,8.2vw,2.45rem)!important;
    line-height:1.06!important;
    margin:.35em 0 .4em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  .jf-lab-page .jf-modules{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    gap:12px!important;
  }

  .jf-lab-page .jf-module{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:20px 16px 22px!important;
    overflow:hidden!important;
  }

  .jf-lab-page .jf-module h2{
    width:100%!important;
    max-width:100%!important;
    margin:.25em 0 .25em!important;
    line-height:1!important;
    letter-spacing:-.02em!important;
    white-space:nowrap!important;
    overflow:visible!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
  }

  /* Palavra mais longa: LINGUAGEM. */
  .jf-lab-page .jf-module:nth-child(1) h2{
    font-size:clamp(1.72rem,7.6vw,2.15rem)!important;
  }

  .jf-lab-page .jf-module:nth-child(2) h2,
  .jf-lab-page .jf-module:nth-child(3) h2{
    font-size:clamp(1.95rem,8.5vw,2.35rem)!important;
  }

  .jf-lab-page .jf-module p{
    font-size:.98rem!important;
    line-height:1.42!important;
    margin:.45rem 0 .9rem!important;
  }

  .jf-lab-page .jf-module small{
    font-size:.84rem!important;
    line-height:1.35!important;
  }

  .jf-lab-page .jf-map{
    width:100%!important;
    max-width:100%!important;
    padding-top:22px!important;
    margin-top:24px!important;
    overflow:hidden!important;
  }

  .jf-lab-page .jf-map h2{
    font-size:clamp(1.8rem,8vw,2.35rem)!important;
    line-height:1.06!important;
    margin:.35em 0 .55em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  .jf-lab-page .jf-map p{
    font-size:.98rem!important;
    line-height:1.5!important;
  }

  .jf-lab-page .jf-map button{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    padding:13px 12px!important;
    font-size:.82rem!important;
    line-height:1.25!important;
  }

  .jf-lab-page .jf-account,
  .jf-lab-page .jf-auth-shell{
    padding:24px 18px!important;
  }

  .jf-lab-page .jf-account .jf-form,
  .jf-lab-page .jf-auth-shell .jf-form{
    margin-top:18px!important;
    gap:13px!important;
  }

  .jf-lab-page .jf-form label{
    font-size:.98rem!important;
    line-height:1.35!important;
  }

  .jf-lab-page .jf-form input[type="text"],
  .jf-lab-page .jf-form input[type="email"],
  .jf-lab-page .jf-form input[type="password"]{
    min-height:46px!important;
    padding:10px 12px!important;
    font-size:1rem!important;
  }

  .jf-lab-page .jf-button{
    padding:12px 16px!important;
    font-size:.9rem!important;
  }

  .jf-lab-page .jf-version{
    font-size:.75rem!important;
  }
}


/* v0.3 — resultado salvo de Linguagem */
.jf-saved-result{
  margin-top:24px;
  padding:28px;
  border:1px solid rgba(183,154,98,.55);
  background:#fff;
}
.jf-saved-result h2{margin:.35rem 0 1rem}
.jf-saved-result p{line-height:1.55}
.jf-saved-meta{font-size:.86rem;color:var(--cinza)}
.jf-check{font-size:.65em;color:var(--vinho);vertical-align:middle}

@media(max-width:720px){
  .jf-saved-result{padding:20px 16px}
  .jf-saved-result h2{font-size:1.65rem;line-height:1.1}
}


/* v0.6 — Meu Mapa */
.jf-map--ready{padding-bottom:30px}
.jf-map-intro{max-width:760px}
.jf-map-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:26px 0 30px;background:var(--linha)}
.jf-map-summary>div{background:#fff;padding:18px}
.jf-map-summary small,.jf-map-summary span{display:block;color:var(--cinza);font-size:.76rem;line-height:1.35}
.jf-map-summary strong{display:block;margin:5px 0;color:var(--vinho);font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;font-weight:400}
.jf-map-relations{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 34px}
.jf-map-relations article{padding:20px;border:1px solid rgba(183,154,98,.55);background:#fff}
.jf-map-relations article>small{text-transform:uppercase;letter-spacing:.12em;color:var(--ouro);font-size:.68rem;font-weight:700}
.jf-map-relations h3{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;font-weight:400;color:var(--vinho);margin:8px 0}
.jf-map-relations p{margin:0}
.jf-map-axes{border-top:1px solid var(--linha);padding-top:28px}
.jf-map-axes>h3{font-family:Georgia,"Times New Roman",serif;font-size:1.9rem;font-weight:400;margin:.25rem 0 1rem}
.jf-axis{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:15px 0;border-bottom:1px solid var(--linha)}
.jf-axis strong{display:block;color:var(--vinho);font-family:Georgia,"Times New Roman",serif;font-size:1.1rem;font-weight:400}
.jf-axis small{display:block;margin-top:3px;color:var(--ouro);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}
.jf-axis p{margin:0!important}
.jf-map-note{margin-top:26px;padding:18px 20px;background:#f7ecef;border-left:3px solid var(--vinho);line-height:1.6}

@media(max-width:720px){
  .jf-map-summary,.jf-map-relations{grid-template-columns:1fr}
  .jf-axis{grid-template-columns:1fr;gap:5px}
  .jf-map-relations article{padding:17px}
}
