/* ==========================================================================
   Ypy Porã — identidade visual do módulo Incubadora
   Paleta extraída dos SVGs oficiais (Landing Page/Identididade Visual).
   Tipografia herdada do PTIn (Outfit + Poppins) para não somar uma quarta
   família de fontes ao portal.
   ========================================================================== */

:root {
    --ypy-azul:      #0038A8;
    --ypy-verde:     #00A160;
    --ypy-navy:      #283F6C;
    --ypy-vermelho:  #EE3147;
    --ypy-amarelo:   #FFCC29;

    --ypy-azul-esc:  #002a80;
    --ypy-verde-esc: #0b4a30;
    --ypy-navy-esc:  #16233d;
    --ypy-cinza:     #f5f7fb;
    --ypy-borda:     #e3e8f0;
    --ypy-texto:     #33415c;
}

/* Textura em zigue-zague (chevron) usada nos fundos coloridos de destaque
   (hero, navegação rápida, instituições) — mantém um motivo visual único
   que se repete nesses pontos, em vez de fundos sólidos isolados. */
.ypy-textura-verde, .ypy-textura-navy {
    background-image:
        linear-gradient(135deg, rgba(255,255,255,.05) 25%, transparent 25%),
        linear-gradient(225deg, rgba(255,255,255,.05) 25%, transparent 25%),
        linear-gradient(45deg,  rgba(255,255,255,.05) 25%, transparent 25%),
        linear-gradient(315deg, rgba(255,255,255,.05) 25%, transparent 25%);
    background-position: 26px 0, 26px 0, 0 0, 0 0;
    background-size: 52px 52px;
    background-repeat: repeat;
}
.ypy-textura-verde { background-color: var(--ypy-verde-esc); }
.ypy-textura-navy  { background-color: var(--ypy-navy-esc); }

body.ypy {
    background: #fff;
    font-family: 'Poppins', system-ui, sans-serif;
    color: var(--ypy-texto);
}

.ypy h1, .ypy h2, .ypy h3, .ypy h4, .ypy h5, .ypy h6,
.ypy .display-1, .ypy .display-2, .ypy .display-3 {
    font-family: 'Outfit', system-ui, sans-serif;
    font-weight: 800;
    color: var(--ypy-navy);
    letter-spacing: -0.015em;
}

/* ── Navegação ─────────────────────────────────────────────────────────── */
.ypy-nav {
    background: #fff;
    border-bottom: 1px solid var(--ypy-borda);
    padding: .7rem 0;
    position: sticky;
    top: 0;
    z-index: 1030;
}
.ypy-nav .navbar-brand { font-family: 'Outfit', sans-serif; font-weight: 900; color: var(--ypy-navy); font-size: 1.25rem; }
.ypy-nav .nav-link { color: var(--ypy-texto); font-weight: 500; font-size: .9rem; }
.ypy-nav .nav-link:hover, .ypy-nav .nav-link.active { color: var(--ypy-azul); }

.ypy-logo { height: 40px; width: auto; }
.ypy-logo-sm { height: 30px; width: auto; }

/* ── Botões ────────────────────────────────────────────────────────────── */
.btn-ypy {
    background: var(--ypy-azul); border: none; color: #fff; font-weight: 600;
    border-radius: 10px; padding: .62rem 1.5rem;
    transition: background .15s, transform .12s, box-shadow .15s;
}
.btn-ypy:hover { background: var(--ypy-azul-esc); color: #fff; transform: translateY(-1px);
                 box-shadow: 0 6px 18px rgba(0,56,168,.22); }
.btn-ypy:focus-visible { outline: 3px solid var(--ypy-amarelo); outline-offset: 2px; }

.btn-ypy-verde { background: var(--ypy-verde); border: none; color: #fff; font-weight: 600;
                 border-radius: 10px; padding: .62rem 1.5rem; transition: filter .15s; }
