@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Roboto:wght@400;500;700&display=swap');

/* =========================================================
   DESIGN TOKENS
   Paleta e tipografia centralizadas em variaveis.
   #173D5F e a cor de marca (botoes/links/headings).
   ========================================================= */
:root{
    --cor-primaria: #173D5F;
    --cor-primaria-hover: #0f2d46;
    --cor-primaria-clara: #5A90C6;
    --cor-texto: #4a4a4a;
    --cor-texto-suave: #6a6a6a;
    --cor-borda: #d6e0ea;
    --cor-fundo-zebra: #f4f7fb;
    --cor-sucesso-bg: #eafaf1;
    --cor-sucesso-borda: #34a853;
    --cor-sucesso-texto: #1e7e34;
    --cor-erro-bg: #fdecea;
    --cor-erro-borda: #e53935;
    --cor-erro-texto: #8f281a;
    --cor-aviso-bg: #fff8e1;
    --cor-aviso-borda: #e8bf41;
    --cor-aviso-texto: #7a5b00;
    --fonte-base: 'Inter', system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
    --raio-padrao: 6px;
    --sombra-padrao: 0 1px 3px rgba(23,61,95,0.12);
    --transicao-padrao: all .15s ease-in-out;
}

/* box-sizing seguro: padding contado DENTRO da largura declarada */
*, *::before, *::after{ box-sizing: border-box; }

/* Definicoes gerais */
table{font-size: 13px; color: var(--cor-texto)}

/* Padrao generico de campo de formulario para todas as telas */
input[type="text"], input[type="password"], input[type="email"], input[type="number"],
input[type="date"], input[type="tel"], input[type="search"], textarea, select{
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-padrao);
    padding: 4px 8px;
    font-family: var(--fonte-base);
    font-size: 12px;
    color: #333;
    background: #fff;
    background-image: none;
    box-shadow: inset 0 1px 3px rgba(0,0,0,.06);
    transition: var(--transicao-padrao);
}
input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus,
input[type="number"]:focus, input[type="date"]:focus, input[type="tel"]:focus,
input[type="search"]:focus, textarea:focus, select:focus{
    outline: none;
    border-color: var(--cor-primaria-clara);
    box-shadow: inset 0 1px 2px rgba(0,0,0,.05), 0 0 0 3px rgba(90,144,198,.25);
}

button[type="button"], button[type="reset"], button[type="submit"],
input[type="reset"], input[type="submit"], input[type="button"]{
    background-color: var(--cor-primaria);
    position:relative;
    color:#FFFFFF;
    font-size:12px;
    font-weight: 600;
    letter-spacing: 0.3px;
    padding: 5px 14px;
    background-image:none;
    border: none;
    border-radius: var(--raio-padrao);
    cursor: pointer;
    transition: var(--transicao-padrao);
}
button[type="button"]:hover, button[type="reset"]:hover, button[type="submit"]:hover,
input[type="reset"]:hover, input[type="submit"]:hover, input[type="button"]:hover{
    background-color: var(--cor-primaria-hover);
}

cite{position:absolute; display:none}
clear{clear: both;}
img{border:none;}
input{background-image:none}
/* Fundo: brilho amarelo sutil no topo (ecoa o banner), halo azul
   atras da coluna central e textura de pontos bem discreta */
body{
    background-color:#0d2640;
    background-image:
        radial-gradient(ellipse 60% 40% at 50% 0%, rgba(245,196,0,.10), transparent 70%),
        radial-gradient(ellipse 70% 60% at 50% 35%, rgba(90,144,198,.28), transparent 75%),
        radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
        linear-gradient(180deg, #173D5F 0%, #0d2640 60%, #081a2e 100%);
    background-size: auto, auto, 22px 22px, auto;
    background-attachment: fixed;
    min-height: 100vh;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    font-family: var(--fonte-base);
    font-size: 15px;
    color: var(--cor-texto);
}

/* =========================================================
   Shell publico (login, cadastro etc.) - estrutura, largura
   e posicionamento PRESERVADOS do original.
   ========================================================= */
#geral{width:799px; margin:auto}
/* Cartao branco do conteudo (substitui topo.png/bg_corpo.png/rodape.png).
   Margem lateral de 10px + padding de 15px no #corpo mantem a mesma
   largura util de 749px e a mesma posicao do menu RichFaces. */
#cartao{
    margin: 20px 10px 0;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0,0,0,.20), 0 12px 40px rgba(0,0,0,.35);
}
#topo{height:230px}
/*#topo span{top:94px; left:15px; display:block; position:relative}*/
#topo span{top:6px; left:5px; display:block; position:relative}
#topo img{border-radius: 8px 8px 0 0; display:block}