.btn-ypy-verde:hover { filter: brightness(.92); color: #fff; }

.btn-ypy-outline {
    background: transparent; border: 2px solid var(--ypy-azul); color: var(--ypy-azul);
    font-weight: 600; border-radius: 10px; padding: .55rem 1.4rem; transition: background .15s, color .15s;
}
.btn-ypy-outline:hover { background: var(--ypy-azul); color: #fff; }

.btn-ypy-amarelo {
    background: var(--ypy-amarelo); border: none; color: var(--ypy-navy); font-weight: 800;
    border-radius: 999px; padding: .68rem 1.6rem; transition: transform .15s, box-shadow .15s, background .15s;
    letter-spacing: .01em;
}
.btn-ypy-amarelo:hover {
    background: #ffd54f; color: var(--ypy-navy); transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(255,204,41,.35);
}
.btn-ypy-amarelo:focus-visible { outline: 3px solid var(--ypy-azul); outline-offset: 2px; }

/* ── Destaques de texto (badges inline) ───────────────────────────────── */
.ypy-destaque-caixa {
    background: var(--ypy-vermelho); color: #fff; padding: 0 .4em;
    border-radius: 6px; white-space: nowrap; box-decoration-break: clone; -webkit-box-decoration-break: clone;
}

/* ── Hero ──────────────────────────────────────────────────────────────── */
.ypy-hero {
    background-color: var(--ypy-verde-esc);
    color: #fff; padding: 4.5rem 0 4rem; position: relative; overflow: hidden;
}
.ypy-hero h1 { color: #fff; font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.35; }
.ypy-hero p  { color: rgba(255,255,255,.9); font-size: 1.06rem; }
.ypy-hero::after {
    content: ''; position: absolute; right: -90px; bottom: -90px;
    width: 320px; height: 320px; border-radius: 50%;
    background: rgba(255,204,41,.14);
}
.ypy-hero-badge {
    display: inline-block; background: rgba(0,0,0,.45); border: 1px solid rgba(0,0,0,.5);
    border-radius: 999px; padding: .3rem 1rem; font-size: .8rem; font-weight: 600; margin-bottom: 1rem;
    color: #fff;
}

/* ── Bloco institucional (fundo navy com textura) ─────────────────────── */
.ypy-inst-card {
    display: flex; gap: 1.4rem; align-items: flex-start;
    background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
    border-radius: 16px; padding: 1.6rem; margin-bottom: 1.25rem;
}
.ypy-inst-card:last-child { margin-bottom: 0; }
.ypy-inst-icone {
    flex-shrink: 0; width: 56px; height: 56px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center; font-size: 1.6rem;
    background: rgba(255,255,255,.14); color: var(--ypy-amarelo);
}
.ypy-inst-card h3 { color: #fff; font-size: 1.15rem; margin-bottom: .5rem; }
.ypy-inst-card p  { color: rgba(255,255,255,.82); font-size: .92rem; line-height: 1.65; margin-bottom: 0; }
@media (max-width: 575px) { .ypy-inst-card { flex-direction: column; } }

/* ── Seções e cartões ──────────────────────────────────────────────────── */
.ypy-secao { padding: 3.4rem 0; }
.ypy-secao-cinza { background: var(--ypy-cinza); }

.ypy-card {
    background: #fff; border: 1px solid var(--ypy-borda); border-radius: 14px;
    padding: 1.5rem; height: 100%; transition: box-shadow .18s, transform .18s;
}
.ypy-card:hover { box-shadow: 0 10px 28px rgba(40,63,108,.10); transform: translateY(-2px); }
.ypy-card-icone {
    width: 46px; height: 46px; border-radius: 12px; display: flex;
    align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: .9rem;
}

.ypy-num {
    font-family: 'Outfit', sans-serif; font-weight: 900;
    font-size: 2.4rem; line-height: 1; color: var(--ypy-azul);
}

/* ── Barras coloridas da marca ─────────────────────────────────────────── */
.ypy-barra-cores { display: flex; height: 6px; width: 100%; }
.ypy-barra-cores span { flex: 1; }
.ypy-barra-cores span:nth-child(1) { background: var(--ypy-vermelho); }
.ypy-barra-cores span:nth-child(2) { background: var(--ypy-amarelo); }
.ypy-barra-cores span:nth-child(3) { background: var(--ypy-verde); }
.ypy-barra-cores span:nth-child(4) { background: var(--ypy-azul); }

/* ── Wizard de inscrição ───────────────────────────────────────────────── */
.ypy-passos { display: flex; gap: .4rem; margin-bottom: 2rem; flex-wrap: wrap; }
.ypy-passo {
    flex: 1 1 130px; padding: .65rem .5rem; border-radius: 10px; background: var(--ypy-cinza);
    border: 1px solid var(--ypy-borda); text-align: center; font-size: .78rem; font-weight: 600;
    color: #90a0bb; transition: background .15s, color .15s, border-color .15s;
}
.ypy-passo.ativo    { background: var(--ypy-azul); border-color: var(--ypy-azul); color: #fff; }
.ypy-passo.completo { background: #e6f6ef; border-color: var(--ypy-verde); color: var(--ypy-verde); }
.ypy-passo-num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border-radius: 50%; background: rgba(0,0,0,.09);
    margin-right: .3rem; font-size: .7rem;
}
.ypy-passo.ativo .ypy-passo-num { background: rgba(255,255,255,.28); }

.ypy-etapa { display: none; }
.ypy-etapa.ativa { display: block; animation: ypyFade .22s ease; }
@keyframes ypyFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.ypy-form .form-label { font-weight: 600; font-size: .87rem; color: var(--ypy-navy); }
.ypy-form .form-control, .ypy-form .form-select { border-radius: 9px; border-color: var(--ypy-borda); padding: .6rem .85rem; }
.ypy-form .form-control:focus, .ypy-form .form-select:focus {
    border-color: var(--ypy-azul); box-shadow: 0 0 0 .2rem rgba(0,56,168,.12);
}
.ypy-form .form-text { font-size: .78rem; }
.ypy-contador { font-size: .74rem; color: #8b9bb4; text-align: right; }
.ypy-contador.ok    { color: var(--ypy-verde); font-weight: 600; }
.ypy-contador.curto { color: var(--ypy-vermelho); }

/* ── Protocolo ─────────────────────────────────────────────────────────── */
.ypy-protocolo {
    font-family: 'Outfit', monospace; font-size: 1.9rem; font-weight: 900;
    letter-spacing: 2px; color: var(--ypy-azul);
    background: var(--ypy-cinza); border: 2px dashed var(--ypy-azul);
    border-radius: 12px; padding: 1.1rem; text-align: center;
}

/* ── FAQ ───────────────────────────────────────────────────────────────── */
.ypy-faq .accordion-button { font-weight: 600; color: var(--ypy-navy); font-size: .95rem; }
.ypy-faq .accordion-button:not(.collapsed) { background: #eef3fc; color: var(--ypy-azul); box-shadow: none; }
.ypy-faq .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(0,56,168,.14); }
.ypy-faq .accordion-item { border-color: var(--ypy-borda); margin-bottom: .5rem; border-radius: 10px !important; overflow: hidden; }

/* ── Painel do avaliador ───────────────────────────────────────────────── */
.ypy-aval-topo { background: var(--ypy-navy); color: #fff; padding: .85rem 0; }
.ypy-aval-topo a { color: rgba(255,255,255,.85); text-decoration: none; font-size: .88rem; }
.ypy-aval-topo a:hover { color: #fff; }

.ypy-split { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; align-items: start; }
@media (max-width: 991px) { .ypy-split { grid-template-columns: 1fr; } }

.ypy-ficha, .ypy-checklist {
    max-height: calc(100vh - 150px); overflow-y: auto;
    border: 1px solid var(--ypy-borda); border-radius: 14px; background: #fff;
}
@media (max-width: 991px) { .ypy-ficha, .ypy-checklist { max-height: none; } }
.ypy-ficha::-webkit-scrollbar, .ypy-checklist::-webkit-scrollbar { width: 7px; }
.ypy-ficha::-webkit-scrollbar-thumb, .ypy-checklist::-webkit-scrollbar-thumb {
    background: #cfd8e6; border-radius: 4px;
}

.ypy-ancoras {
    position: sticky; top: 0; background: #fff; border-bottom: 1px solid var(--ypy-borda);
    padding: .6rem .9rem; display: flex; gap: .35rem; flex-wrap: wrap; z-index: 5;
}
.ypy-ancoras a {
    font-size: .74rem; padding: .18rem .6rem; border-radius: 999px;
    background: var(--ypy-cinza); color: var(--ypy-texto); text-decoration: none; white-space: nowrap;
}
.ypy-ancoras a:hover { background: var(--ypy-azul); color: #fff; }

.ypy-criterio { border-bottom: 1px solid var(--ypy-borda); padding: 1.15rem; }
.ypy-criterio:last-child { border-bottom: none; }
.ypy-criterio h6 { font-size: .98rem; margin-bottom: .2rem; }
.ypy-criterio-desc { font-size: .8rem; color: #7b8aa5; margin-bottom: .85rem; }

.ypy-nota { display: block; margin-bottom: .4rem; cursor: pointer; }
.ypy-nota input { position: absolute; opacity: 0; width: 0; height: 0; }
.ypy-nota-box {
    display: flex; gap: .65rem; align-items: flex-start;
    border: 1.5px solid var(--ypy-borda); border-radius: 10px; padding: .6rem .8rem;
    font-size: .82rem; transition: border-color .13s, background .13s;
}
.ypy-nota:hover .ypy-nota-box { border-color: #b6c4dc; background: #fbfcfe; }
.ypy-nota input:checked + .ypy-nota-box { border-color: var(--ypy-azul); background: #eef3fc; }
.ypy-nota input:focus-visible + .ypy-nota-box { outline: 3px solid var(--ypy-amarelo); outline-offset: 1px; }
.ypy-nota-n {
    flex-shrink: 0; width: 27px; height: 27px; border-radius: 50%;
    background: var(--ypy-cinza); color: var(--ypy-texto);
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: .82rem; font-family: 'Outfit', sans-serif;
}
.ypy-nota input:checked + .ypy-nota-box .ypy-nota-n { background: var(--ypy-azul); color: #fff; }

.ypy-placar {
    position: sticky; bottom: 0; background: #fff; border-top: 2px solid var(--ypy-azul);
    padding: .85rem 1.15rem; z-index: 6;
}
.ypy-placar-total { font-family: 'Outfit', sans-serif; font-weight: 900; font-size: 1.85rem; color: var(--ypy-azul); line-height: 1; }
.ypy-medidor { height: 8px; border-radius: 4px; background: var(--ypy-cinza); overflow: hidden; margin: .45rem 0; }
.ypy-medidor-barra { height: 100%; background: linear-gradient(90deg, var(--ypy-vermelho), var(--ypy-amarelo), var(--ypy-verde)); transition: width .25s; }

.ypy-parcial { font-size: .76rem; color: var(--ypy-azul); font-weight: 700; }

/* ── Utilitários ───────────────────────────────────────────────────────── */
.ypy-chip {
    display: inline-block; background: var(--ypy-cinza); border: 1px solid var(--ypy-borda);
    border-radius: 999px; padding: .16rem .68rem; font-size: .75rem; margin: 0 .2rem .3rem 0;
}
.ypy-alerta-cega {
    background: #fff8e1; border: 1px solid #ffe08a; border-radius: 10px;
    padding: .55rem .85rem; font-size: .8rem; color: #7a5a00;
}
.text-ypy-azul  { color: var(--ypy-azul) !important; }
.text-ypy-verde { color: var(--ypy-verde) !important; }
.text-ypy-navy  { color: var(--ypy-navy) !important; }
.bg-ypy-azul    { background: var(--ypy-azul) !important; }
.bg-ypy-navy    { background: var(--ypy-navy) !important; }

@media print {
    .ypy-nav, .ypy-aval-topo, .ypy-ancoras, .ypy-placar, .btn { display: none !important; }
    .ypy-ficha, .ypy-checklist { max-height: none; border: none; }
}