#corpo{padding: 10px 15px 20px;}
    #menu{display:block; width:100%; clear:both; margin-left:-11px;}
    #conteudo_esquerda{float:left; width:480px;font-size:15px; color: var(--cor-texto-suave);}
    #conteudo_esquerda strong{color:#333333}

    /* Texto central da tela de login (HTML livre vindo do rich:editor).
       So a secao "PRINCIPAIS ATIVIDADES" e restilizada; as classes tc-* sao
       aplicadas pelo script em login.jspx. O resto do texto fica como o editor gerou.
       Os !important neutralizam fonte/alinhamento/tamanho inline do editor. */
    /* Secao "AVISO": titulo + paragrafos agrupados pelo script em .tc-aviso */
    .texto-central .tc-aviso{
        margin: 6px 0 18px;
        padding: 14px 18px 12px;
        background: #fffcf2;
        border: 1px solid #f3e3b3;
        border-left: 4px solid var(--cor-aviso-borda);
        border-radius: 10px;
    }
    .texto-central .tc-aviso, .texto-central .tc-aviso *{
        font-family: var(--fonte-base) !important;
        text-align: left !important;
    }
    .texto-central .tc-aviso-titulo{
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0 0 10px;
        font-size: 12px !important;
        font-weight: 700;
        letter-spacing: .8px;
        color: var(--cor-aviso-texto);
    }
    .texto-central .tc-aviso-titulo *{ font-size: 12px !important; color: var(--cor-aviso-texto); }
    .texto-central .tc-aviso-titulo::before{
        content: "";
        flex-shrink: 0;
        width: 18px;
        height: 18px;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a5b00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E") no-repeat center / contain;
    }
    .texto-central .tc-aviso-texto{
        margin: 0 0 10px;
        font-size: 13px !important;
        line-height: 1.65 !important;
        color: #3d3d3d;
    }
    .texto-central .tc-aviso-texto *{ font-size: 13px !important; line-height: 1.65 !important; }
    .texto-central .tc-aviso .tc-assinatura{
        margin: 4px 0 0;
        padding-top: 10px;
        border-top: 1px solid #f3e3b3;
        text-align: right !important;
        font-size: 12px !important;
        color: var(--cor-aviso-texto);
    }
    .texto-central .tc-aviso .tc-assinatura *{ font-size: 12px !important; color: var(--cor-aviso-texto); }
    .texto-central .tc-aviso .tc-assinatura::before{ content: "\2014\00a0"; }

    .texto-central .tc-titulo, .texto-central .tc-titulo *,
    .texto-central .tc-item, .texto-central .tc-item *{
        font-family: var(--fonte-base) !important;
        text-align: left !important;
        line-height: 1.5 !important;
    }
    .texto-central .tc-titulo{
        margin: 18px 0 8px;
        font-size: 12px !important;
        font-weight: 700;
        letter-spacing: .8px;
        color: var(--cor-primaria);
    }
    .texto-central .tc-titulo *{ font-size: 12px !important; color: var(--cor-primaria); }
    .texto-central .tc-item{
        margin: 0 0 8px;
        padding: 10px 14px;
        background: #f7fafc;
        border: 1px solid var(--cor-borda);
        border-left: 4px solid var(--cor-primaria);
        border-radius: 8px;
        font-size: 13px !important;
        color: var(--cor-texto);
    }
    .texto-central .tc-item *{ font-size: 13px !important; }
    .texto-central .tc-item strong, .texto-central .tc-item b{ color: #2c3e50; font-weight: 700; }
    .texto-central .tc-item s, .texto-central .tc-item strike, .texto-central .tc-item del,
    .texto-central .tc-item [style*="line-through"]{ color: #9aa6b2; font-weight: 400; }
    .texto-central .tc-vazio{ display: none; }
    .texto-central .tc-encerrado{
        background: #fafbfc;
        border-left-color: #c3ccd5;
        color: #8a97a5;
    }
    .texto-central .tc-encerrado strong,
    .texto-central .tc-encerrado b{ color: #6b7785; }
    .texto-central .tc-selo{
        display: inline-block;
        margin-left: 6px;
        padding: 1px 8px;
        border-radius: 999px;
        background: #eef1f4;
        color: #6b7785;
        font-size: 10px !important;
        font-weight: 700;
        letter-spacing: .4px;
        text-transform: uppercase;
        vertical-align: 1px;
    }
    #corpo h1{color: var(--cor-primaria); font-size:30px; margin:0;}
    #corpo h2{color: var(--cor-primaria); font-size:18px; margin-bottom:10px;}
    #corpo h3{color: var(--cor-texto); font-size:14px; margin:0;}

    #conteudo_direita{float:right; width:262px;}
        /* Cards da coluna direita da tela de login (acesso + certificados/servicos) */
        .login-card{
            margin-bottom: 14px;
            background: #fff;
            border: 1px solid var(--cor-borda);
            border-radius: 10px;
            box-shadow: var(--sombra-padrao);
            overflow: hidden;
        }
        .login-cabecalho{
            display: block;
            padding: 12px 16px;
            background: var(--cor-primaria);
            color: #fff;
        }
        .login-titulo{ display: block; font-size: 14px; font-weight: 700; letter-spacing: .2px; }
        .login-card #corpo_login, .login-card .corpo_login{ padding: 14px 16px 8px; }

        .login-card table{ width: 100%; margin-bottom: 6px !important; border-collapse: collapse; }
        .login-card td{ padding: 0; font-size: 12px; font-weight: 600; color: var(--cor-primaria); }
        .login-card input[type="text"],
        .login-card input[type="password"]{
            display: block; width: 100%; margin: 4px 0 10px; padding: 9px 10px;
            border: 1px solid var(--cor-borda); border-radius: var(--raio-padrao);
            font-family: var(--fonte-base); font-size: 13px; color: #333; background: #fff;
            box-shadow: inset 0 1px 2px rgba(0,0,0,.05);
            transition: border-color .2s, box-shadow .2s;
        }
        .login-card input[type="text"]:focus,
        .login-card input[type="password"]:focus{
            outline: none; border-color: var(--cor-primaria-clara);
            box-shadow: 0 0 0 3px rgba(90,144,198,.25);
        }
        .login-card .btn_login{
            display: block; width: 100%; margin-top: 6px; padding: 9px 5px;
            border: none; border-radius: var(--raio-padrao);
            background: var(--cor-primaria); color: #fff;
            font-family: var(--fonte-base); font-size: 12px; font-weight: 600; letter-spacing: .3px;
            cursor: pointer; transition: var(--transicao-padrao);
        }
        .login-card .btn_login:hover{ background: var(--cor-primaria-hover); }
        /* Segundo botao (aluno) em estilo contornado para diferenciar os perfis */
        .login-card .btn_login + .btn_login{
            background: #fff; color: var(--cor-primaria);
            box-shadow: inset 0 0 0 1.5px var(--cor-primaria);
        }
        .login-card .btn_login + .btn_login:hover{ background: #f0f6fa; }

        /* Lista de links com icone de linha (mascara SVG, cor = currentColor) */
        .login-card span{ display: block; }
        .login-card span a{
            display: flex; align-items: center; gap: 10px;
            margin: 0 -8px; padding: 7px 8px;
            border-radius: var(--raio-padrao);
            font-size: 12px; font-weight: 500; color: #2c3e50; text-decoration: none;
            transition: var(--transicao-padrao);
        }
        .login-card form + form{ margin-top: 10px; padding-top: 6px; border-top: 1px solid var(--cor-borda); }
        .login-card span a:hover{ background: #f0f6fa; color: var(--cor-primaria); }
        .login-card span a::before{
            content: ""; flex-shrink: 0; width: 16px; height: 16px;
            background-color: var(--cor-primaria-clara);
            -webkit-mask: var(--ico) no-repeat center / contain;
            mask: var(--ico) no-repeat center / contain;
        }
        .login-card span a:hover::before{ background-color: var(--cor-primaria); }
        /* "Desejo me cadastrar" em destaque: e o que o visitante novo procura */
        .login-card span a.cadastrar{ font-weight: 700; color: var(--cor-primaria); }
        .login-card span a.cadastrar::before{ background-color: var(--cor-sucesso-texto); }

        .login-card a.esqueci{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E"); }
        .login-card a.cadastrar{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M19 8v6M22 11h-6'/%3E%3C/svg%3E"); }
        .login-card a.fale_conosco{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
        .login-card a.site{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E"); }
        .login-card a.ajuda{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3M12 17h.01'/%3E%3C/svg%3E"); }
        .login-card a.administracao{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E"); }
        .login-card a.certificado_instrutor,
        .login-card a.certificado_coordenador{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.48 12.89 17 22l-5-3-5 3 1.52-9.11'/%3E%3C/svg%3E"); }
        .login-card a.escola{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5z'/%3E%3Cpath d='M6 12v5c3 3 9 3 12 0v-5'/%3E%3C/svg%3E"); }
    #rodape{font-size:11px; line-height:1.5; color:rgba(255,255,255,.75); margin: 16px 10px 28px; position: relative;}
    /* Faixa do rodape: marca | links | versao */
    #rodape .rodape-conteudo{
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        padding: 14px 20px;
        border-radius: 10px;
        background: rgba(255,255,255,.06);
        border: 1px solid rgba(255,255,255,.10);
    }
    #rodape .rodape-marca{ display: flex; flex-direction: column; min-width: 0; }
    #rodape .rodape-titulo{ font-size: 13px; font-weight: 700; color: #fff; letter-spacing: .2px; }
    #rodape .rodape-subtitulo{ font-size: 11px; color: rgba(255,255,255,.65); }
    #rodape .rodape-links{ display: flex; flex-wrap: wrap; gap: 4px 18px; justify-content: center; }
    #rodape .rodape-links a{
        color: #b9d4ee;
        text-decoration: none;
        font-weight: 600;
        transition: var(--transicao-padrao);
    }
    #rodape .rodape-links a:hover{ color: #fff; text-decoration: underline; }
    #rodape .rodape-credito{
        margin-top: 10px;
        text-align: center;
        font-size: 10px;
        letter-spacing: .3px;
        color: rgba(255,255,255,.50);
    }
    #rodape .rodape-credito strong{ color: rgba(255,255,255,.80); font-weight: 700; }
    #rodape .rodape-versao{
        flex-shrink: 0;
        padding: 3px 10px;
        border-radius: 999px;
        background: rgba(255,255,255,.10);
        color: rgba(255,255,255,.80);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .3px;
    }
/* Bloco "Arquivos / Download" da tela de login.
   O titulo (antes a imagem arquivos_download.jpg) vem do <cite>, que e oculto por padrao. */
#downloads{
    width: auto;
    margin-top: 18px;
    padding: 14px 14px 10px;
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: 10px;
    box-shadow: var(--sombra-padrao);
    font-size: 12px;
}
#downloads cite{
    position: static;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--cor-borda);
    font-style: normal;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .8px;
    color: var(--cor-primaria);
}
#downloads cite::before{
    content: "";
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: var(--cor-primaria) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'/%3E%3C/svg%3E") no-repeat center / 15px 15px;
}
/* Grade de 2 colunas; rotulo "Normas", botao de listar e aviso de lista vazia ocupam a linha toda */
#downloads ul{ display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; padding: 0; }
#downloads li.separador, #downloads li.pesquisa_arquivos, #downloads li.lista_vazia{ grid-column: 1 / -1; }
#downloads li{
    list-style: none;
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
    text-align: left;
}
/* Rotulo de secao ("Normas") */
#downloads li.separador{
    padding: 4px 4px 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--cor-texto-suave);
}
/* Cada arquivo: linha inteira clicavel, icone de documento + icone de download */
#downloads li a{
    position: static;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 8px;
    border-radius: var(--raio-padrao);
    color: #2c3e50;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    transition: var(--transicao-padrao);
}
#downloads li a::before{
    content: "";
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: #e8f0f8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173D5F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8M10 9H8'/%3E%3C/svg%3E") no-repeat center / 15px 15px;
}
#downloads li a::after{
    content: "";
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin-left: auto;
    opacity: .35;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173D5F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'/%3E%3C/svg%3E") no-repeat center / contain;
    transition: var(--transicao-padrao);
}
#downloads li a:hover{ background: #f0f6fa; color: var(--cor-primaria); }
#downloads li a:hover::after{ opacity: 1; }
/* Cada arquivo e um "tile" na grade de 2 colunas */
#downloads li a{ height: 100%; border: 1px solid #eef2f6; }
#downloads li a:hover{ border-color: var(--cor-borda); }
/* Numero impar de arquivos: o ultimo ocupa a linha toda */
#downloads li:last-child:nth-child(even){ grid-column: 1 / -1; }

/* "Clique aqui para listar os arquivos": botao simples, sem icone de arquivo */
#downloads li.pesquisa_arquivos a{
    justify-content: center;
    color: var(--cor-primaria);
    font-weight: 600;
    border: 1px dashed var(--cor-borda);
    border-top: 1px dashed var(--cor-borda);
}
#downloads li.pesquisa_arquivos a::before,
#downloads li.pesquisa_arquivos a::after{ display: none; }
#downloads li.lista_vazia{
    padding: 10px;
    text-align: center;
    color: var(--cor-texto-suave);
    font-size: 12px;
    background: none;
}

.mensageiro{width: 740px;}

/* MODERNIZADO - cores via token, cantos arredondados */
.erroMensagem{font-size:13px; font-family: var(--fonte-base); color: var(--cor-erro-texto); list-style-type:none; list-style:none; min-height:17px; border:1px solid var(--cor-erro-borda); background-color: var(--cor-erro-bg); border-radius: var(--raio-padrao); padding:8px 12px;}
.sucessoMensagem{font-size:13px; font-family: var(--fonte-base); list-style-type:none; list-style:none; min-height:17px; border:1px solid var(--cor-sucesso-borda); background-color: var(--cor-sucesso-bg); color: var(--cor-sucesso-texto); border-radius: var(--raio-padrao); padding:8px 12px;}
.avisoMensagem{font-size:13px; font-family: var(--fonte-base); list-style-type:none; list-style:none; min-height:17px; border:1px solid var(--cor-aviso-borda); background-color: var(--cor-aviso-bg); color: var(--cor-aviso-texto); border-radius: var(--raio-padrao); padding:8px 12px;}

/*=============  PAGINA DE PERFIS  ==============*/
.bloco_perfil{background-image:url(../images/bg_perfil.jpg); background-repeat:no-repeat; padding:15px 0 0 20px; width:220px; float:left; font-size:11px; color:#646464; margin-top:0;}
.bloco_perfil span{display:block; width:90%; margin-top:8px; height: 200px;}
.bloco_perfil i{font-size:16px; color:#003366; display:block; font-weight:bold;}
.bloco_perfil img{float:left; margin-right:5px; margin-bottom:1px}
.bloco_perfil a{color: var(--cor-primaria); text-decoration:none; font-size:11px; display:block; margin-top:10px; background-image:url(../images/list_perfil.jpg);background-repeat:no-repeat; background-position:0 3px; padding-left:18px}
.bloco_perfil a:hover{color:#6FCCFF}

/*============ bloco perfil nao inscrito =============*/
.bloco_perfil_nao_inscrito{background-image:url(../images/bg_perfil.jpg); background-repeat:no-repeat; padding:15px 0 0 20px; width:230px; float:left; font-size:11px; color:#646464; margin-top:0;}
.bloco_perfil_nao_inscrito span{display:block; width:90%; margin-top:8px; height: 200px;}
.bloco_perfil_nao_inscrito i{font-size:16px; color:#a11918; display:block; font-weight:bold;}
.bloco_perfil_nao_inscrito img{float:left; margin-right:5px; margin-bottom:1px}
.bloco_perfil_nao_inscrito a{color: var(--cor-primaria); text-decoration:none; font-size:11px; display:block; margin-top:10px; background-image:url(../images/list_perfil.jpg);background-repeat:no-repeat; background-position:0 3px; padding-left:18px}
.bloco_perfil_nao_inscrito a:hover{color:#6FCCFF}

/*============= Perfis de estudantes ============*/
.bloco_perfil_estudante{background-image:url(../images/bg_perfil_estudante.jpg); background-repeat:no-repeat; padding:15px 0 0 20px; width:360px; float:left; font-size:11px; color:#646464; margin-top:10px;}
.bloco_perfil_estudante span{display:block; width:90%; margin-top:8px; height: 120px;}
.bloco_perfil_estudante i{font-size:16px; color:#003366; display:block; font-weight:bold;}
.bloco_perfil_estudante img{float:left; margin-right:5px; margin-bottom:1px}
.bloco_perfil_estudante a{color: var(--cor-primaria); text-decoration:none; font-size:11px; display:block; margin-top:10px; background-image:url(../images/list_perfil.jpg);background-repeat:no-repeat; background-position:0 3px; padding-left:18px}
.bloco_perfil_estudante a:hover{color:#6FCCFF}

/*=====  AVISO  =====================================*/
.aviso{width: 733px; height: 56px; color:#a11918; display: block; background-image:url(../images/aviso.jpg); padding:18px 0 0 50px; background-repeat: no-repeat; background-position: 5px 0}

/*=====  REESCRITA DE ESTILIZACAO RICH FACES  =======
   REGRA DE SEGURANCA: nunca alterar width/position/float/top/left
   destas classes - sao valores que o RichFaces 3.3.1 usa para
   posicionar menus/paineis via JavaScript proprio. So mudamos
   cor/borda/radius/sombra/padding (seguro com box-sizing:border-box
   aplicado no topo do arquivo). ================================= */

/* ==========================================================================
   HERO CARD DE BOAS-VINDAS
   ========================================================================== */
.welcome-hero-card {
    background-color: #f0f6fa;
    border-left: 5px solid var(--cor-primaria);
    border-radius: var(--raio-padrao);
    padding: 18px 22px;
    margin-bottom: 20px;
    display: -webkit-flex;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
.welcome-content { display: block; flex: 1; }
.welcome-actions  { margin-left: 20px; flex-shrink: 0; }
.welcome-title {
    display: block;
    font-size: 18px;
    font-weight: 700;
    color: var(--cor-primaria);
    margin-bottom: 5px;
}
.welcome-subtitle {
    display: block;
    font-size: 12px;
    color: var(--cor-texto-suave);
    line-height: 1.5;
    max-width: 560px;
}
.btn-hero-primary {
    display: inline-block;
    background-color: var(--cor-primaria);
    color: #ffffff !important;
    font-weight: 600;
    font-size: 12px;
    padding: 8px 16px;
    border-radius: var(--raio-padrao);
    text-decoration: none !important;
    transition: var(--transicao-padrao);
    white-space: nowrap;
}
.btn-hero-primary:hover {
    background-color: var(--cor-primaria-hover) !important;
    box-shadow: 0 2px 8px rgba(23,61,95,0.25);
    text-decoration: none !important;
}

/* Menu */
/* Barra ocupa toda a largura do #cartao (779px): #corpo tem padding de 15px */
.dr-toolbar-ext{width: 779px; position:relative; left:-15px; top:-10px;}

/* Visual da barra: plana, sem o degrade do skin blueSky */
body .dr-toolbar-ext{
    background: #f0f6fa !important;
    background-image: none !important;
    border: 0 !important;
    border-bottom: 1px solid var(--cor-borda) !important;
    padding: 4px 0 !important;
}

/* estilizacao de texto do menu */
body .dr-toolbar-int{color: var(--cor-primaria); padding: 0 1px; font-family: var(--fonte-base); font-size: 12px;}
body .dr-toolbar-int-dis{color: #a9b4bf !important; cursor: default; font-style: italic;}
.dr-label-text-decor{font-size: 12px; font-weight: 600;}

/* Rotulos do menu (fechado / aberto) - padding igual nos dois estados */
body .dr-menu-label{font-family: var(--fonte-base); font-size: 12px;}
body .dr-menu-label-unselect,
body .dr-menu-label-select{
    border: 0 !important;
    padding: 6px 7px !important;
    border-radius: var(--raio-padrao);
    color: var(--cor-primaria);
    transition: background-color .15s ease-in-out;
}
body .dr-menu-label-unselect:hover{
    background-color: #e8f0f8 !important;
    background-image: none !important;
}
body .dr-menu-label-select{
    background-color: #dce8f4 !important;
    color: var(--cor-primaria) !important;
}

/* Painel suspenso */
body .rich-menu-list-border{
    border: 1px solid var(--cor-borda) !important;
    border-radius: 8px;
    background-color: #fff !important;
    box-shadow: 0 8px 24px rgba(15,45,70,.18);
    padding: 4px 0;
}
body .rich-menu-list-bg{
    background-image: none !important;
    background-color: #fff !important;
    border: 0 !important;
}

/* Itens: hover so muda cor de fundo (sem a borda de 1px do skin) */
body .rich-menu-item,
body .rich-menu-group,
body .rich-menu-item-enabled,
body .rich-menu-group-enabled,
body .rich-menu-item-hover,
body .rich-menu-group-hover,
body .rich-menu-item-disabled,
body .rich-menu-group-disabled{
    border: 0 !important;
    padding: 6px 36px 6px 4px !important;
    margin: 0 4px;
    border-radius: var(--raio-padrao);
    font-family: var(--fonte-base);
    font-size: 12px;
    color: #2c3e50;
}
body .rich-menu-item-hover,
body .rich-menu-group-hover{
    background-color: #e8f0f8 !important;
    background-image: none !important;
    color: var(--cor-primaria) !important;
}
body .rich-menu-item-disabled,
body .rich-menu-group-disabled{ color: #a9b4bf !important; }
/* Menu suspenso desabilitado (ex.: Monografias sem monografias na edicao): cinza como os itens desabilitados */
body .rich-ddmenu-label-disabled,
body .rich-ddmenu-label-disabled:hover{
    color: #a9b4bf !important;
    cursor: default;
    background-color: transparent !important;
    background-image: none !important;
}
body .rich-ddmenu-label-disabled *{ color: #a9b4bf !important; }
body .rich-menu-separator{ border-top-color: var(--cor-borda) !important; margin: 4px 8px; }
body .dr-menu-node{ top: 7px; right: 8px; }

/* Botao Sair (grupo a direita do rich:toolBar) */
.dr-toolbar-ext a.btn-sair{
    display: inline-block;
    margin-right: 8px;
    padding: 4px 10px 4px 28px;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-padrao);
    font-size: 12px;
    font-weight: 600;
    color: var(--cor-primaria);
    text-decoration: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173D5F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E") no-repeat 9px center / 14px 14px;
    transition: var(--transicao-padrao);
}
.dr-toolbar-ext a.btn-sair:hover{
    border-color: var(--cor-erro-borda);
    color: var(--cor-erro-texto);
    background-color: var(--cor-erro-bg);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f281a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E");
}

/* -------------------------------------------------------------------------- */
/*Estilo dos rich:panel*/
.dr-pnl {
    width: 740px; margin-top: 10px; font-size: 11px; color: var(--cor-texto);
    border-radius: var(--raio-padrao);
    box-shadow: var(--sombra-padrao);
}
.dr-pnl .dr-pnl{width: 100%; box-shadow: none;}
.dr-tbpnl-cntnt .dr-pnl{width: 100%; margin-top: 10px;font-size: 11px; color: var(--cor-texto)}
/* -------------------------------------------------------------------------- */
/*Estilo dos componentes com abas*/
/*parte geral*/
.rich-tabpanel{width: 750px; margin-top: 10px}

/*aba*/
.dr-tbpnl-tb{color: var(--cor-primaria); font-size: 12px}

/*conteudo*/
.dr-tbpnl-cntnt td{font-size: 11px; color: var(--cor-texto)}

/* -------------------------------------------------------------------------- */
/* Tabela - cobre prefixo dr- (skin padrao) e rich- (skin alternativo) */
.dr-table, .rich-table {
    width: 740px;
    margin-top: 8px;
    border: var(--cor-borda) solid 1px;
    border-radius: var(--raio-padrao);
    overflow: hidden;
}
.dr-table-cell, .rich-table-cell {
    border: var(--cor-borda) solid 1px;
    padding: 10px 12px;
    line-height: 1.4;
    color: #2C3E50;
}
.dr-table-cell .dr-table, .rich-table-cell .rich-table { width: 100%; margin-top: 8px; }
.dr-table-cell form, .rich-table-cell form { min-height: 100%; margin-top: 10px; }
.dr-pnl .dr-table, .dr-pnl .rich-table { width: 100%; margin-top: 8px; }
.dr-table-footercell, .rich-table-footercell { background-color:#ffffff; border-left:white solid 1px; border-right:white solid 1px; border-bottom:white solid 1px; }
.td_center .dr-table-cell, .td_center .rich-table-cell { text-align: center; }
.dr-table-subheadercell, .rich-table-subheadercell { border: var(--cor-borda) solid 1px; color: var(--cor-primaria); font-family: var(--fonte-base); }

body .dr-table-headercell,
body .rich-table-headercell,
body th.dr-table-headercell,
body th.rich-table-headercell {
    color: #FFFFFF !important;
    background: var(--cor-primaria) !important;
    background-image: none !important;
    border-color: var(--cor-primaria) !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    padding: 10px 14px !important;
}

.dr-table tbody tr:nth-child(even) .dr-table-cell,
.rich-table tbody tr:nth-child(even) .rich-table-cell { background-color: #F8FAFC; }

.dr-table tbody tr,
.rich-table tbody tr { transition: transform 0.2s ease, box-shadow 0.2s ease; }

.dr-table tbody tr .dr-table-cell,
.rich-table tbody tr .rich-table-cell { transition: background-color 0.2s ease; }

.dr-table tbody tr:hover,
.rich-table tbody tr:hover { transform: scale(1.015); box-shadow: 0 2px 10px rgba(0,0,0,0.09); }

@keyframes garotas-pulse {
    0%, 100% { background-color: #F3E8FF; }
    50%      { background-color: #E9D5FF; }
}

/* Linha com badge Garotas: classe aplicada pelo onRowMouseOver das tabelas (as demais
   linhas recebem #f6f6ff pelo mesmo script). */
.dr-table tbody tr.garotas-hover .dr-table-cell,
.rich-table tbody tr.garotas-hover .rich-table-cell {
    animation: garotas-pulse 3s ease-in-out infinite;
}

.a4jform{width: 750px}
.info{font-size:14px; color: var(--cor-texto-suave); display: block; width: 750px}
.cabecalho_info{font-size: 12px; font-weight: bold; color: var(--cor-texto);}
.valor_info{}
.info_red{font-size:14px; color: var(--cor-texto-suave); display: block; width: 750px; color: var(--cor-erro-texto); text-align: center}
.voltar{color:#c3c3c3; height:27px; position:relative; right:30px; float: right; text-decoration: none; background-image:url(../images/voltar.jpg);background-repeat:no-repeat; background-position:0px 0px; padding-left:25px; padding-top:6px;}

.campoRequirido {color: #EF7B1D; margin-right: 5px; font-size: 11px; }
.mensagemDeAviso {
    color: #EF7B1D;
    margin-right: 5px;
    font-size: 13px;
    border-color: var(--cor-borda);
    font-family: var(--fonte-base);
    background-color: #fff;
    background-image: none;
    border-width: 0px;
    text-align: center;
    border-radius: var(--raio-padrao);
}
.infoCampoRequirido {color: #EF7B1D; display: block; margin-top: 10px; margin-bottom: 10px}

.links_rapidos{width: 100%; display: block;float: left; text-align: center;}
.links_rapidos img{clear: both; padding: 8px 0}
.links_rapidos a{text-decoration: none; color: var(--cor-texto)}
.link{width: 96px; height: 103px; background-image:url(../images/fundo_pag_ini.png);float: left; margin-left: 10px; margin-bottom: 10px}

/* Atalhos agrupados da pagina inicial do admin.
   Grade de 6 colunas: 1a linha com 3 grupos (2 colunas cada),
   2a linha com 2 grupos largos (3 colunas cada). */
.atalhos{
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
}
.atalhos-grupo{
    grid-column: span 2;
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: 10px;
    box-shadow: var(--sombra-padrao);
    padding: 12px 10px 8px;
}
.atalhos-grupo-largo{ grid-column: span 3; }
.atalhos-grupo-titulo{
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--cor-primaria);
    padding: 0 6px 8px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--cor-borda);
}
.atalhos a.atalho{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px;
    border-left: 3px solid transparent;
    border-radius: var(--raio-padrao);
    font-size: 12px;
    font-weight: 600;
    color: var(--cor-texto);
    text-decoration: none;
    transition: var(--transicao-padrao);
}
.atalhos a.atalho:hover,
.atalhos a.atalho:focus-visible{
    background: #e8f0f8;
    border-left-color: var(--cor-primaria);
    color: var(--cor-primaria);
    outline: none;
}
.atalho-texto{ flex: 1; }

/* Icone: "chip" colorido com SVG de linha aplicado como mascara,
   entao a cor do traco vem de `color` (currentColor). */
.atalho-icone{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 8px;
    background: #e8f0f8;
    color: var(--cor-primaria);
    transition: transform .15s ease-in-out;
}
.atalho-icone::before{
    content: "";
    width: 17px;
    height: 17px;
    background-color: currentColor;
    -webkit-mask: var(--ico) no-repeat center / contain;
    mask: var(--ico) no-repeat center / contain;
}
.atalho-icone.tom-pendente{ background: var(--cor-aviso-bg); color: #b26a00; }
.atalho-icone.tom-aprovado{ background: var(--cor-sucesso-bg); color: var(--cor-sucesso-texto); }
.atalhos a.atalho:hover .atalho-icone,
.atalhos a.atalho:focus-visible .atalho-icone{ transform: scale(1.1); }

.ico-pendente{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
.ico-aprovado{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.ico-cadastrar{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M19 8v6M22 11h-6'/%3E%3C/svg%3E"); }
.ico-alocar{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M12 14v6M9 17h6'/%3E%3C/svg%3E"); }
.ico-participantes{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.ico-mensagem{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.ico-minicurso{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h20M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3M7 21l5-5 5 5'/%3E%3C/svg%3E"); }
.ico-oficina{ --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }

/* Contador de pendencias ao lado do rotulo */
.atalho-contador{
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #b26a00;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}
/* Painel do evento no card de boas-vindas (pagina inicial do admin) */
.welcome-evento{
    flex-shrink: 0;
    margin-left: 20px;
    padding-left: 20px;
    border-left: 1px solid var(--cor-borda);
    text-align: right;
}
.welcome-evento-rotulo{
    display: block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--cor-texto-suave);
}
.welcome-evento-data{
    display: block;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 700;
    color: var(--cor-primaria);
}
.welcome-evento-status{
    display: inline-block;
    margin-top: 6px;
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--cor-primaria);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
}
.welcome-evento a.welcome-evento-link{
    display: block;
    margin-top: 8px;
    font-size: 11px;
    font-weight: 600;
    color: var(--cor-primaria-clara);
    text-decoration: none;
}
.welcome-evento a.welcome-evento-link:hover{ color: var(--cor-primaria); text-decoration: underline; }

.atualizar_status{width: 194px; height: 33px; background-image:url(../images/atualizar.jpg);background-repeat:no-repeat; padding-left: 60px; padding-top: 12px;}
.atualizar_status a{text-decoration: none; font-size: 14px; color: #466d96; font-weight: bold;}

.link_button{
    padding: 5px 10px;
    background-color: var(--cor-primaria);
    color: #fff;
    text-decoration: none;
    border-radius: var(--raio-padrao);
    transition: var(--transicao-padrao);
}
.link_button:hover{ background-color: var(--cor-primaria-hover); }

#usuarioLogado {float: right; color: var(--cor-primaria); font-weight: bold; margin-top: 5px}

/* Classes da pagina de ajuda */
ol.item{color: #666666; font-size: 15px; font-weight: bold;}
a.item{color: #666666; font-size: 15px; font-weight: bold;}
a.item:visited{text-decoration: none;}
ol.itemcabecalho{font-size: 12px;}
a.itemcabecalho{font-size: 12px;}
a.itemcabecalho:visited{text-decoration: none;}

ol.subitem{color: #666666; font-size: 14px; margin-left: 20px; font-weight: bold;}
a.subitem{color: #666666; font-size: 14px; font-weight: bold;}
a.subitem:visited{text-decoration: none;}
ol.subitemcabecalho{font-size: 12px;}
a.subitemcabecalho{font-size: 12px;}
a.subitemcabecalho:visited{text-decoration: none;}

.destaque{color: #900}

.alinhatopo{vertical-align: top}

/* MODERNIZADO - botao flutuante com gradiente CSS3 nativo */
#fixa {
    box-shadow: inset 0 1px 0 0 #bbdaf7;
    background: linear-gradient(to bottom, #79bbff 5%, #378de5 100%);
    background-color: #79bbff;
    border-radius: 6px;
    border: 1px solid #84bbf3;
    display: inline-block;
    color: #ffffff;
    font-family: var(--fonte-base);
    font-size: 15px;
    font-weight: bold;
    padding: 6px 24px;
    text-decoration: none;
    text-shadow: 1px 1px 0px #528ecc;
    position: fixed;
    margin-left: 420px;
    margin-top: 500px;
    left: 50%;
    top: 50%;
}
#fixa .linkfixo {
    color: #FFF;
    text-decoration: none;
    font-size: 15px;
}

/* ===== Login Administrativo =====
   Ja modernizado no original (radius/foco/transicao). Mantido
   intacto por especificidade de ID - sem risco de conflito. */
#form input[type="text"],
#form input[type="password"] {
	padding: 8px 10px;
	border: 1px solid var(--cor-borda);
	border-radius: var(--raio-padrao);
	font-family: var(--fonte-base);
	font-size: 13px;
	color: #333;
	background: #fff;
	box-shadow: inset 0 1px 3px rgba(0,0,0,0.08);
	transition: border-color 0.2s, box-shadow 0.2s;
	background-image: none;
}
#form input[type="text"]:focus,
#form input[type="password"]:focus {
	outline: none;
	border-color: #177a8a;
	box-shadow: inset 0 1px 2px rgba(0,0,0,0.06), 0 0 0 3px rgba(23,122,138,0.18);
}
#form select {
	padding: 7px 6px;
	border: 1px solid var(--cor-borda);
	border-radius: var(--raio-padrao);
	font-family: var(--fonte-base);
	font-size: 13px;
	color: #333;
	background: #fff;
	vertical-align: middle;
}
#form input[type="submit"] {
	padding: 9px 28px;
	background-color: var(--cor-primaria);
	color: #fff;
	border: none;
	border-radius: var(--raio-padrao);
	font-family: var(--fonte-base);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s;
	background-image: none;
}
#form input[type="submit"]:hover {
	background-color: var(--cor-primaria-hover);
}

/* =========================================================
   STATUS BADGES - aplique via styleClass no rich:column
   ========================================================= */
.badge {
    display: inline-block;
    border-radius: 12px;
    padding: 3px 10px;
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1.6;
    white-space: nowrap;
}
.badge-aprovado, .badge-sim {
    background-color: #E6F4EA;
    color: #137333;
}
.badge-reprovado, .badge-nao {
    background-color: #FCE8E6;
    color: #C5221F;
}
.badge-pendente {
    background-color: #FEF7E0;
    color: #B06000;
}

/* =========================================================
   PAGINACAO - rich:datascroller (RichFaces 3.3)
   ========================================================= */
.rich-datascroller-table,
.dr-dscr-table {
    border: none !important;
    background: transparent !important;
    margin: 24px auto !important;
}

.rich-datascroller-button,
.rich-datascroller-act,
.rich-datascroller-inact,
.dr-dscr-button,
.dr-dscr-act,
.dr-dscr-inact {
    min-width: 24px !important;
    height: 24px !important;
    line-height: 22px !important;
    text-align: center !important;
    vertical-align: middle !important;
    border-radius: 6px !important;
    border: 1px solid #D6E0EA !important;
    background-color: #FFFFFF !important;
    color: #173D5F !important;
    font-weight: 600 !important;
    font-size: 11px !important;
    padding: 0 3px !important;
    margin: 0 1px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

.rich-datascroller-act,
.dr-dscr-act {
    background-color: #173D5F !important;
    color: #FFFFFF !important;
    border-color: #173D5F !important;
}

.rich-datascroller-inact a,
.dr-dscr-inact a,
.rich-datascroller-button a {
    color: #173D5F !important;
    text-decoration: none !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 30px !important;
}

/* =========================================================
   LEGENDA
   ========================================================= */
.painel-legenda {
    background: #F8FAFC !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
    margin-top: 15px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px 20px !important;
    align-items: center !important;
}

.legenda-item {
    display: inline-flex !important;
    align-items: center !important;
    font-size: 12px !important;
    color: #475569 !important;
}

.legenda-sigla,
.legenda-item strong {
    background: #E2E8F0 !important;
    color: #1E293B !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
    font-weight: 700 !important;
    font-size: 11px !important;
    margin-right: 6px !important;
}

/* =========================================================
   FORCA GLOBAL - sobrescreve skin blueSky em todos os
   cabecalhos de tabela RichFaces (dr- e rich- prefixes)
   ========================================================= */
.dr-table th,
.dr-table-header,
.dr-table-headercell,
.dr-table-subheadercell,
.rich-table-header,
.rich-table-headercell,
.rich-table-subheadercell,
th.dr-table-headercell,
th.dr-table-subheadercell {
    background-color: #173D5F !important;
    background-image: none !important;
    color: #FFFFFF !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    padding: 10px 12px !important;
    border-color: #0F2B44 !important;
}

.dr-table th *,
.dr-table-headercell *,
.rich-table-headercell *,
.dr-table-subheadercell * {
    color: #FFFFFF !important;
    text-transform: uppercase !important;
}

/* Inputs dos filtros (filterBy) - texto preto independente do cabecalho */
.dr-table-subheadercell input,
.rich-table-subheadercell input,
.dr-table th input,
.rich-table th input {
    color: #000000 !important;
    background: #FFFFFF !important;
    text-transform: none !important;
}

/* Fonte e espacamento nas celulas de dados */
.dr-table-cell,
.rich-table-cell,
.dr-table td,
.rich-table td {
    font-family: 'Roboto', sans-serif !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    color: #2C3E50 !important;
    padding: 8px 10px !important;
}

/* Fonte nos cabecalhos */
.dr-table-headercell,
.rich-table-headercell,
.dr-table th,
.rich-table th {
    font-family: 'Roboto', sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.4px !important;
}

/* Tabela compacta para listagem de trabalhos aprovados */
.tabela-trabalhos-compacta .dr-table-cell,
.tabela-trabalhos-compacta .rich-table-cell,
.tabela-trabalhos-compacta .dr-table td,
.tabela-trabalhos-compacta .rich-table td {
    padding: 4px 6px !important;
    font-size: 10px !important;
    word-break: break-word;
}

.tabela-trabalhos-compacta .dr-table-headercell,
.tabela-trabalhos-compacta .rich-table-headercell,
.tabela-trabalhos-compacta .dr-table th,
.tabela-trabalhos-compacta .rich-table th {
    padding: 4px 6px !important;
    font-size: 11px !important;
}

/* Cores suaves para tabela de inscrição em minicursos/oficinas/palestras */
/* td-level: usado na página do aluno (rich:column com styleClass) */
.tabela-inscricao-minicurso td.col-disponivel,
.tabela-inscricao-minicurso td.rich-table-cell.col-disponivel {
    background-color: #E6F4EA !important;
    color: #137333 !important;
}
.tabela-inscricao-minicurso td.col-espera,
.tabela-inscricao-minicurso td.rich-table-cell.col-espera {
    background-color: #FFF9D8 !important;
}
/* tr-level: usado na página do professor (rich:columnGroup com styleClass) */
.tabela-inscricao-minicurso tr.col-disponivel td,
.tabela-inscricao-minicurso tr.col-disponivel td.rich-table-cell {
    background-color: #E6F4EA !important;
    color: #137333 !important;
}
.tabela-inscricao-minicurso tr.col-espera td,
.tabela-inscricao-minicurso tr.col-espera td.rich-table-cell {
    background-color: #FFF9D8 !important;
}

/* Modal de descrição de atividade (minicurso/oficina/palestra) */
.modal-ativ-label {
    font-weight: bold;
    color: #173D5F;
    width: 130px;
    padding: 4px 10px 4px 0;
    vertical-align: top;
    white-space: nowrap;
}
.modal-ativ-valor {
    padding: 4px 0;
    vertical-align: top;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Rodape de organizacoes (templates/organizacoes.jspx) */
hr.org-divisor{
    border: 0;
    border-top: 1px solid var(--cor-borda);
    margin: 24px 0 12px;
}
/* "Realizacao" / "Apoio": azul da marca + barrinha com as cores do logo do evento */
.org-titulo{
    display: inline-block;
    margin-top: 10px;
    padding-bottom: 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--cor-primaria);
    background: linear-gradient(90deg, #2f6fb5 0 25%, #3aa55d 25% 50%, #f2b705 50% 75%, #d64541 75% 100%) no-repeat center bottom / 36px 3px;
}
.org-linha{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
    padding: 8px 0 6px;
}
/* Cada logo ocupa um "slot" de tamanho fixo; object-fit encaixa sem distorcer,
   entao logos com proporcoes/margens diferentes ficam alinhados em grade. */
.org-logo{
    box-sizing: border-box;
    margin: 0;
    padding: 8px 10px;
    object-fit: contain;
    border-radius: 8px;
    vertical-align: middle;
    transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease;
}
.org-realizacao .org-logo{ width: 170px; height: 64px; }
/* Apoio: 5 por linha (5 + 4 centralizados) */
.org-apoio .org-logo{ width: 132px; height: 52px; }
.org-logo:hover{
    transform: scale(1.06);
    background-color: #f7fafc;
    box-shadow: 0 4px 12px rgba(23,61,95,.10);
}
@media (prefers-reduced-motion: reduce){ .org-logo{ transition: none; } .org-logo:hover{ transform: none; } }
@media screen and (max-width: 600px){ .org-realizacao .org-logo, .org-apoio .org-logo{ width: 110px; height: 44px; } }

/* =========================================================
   Efeitos de hover (banner, aviso, atividades, downloads)
   ========================================================= */
/* Banner: zoom leve cortado pela moldura */
#topo span{ width: 770px; overflow: hidden; border-radius: 8px 8px 0 0; }
#topo span img{ transition: transform .6s ease, filter .6s ease; }
#topo span:hover img{ transform: scale(1.025); filter: brightness(1.04) saturate(1.05); }

/* Card do aviso */
.texto-central .tc-aviso{ transition: transform .2s ease, box-shadow .2s ease; }
.texto-central .tc-aviso:hover{ transform: translateY(-2px); box-shadow: 0 8px 20px rgba(122,91,0,.12); }

/* Cartoes das principais atividades */
.texto-central .tc-item{ transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease; }
.texto-central .tc-item:hover{
    transform: translateX(3px);
    background: #fff;
    border-left-color: var(--cor-primaria-clara);
    box-shadow: 0 4px 14px rgba(23,61,95,.10);
}
.texto-central .tc-encerrado:hover{ border-left-color: #9aa6b2; box-shadow: 0 4px 12px rgba(0,0,0,.06); }

/* Tiles de download */
#downloads li a:hover{ transform: translateY(-1px); box-shadow: 0 4px 12px rgba(23,61,95,.10); }


/* Links e botoes da coluna direita do login */
.login-card span a::before{ transition: transform .2s ease, background-color .2s ease; }
.login-card span a:hover{ transform: translateX(3px); }
.login-card span a:hover::before{ transform: scale(1.15); }
.login-card .btn_login:hover{ transform: translateY(-1px); box-shadow: 0 4px 12px rgba(23,61,95,.20); }
.login-card .btn_login:active{ transform: translateY(0); box-shadow: none; }
/* Botao contornado (aluno): mantem a borda (inset) junto com a sombra do hover */
.login-card .btn_login + .btn_login:hover{ box-shadow: inset 0 0 0 1.5px var(--cor-primaria), 0 4px 12px rgba(23,61,95,.14); }
.login-card .btn_login + .btn_login:active{ box-shadow: inset 0 0 0 1.5px var(--cor-primaria); }

/* Quem prefere menos movimento (config. do sistema operacional) nao ve as animacoes */
@media (prefers-reduced-motion: reduce){
    #topo span img, .texto-central .tc-aviso, .texto-central .tc-item, #downloads li a,
    .login-card span a, .login-card span a::before, .login-card .btn_login{ transition: none; }
    #topo span:hover img, .texto-central .tc-aviso:hover, .texto-central .tc-item:hover, #downloads li a:hover,
    .login-card span a:hover, .login-card span a:hover::before, .login-card .btn_login:hover{ transform: none; }
}

/* -------------------------------------------------------------------------- */
/* Card de aviso amarelo suave (explicacoes ao participante e ao professor)    */
.aviso-suave{
    background: #FFF9E6;
    border: 1px solid #F3DFA2;
    border-left: 4px solid #E8B931;
    border-radius: var(--raio-padrao);
    padding: 12px 16px;
    margin: 4px 0 14px;
    color: #5C4A12;
    font-size: 12px;
    line-height: 1.55;
}
.aviso-suave .aviso-suave-titulo{ display: block; font-weight: 700; font-size: 13px; margin-bottom: 6px; color: #4A3B0C; }
.aviso-suave ul{ margin: 4px 0 6px 18px; padding: 0; }
.aviso-suave li{ margin: 2px 0; }
.aviso-suave p{ margin: 6px 0 0; }

/* Minha jornada do estudante (prefixo jrn-): atividades em grade, progresso e situacao */
.jrn{
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-padrao);
    padding: 14px 16px;
    margin-bottom: 14px;
}
.jrn-topo{ display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.jrn-titulo{ font-weight: 700; font-size: 14px; color: var(--cor-primaria); }
.jrn-cards{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.jrn-card{
    display: flex;
    align-items: center;
    gap: 10px;
    background: #F8FAFC;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-padrao);
    padding: 8px 10px;
}
.jrn-card.feita{ background: #F1F8F3; border-color: #CBE6D3; }
.jrn-num{
    flex: 0 0 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    border-radius: 50%;
    background: #E5EAF0;
    color: var(--cor-primaria);
    font-weight: 700;
    font-size: 14px;
}
.jrn-card.feita .jrn-num{ background: #2E8B57; color: #fff; }
.jrn-rotulo{ font-size: 11px; line-height: 1.3; color: #3d4c5a; }
.jrn-progresso{ height: 8px; background: #E5EAF0; border-radius: 4px; margin: 14px 0 6px; overflow: hidden; }
.jrn-progresso-barra{ height: 100%; background: #E8B931; border-radius: 4px; }
.jrn-progresso-barra.completa{ background: #2E8B57; }
.jrn-progresso-texto{ font-size: 12px; color: #5b6b7a; }
.status-certificado{ font-weight: 700; font-size: 11px; padding: 4px 12px; border-radius: 12px; white-space: nowrap; }
.status-certificado.liberado{ background: #E6F4EA; color: #1E6B3A; border: 1px solid #B7DFC4; }
.status-certificado.pendente{ background: #FFF4E0; color: #9A5B00; border: 1px solid #F3D19C; }

/* -------------------------------------------------------------------------- */
/* Painel de filtros (mesmo visual do Gerenciar Minicursos, que define inline) */
.tps-filtros{ background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 14px 16px; margin: 10px 0 12px 0; }
.tps-filtros-titulo{ font-size: 13px; font-weight: bold; color: #1e3a5f; margin-bottom: 10px; }
.tps-linha{ display: flex; flex-wrap: wrap; gap: 10px 12px; }
.tps-campo{ flex: 1 1 180px; min-width: 0; }
.tps-campo-largo{ flex: 2 1 280px; }
.tps-rotulo{ font-size: 11px; font-weight: bold; color: #64748b; text-transform: uppercase; letter-spacing: .3px; margin-bottom: 3px; }
.tps-campo input, .tps-campo select{ width: 100%; box-sizing: border-box; padding: 5px 8px; border: 1px solid #cbd5e1;
    border-radius: 6px; font-size: 13px; background: #ffffff; color: #334155; }
.tps-acoes{ margin-top: 12px; display: flex; gap: 8px; }
.tps-btn-sec{ padding: 5px 14px; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 13px; background: #ffffff;
    color: #475569; cursor: pointer; }

/* Texto de apoio abaixo do titulo da pagina */
.texto-intro{ color: #5b6b7a; font-size: 13px; margin: -4px 0 10px; }

/* Contador acima da tabela */
.contador-lista{ margin: 8px 0; font-size: 12px; font-weight: 700; color: #475569; }

/* Estado vazio (lista sem registros) */
.estado-vazio{
    background: #F8FAFC;
    border: 1px dashed #cbd5e1;
    border-radius: 10px;
    padding: 18px 20px;
    margin: 10px 0 14px;
    text-align: center;
    color: #5b6b7a;
    font-size: 13px;
    line-height: 1.5;
}
.estado-vazio .estado-vazio-titulo{ display: block; font-weight: 700; font-size: 14px; color: var(--cor-primaria); margin-bottom: 4px; }

/* Mudanca de perfil: opcoes em cartoes (h:selectOneRadio styleClass="perfil-opcoes") */
table.perfil-opcoes{ width: 100%; border-collapse: separate; border-spacing: 10px 0; margin: 0 -10px; }
table.perfil-opcoes td{ width: 50%; vertical-align: top; position: relative; padding: 0; }
table.perfil-opcoes input[type="radio"]{ position: absolute; left: 14px; top: 15px; margin: 0; }
table.perfil-opcoes label{
    display: block;
    height: 100%;
    box-sizing: border-box;
    padding: 12px 14px 12px 38px;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-padrao);
    background: #fff;
    font-size: 12px;
    line-height: 1.5;
    color: #3d4c5a;
    cursor: pointer;
}
table.perfil-opcoes input[type="radio"]:checked + label{ border-color: var(--cor-primaria); background: #F1F6FB; box-shadow: 0 0 0 1px var(--cor-primaria); }
.perfil-atual{ display: inline-block; font-weight: 700; font-size: 11px; padding: 3px 10px; border-radius: 12px;
    background: #E8EEF5; color: var(--cor-primaria); border: 1px solid #C9D6E4; }
.perfil-voluntario{
    margin: 14px 0;
    padding: 12px 14px;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-padrao);
    background: #F8FAFC;
}
.perfil-voluntario > label, .perfil-voluntario .perfil-voluntario-titulo{ font-weight: 700; color: var(--cor-primaria); font-size: 13px; }
.perfil-voluntario table td{ padding: 4px 8px 4px 0; vertical-align: top; font-size: 12px; }
