:root{
    --blue:#006c9c;
    --green:#159b57;
    --teal:#0099a8;
    --purple:#6b3fa0;
    --red:#d92828;
    --dark:#465166;
    --bg:#f3f6fb;
    --border:#dbe3ef;
}

*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    padding:0;
    font-family:Arial,Helvetica,sans-serif;
    background:var(--bg);
    color:#172033;
}

body{
    overflow-x:hidden;
}

.container{
    width:100%;
    max-width:1120px;
    margin:0 auto;
    padding:20px 16px 45px;
}

.top-card{
    background:#fff;
    border-radius:16px;
    overflow:hidden;
    margin-bottom:24px;
    box-shadow:0 10px 28px rgba(0,0,0,.06);
}

.top-card img{
    width:100%;
    display:block;
    object-fit:cover;
    max-height:420px;
}

.top-content{
    padding:20px 24px 26px;
    border-top:4px solid #f5c400;
}

.top-content h1{
    margin:0 0 10px;
    font-size:30px;
    line-height:1.2;
    color:#10233f;
    font-weight:800;
}

.muted{
    color:#68758a;
    font-size:15px;
    line-height:1.5;
}

.section{
    background:#fff;
    border:1px solid var(--border);
    border-radius:12px;
    margin:20px 0;
    overflow:hidden;
    box-shadow:0 4px 12px rgba(0,0,0,.03);
}

.section-title{
    padding:15px 18px;
    color:#fff;
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.3px;
}

.blue{background:var(--blue)}
.green{background:var(--green)}
.teal{background:var(--teal)}
.purple{background:var(--purple)}
.red{background:var(--red)}
.dark{background:var(--dark)}

.section-body{
    padding:22px;
}

.grid{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    gap:16px;
}

.col-2{grid-column:span 2}
.col-3{grid-column:span 3}
.col-4{grid-column:span 4}
.col-5{grid-column:span 5}
.col-6{grid-column:span 6}
.col-7{grid-column:span 7}
.col-8{grid-column:span 8}
.col-12{grid-column:span 12}

label.form-label{
    display:block;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    color:#63708a;
    margin-bottom:7px;
}

input,
select,
textarea{
    width:100%;
    border:1px solid var(--border);
    border-radius:8px;
    padding:12px 14px;
    font-size:14px;
    background:#fff;
    transition:.2s;
}

input:focus,
select:focus,
textarea:focus{
    border-color:#006c9c;
    outline:none;
    box-shadow:0 0 0 3px rgba(0,108,156,.12);
}

textarea{
    min-height:120px;
    resize:vertical;
}

.radio-row{
    display:flex;
    gap:18px;
    align-items:center;
    flex-wrap:wrap;
    padding-top:10px;
}

.radio-row label{
    font-size:14px;
    display:flex;
    align-items:center;
    gap:6px;
}

.radio-row input{
    width:auto;
}

.file-box{
    border:2px dashed #c9d5e5;
    background:#f8fbff;
    border-radius:10px;
    padding:14px;
}

.file-box small{
    display:block;
    color:#6d7789;
    margin-top:8px;
    font-size:12px;
}

.actions{
    display:flex;
    gap:14px;
    align-items:center;
    margin:30px 0;
}

.btn{
    border:0;
    border-radius:10px;
    padding:14px 22px;
    font-weight:700;
    cursor:pointer;
    text-decoration:none;
    display:inline-block;
    transition:.2s;
    font-size:14px;
}

.btn:hover{
    transform:translateY(-1px);
}

.btn-primary{
    background:#006c9c;
    color:#fff;
}

.btn-primary:hover{
    background:#00567d;
}

.btn-secondary{
    background:#e9eef7;
    color:#243247;
}

.alert{
    padding:14px;
    border-radius:8px;
    margin:12px 0;
}

.alert-danger{
    background:#fde8e8;
    color:#8a1f1f;
    border:1px solid #f7c3c3;
}

.alert-success{
    background:#e8f8ef;
    color:#155d33;
    border:1px solid #bbe7cd;
}

.hidden{
    display:none!important;
}

.admin-table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
}

.admin-table th,
.admin-table td{
    padding:12px;
    border-bottom:1px solid var(--border);
    text-align:left;
}

.admin-table th{
    background:#eef3f9;
}

.campo-erro{
    border-color:#d92828!important;
    background:#fff7f7!important;
}

.radio-row.campo-erro{
    border:1px solid #d92828;
    background:#fff7f7;
    padding:10px;
    border-radius:8px;
}

.texto-sucesso{
    display:block;
    margin-top:6px;
    color:#159b57;
    font-size:12px;
    font-weight:700;
}

.texto-erro{
    display:block;
    margin-top:6px;
    color:#d92828;
    font-size:12px;
    font-weight:700;
}

.etapa{
    animation:fade .25s ease;
}

@keyframes fade{
    from{
        opacity:0;
        transform:translateY(6px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

.etapa-acoes{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-top:22px;
}

.etapa-acoes .btn{
    min-width:150px;
}

.input-arquivo-escondido{
    position:absolute;
    opacity:0;
    pointer-events:none;
    width:1px;
    height:1px;
}

.upload-card .btn-anexar{
    width:100%;
    margin:8px 0;
}

.lista-arquivos{
    margin-top:10px;
}

.arquivo-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    background:#eef3f9;
    border:1px solid #dbe3ef;
    border-radius:8px;
    padding:9px 10px;
    margin-top:6px;
    font-size:13px;
}

.remover-arquivo{
    border:0;
    background:#d92828;
    color:#fff;
    width:26px;
    height:26px;
    border-radius:50%;
    cursor:pointer;
    font-weight:bold;
}

@media(max-width:900px){

    .grid{
        grid-template-columns:1fr;
    }

    .col-2,
    .col-3,
    .col-4,
    .col-5,
    .col-6,
    .col-7,
    .col-8,
    .col-12{
        grid-column:span 1;
    }

    .section-body{
        padding:16px;
    }

    .top-content{
        padding:18px;
    }

    .top-content h1{
        font-size:24px;
    }

    .top-card img{
        max-height:260px;
    }

    .actions{
        flex-direction:column;
    }

    .btn{
        width:100%;
        text-align:center;
    }

    .radio-row{
        gap:12px;
    }

    .radio-row label{
        width:100%;
    }
}

@media(max-width:760px){

    body{
        font-size:15px;
    }

    .container{
        padding:12px 12px 40px;
    }

    .section{
        margin:14px 0;
        border-radius:10px;
    }

    .section-title{
        font-size:12px;
        padding:13px 14px;
    }

    .section-body{
        padding:14px;
    }

    input,
    select,
    textarea{
        font-size:16px;
        padding:13px;
    }

    .etapa-acoes{
        flex-direction:column;
    }

    .etapa-acoes .btn{
        width:100%;
    }

    .top-content h1{
        font-size:22px;
    }

    .muted{
        font-size:14px;
    }

    .file-box{
        padding:12px;
    }
}
.upload-box{
    border:2px dashed #d7e1ee;
    border-radius:14px;
    padding:18px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    cursor:pointer;
    transition:.2s;
    background:#fff;
    min-height:92px;
}

.upload-box:hover{
    border-color:#006c9c;
    background:#f8fbff;
}

.upload-ok{
    border-color:#159b57!important;
    background:#f1fff6!important;
}

.upload-info strong{
    display:block;
    font-size:16px;
    color:#172033;
}

.upload-info small{
    color:#6d7789;
    display:block;
    margin-top:5px;
}

.upload-icon{
    font-size:30px;
    color:#006c9c;
}

.input-arquivo-escondido{
    display:none;
}

.arquivo-preview{
    margin-top:10px;
    border:1px solid #dbe3ef;
    border-radius:10px;
    background:#f8fbff;
    padding:12px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
}

.arquivo-preview-info strong{
    display:block;
    font-size:14px;
    word-break:break-word;
}

.arquivo-preview-info small{
    color:#6d7789;
}

.remover-arquivo{
    width:28px;
    height:28px;
    border-radius:50%;
    border:0;
    background:#d92828;
    color:#fff;
    font-size:18px;
    cursor:pointer;
    flex-shrink:0;
}

@media(max-width:760px){

    .upload-box{
        padding:15px;
    }

    .upload-info strong{
        font-size:14px;
    }

    .upload-icon{
        font-size:24px;
    }
}

/* =========================
   MODAL DE UPLOAD - VISUAL MODERNO
   ========================= */

.modal-upload{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.76);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:9999;
    padding:22px;
}

.modal-upload.hidden,
.modal-upload[style*="display: none"]{
    display:none!important;
}

.modal-upload-content{
    background:#fff;
    width:100%;
    max-width:620px;
    border-radius:22px;
    padding:0;
    text-align:left;
    box-shadow:0 28px 80px rgba(0,0,0,.34);
    overflow:hidden;
    position:relative;
    animation:modalUploadEntrada .22s ease-out;
    border:1px solid rgba(219,227,239,.9);
}

@keyframes modalUploadEntrada{
    from{
        opacity:0;
        transform:translateY(18px) scale(.97);
    }

    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }
}

.modal-upload-content::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    background:linear-gradient(90deg,#006c9c,#0099a8,#f5c400);
}

.modal-upload-content h2{
    margin:0;
    color:#10233f;
    font-size:27px;
    line-height:1.2;
    font-weight:800;
    padding:34px 34px 8px 118px;
    position:relative;
}

.modal-upload-content h2::before{
    content:"📄";
    position:absolute;
    left:34px;
    top:30px;
    width:64px;
    height:64px;
    border-radius:20px;
    background:linear-gradient(135deg,rgba(0,108,156,.12),rgba(0,153,168,.16));
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:32px;
    box-shadow:inset 0 0 0 1px rgba(0,108,156,.12);
}

.modal-upload-content p{
    margin:0;
    padding:0 34px 24px 118px;
    color:#475569;
    font-size:15.5px;
    line-height:1.45;
}

/* Área visual do input file */
.modal-upload-content input[type="file"]{
    display:block;
    width:calc(100% - 68px);
    margin:0 34px 12px;
    border:2px dashed #7fb2e8;
    border-radius:18px;
    padding:46px 22px;
    background:
        linear-gradient(180deg,rgba(0,108,156,.045),rgba(0,153,168,.035)),
        #f8fbff;
    color:#334155;
    cursor:pointer;
    text-align:center;
    transition:.2s ease;
}

.modal-upload-content input[type="file"]:hover{
    border-color:#006c9c;
    background:#eef8fc;
    box-shadow:0 10px 24px rgba(0,108,156,.10);
}

.modal-upload-content input[type="file"]:focus{
    outline:none;
    border-color:#006c9c;
    box-shadow:0 0 0 4px rgba(0,108,156,.14);
}

.status-upload-inicial{
    margin:8px 34px 0;
    padding:14px 16px;
    border:1px solid #dbe3ef;
    background:#f8fafc;
    border-radius:14px;
    color:#475569;
    font-size:14px;
    line-height:1.45;
}

.status-upload-inicial:empty{
    display:none;
}

.status-upload-inicial.texto-sucesso,
.status-upload-inicial.sucesso{
    background:#f1fff6;
    border-color:#b9ebcd;
    color:#155d33;
    font-weight:700;
}

.status-upload-inicial.texto-erro,
.status-upload-inicial.erro{
    background:#fff7f7;
    border-color:#f7c3c3;
    color:#8a1f1f;
    font-weight:700;
}

.lista-arquivos{
    margin:14px 34px 0;
}

.modal-upload-content .arquivo-item,
.modal-upload-content .arquivo-preview{
    background:#f8fbff;
    border:1px solid #dbe3ef;
    border-radius:14px;
    padding:13px 14px;
    margin-top:8px;
    box-shadow:0 6px 14px rgba(15,23,42,.04);
}

.modal-upload-actions{
    display:flex;
    gap:12px;
    justify-content:flex-end;
    align-items:center;
    margin:26px 0 0;
    padding:22px 34px 26px;
    border-top:1px solid #e5edf6;
    background:#fbfdff;
}

.modal-upload-actions .btn,
.modal-upload-actions button{
    min-width:150px;
    border-radius:13px;
    height:48px;
    padding:0 20px;
}

.modal-upload-actions .btn-primary,
.modal-upload-actions button[type="submit"],
.modal-upload-actions button.btn-primary{
    background:linear-gradient(135deg,#006c9c,#008fc8);
    color:#fff;
    box-shadow:0 10px 22px rgba(0,108,156,.25);
}

.modal-upload-actions .btn-primary:hover,
.modal-upload-actions button[type="submit"]:hover,
.modal-upload-actions button.btn-primary:hover{
    background:linear-gradient(135deg,#005f89,#007faf);
    transform:translateY(-1px);
    box-shadow:0 14px 28px rgba(0,108,156,.32);
}

.modal-upload-actions .btn-secondary,
.modal-upload-actions button[type="button"],
.modal-upload-actions button.btn-secondary{
    background:#eef3f9;
    color:#243247;
}

.modal-upload-actions .btn-secondary:hover,
.modal-upload-actions button[type="button"]:hover,
.modal-upload-actions button.btn-secondary:hover{
    background:#e2eaf5;
}

/* Mantém o fundo com blur somente quando o modal estiver aberto */
body.form-bloqueado .container{
    filter:blur(3px);
    pointer-events:none;
    user-select:none;
}

.remover-upload,
.remover-arquivo{
    width:30px;
    height:30px;
    border-radius:50%;
    border:0;
    background:#d92828;
    color:#fff;
    font-size:18px;
    cursor:pointer;
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;
}

.remover-upload:hover,
.remover-arquivo:hover{
    background:#b91c1c;
}

/* Classes opcionais para quando ajustarmos o script.js */
.upload-modal-fechar{
    position:absolute;
    top:18px;
    right:20px;
    width:38px;
    height:38px;
    border-radius:50%;
    border:1px solid #dbe3ef;
    background:#fff;
    color:#64748b;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(15,23,42,.10);
}

.upload-modal-fechar:hover{
    color:#10233f;
    background:#f8fbff;
}

.upload-dica-seguranca{
    margin:14px 34px 0;
    padding:13px 15px;
    border-radius:14px;
    background:#f1fff6;
    color:#155d33;
    border:1px solid #b9ebcd;
    font-size:13px;
    font-weight:700;
}

@media(max-width:760px){
    .modal-upload{
        padding:12px;
        align-items:flex-end;
    }

    .modal-upload-content{
        max-width:100%;
        border-radius:20px 20px 0 0;
    }

    .modal-upload-content h2{
        font-size:22px;
        padding:30px 24px 8px 94px;
    }

    .modal-upload-content h2::before{
        left:24px;
        top:27px;
        width:52px;
        height:52px;
        border-radius:16px;
        font-size:26px;
    }

    .modal-upload-content p{
        padding:0 24px 20px 94px;
        font-size:14px;
    }

    .modal-upload-content input[type="file"]{
        width:calc(100% - 48px);
        margin:0 24px 12px;
        padding:34px 16px;
    }

    .status-upload-inicial,
    .lista-arquivos,
    .upload-dica-seguranca{
        margin-left:24px;
        margin-right:24px;
    }

    .modal-upload-actions{
        flex-direction:column;
        padding:20px 24px 24px;
    }

    .modal-upload-actions .btn,
    .modal-upload-actions button{
        width:100%;
        min-width:0;
    }
}

@media(max-width:420px){
    .modal-upload-content h2{
        padding-left:24px;
        padding-top:96px;
        text-align:center;
    }

    .modal-upload-content h2::before{
        left:50%;
        transform:translateX(-50%);
    }

    .modal-upload-content p{
        padding-left:24px;
        text-align:center;
    }
}


/* =========================================================
   AJUSTE FINAL - MODAL DE UPLOAD MODERNO COMPATÍVEL COM JS
   ========================================================= */

.modal-open{ overflow:hidden; }

.modal-upload{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.76);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:9999;
    padding:22px;
}

.modal-upload[style*="display: none"]{ display:none!important; }

.modal-upload-content{
    width:100%;
    max-width:620px;
    background:#fff;
    border-radius:24px;
    padding:0;
    text-align:left;
    box-shadow:0 30px 80px rgba(0,0,0,.34);
    overflow:hidden;
    position:relative;
    animation:modalUploadEntrada .22s ease-out;
    border:1px solid rgba(219,227,239,.9);
}

@keyframes modalUploadEntrada{
    from{ opacity:0; transform:translateY(18px) scale(.97); }
    to{ opacity:1; transform:translateY(0) scale(1); }
}

.modal-upload-content::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    background:linear-gradient(90deg,#006c9c,#0099a8,#f5c400);
}

.modal-upload-content h2{
    margin:0;
    color:#10233f;
    font-size:27px;
    font-weight:800;
    padding:34px 72px 8px 118px;
    position:relative;
}

.modal-upload-content h2::before{
    content:"📄";
    position:absolute;
    left:34px;
    top:30px;
    width:64px;
    height:64px;
    border-radius:20px;
    background:linear-gradient(135deg,rgba(0,108,156,.12),rgba(0,153,168,.16));
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:32px;
}

.modal-upload-content p{
    margin:0;
    padding:0 72px 24px 118px;
    color:#475569;
    font-size:15.5px;
    line-height:1.45;
}

.upload-modal-fechar{
    position:absolute;
    top:18px;
    right:20px;
    width:38px;
    height:38px;
    border-radius:50%;
    border:1px solid #dbe3ef;
    background:#fff;
    color:#64748b;
    font-size:24px;
    cursor:pointer;
    z-index:2;
}

.upload-modal-fechar:hover{ color:#10233f; background:#f8fbff; }

.upload-drop-area{
    margin:0 34px;
    border:2px dashed #7fb2e8;
    border-radius:18px;
    background:#f8fbff;
    padding:34px 22px;
    text-align:center;
    cursor:pointer;
    transition:.2s ease;
}

.upload-drop-area:hover{ border-color:#006c9c; background:#eef8fc; }
.upload-drop-area.dragging{ border-color:#159b57; background:#effff5; }

.upload-drop-icon{ font-size:42px; margin-bottom:10px; }
.upload-drop-title{ color:#10233f; font-size:19px; font-weight:800; }
.upload-drop-subtitle{ color:#64748b; margin:8px 0 18px; }

.upload-dica-seguranca{
    margin:14px 34px 0;
    padding:13px 15px;
    border-radius:14px;
    background:#f1fff6;
    color:#155d33;
    border:1px solid #b9ebcd;
    font-size:13px;
    font-weight:700;
}

.status-upload-inicial{
    margin:12px 34px 0;
    padding:14px 16px;
    border:1px solid #dbe3ef;
    background:#f8fafc;
    border-radius:14px;
    color:#475569;
    font-size:14px;
}
.status-upload-inicial:empty{ display:none; }
.status-upload-inicial.texto-sucesso{ background:#f1fff6; border-color:#b9ebcd; color:#155d33; font-weight:700; }
.status-upload-inicial.texto-erro{ background:#fff7f7; border-color:#f7c3c3; color:#8a1f1f; font-weight:700; }

.upload-preview-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:20px 34px 12px;
}
.upload-preview-header strong{ color:#10233f; }
#contadorArquivosModal{ color:#64748b; font-size:13px; font-weight:700; }
#previewArquivosModal{ margin:0 34px; }

.upload-preview-empty{
    border:1px dashed #dbe3ef;
    border-radius:14px;
    padding:18px;
    text-align:center;
    color:#64748b;
    background:#fafcff;
}

.upload-preview-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    border:1px solid #dbe3ef;
    background:#f8fbff;
    border-radius:14px;
    padding:12px;
    margin-bottom:10px;
}

.upload-preview-left{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.upload-preview-icon{
    width:44px;
    height:44px;
    border-radius:12px;
    background:#e8f3fb;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    flex-shrink:0;
}

.upload-preview-info strong{ display:block; font-size:14px; word-break:break-word; }
.upload-preview-info small{ color:#64748b; }

.upload-preview-remove,
.remover-upload{
    width:32px;
    height:32px;
    border-radius:50%;
    border:0;
    background:#d92828;
    color:#fff;
    font-size:20px;
    cursor:pointer;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
}
.upload-preview-remove:hover,
.remover-upload:hover{ background:#b91c1c; }

.modal-upload-actions{
    display:flex;
    gap:12px;
    justify-content:flex-end;
    align-items:center;
    margin:26px 0 0;
    padding:22px 34px 26px;
    border-top:1px solid #e5edf6;
    background:#fbfdff;
}

.modal-file-input{
    position:absolute;
    opacity:0;
    width:1px;
    height:1px;
    pointer-events:none;
}

.modal-upload-actions .btn{
    min-width:150px;
    border-radius:13px;
    height:48px;
}

body.modal-open .container{
    filter:blur(3px);
    pointer-events:none;
    user-select:none;
}

@media(max-width:760px){
    .modal-upload{ padding:12px; align-items:flex-end; }
    .modal-upload-content{ border-radius:20px 20px 0 0; }
    .modal-upload-content h2{ font-size:22px; padding:30px 58px 8px 94px; }
    .modal-upload-content h2::before{ left:24px; top:27px; width:52px; height:52px; font-size:26px; }
    .modal-upload-content p{ padding:0 24px 20px 94px; }
    .upload-drop-area,
    .upload-dica-seguranca,
    .status-upload-inicial,
    .upload-preview-header,
    #previewArquivosModal{ margin-left:24px; margin-right:24px; }
    .modal-upload-actions{ flex-direction:column; padding:20px 24px 24px; }
    .modal-upload-actions .btn{ width:100%; }
}


/* Ajustes novos: filhos, ajudantes e aviso da área */
.alert-info{
    background:#eef8fc;
    color:#0f4f6b;
    border:1px solid #b9e3f0;
}

.subsection-box{
    border:1px solid #dbe3ef;
    border-radius:14px;
    background:#fbfdff;
    padding:18px;
    margin-top:6px;
}

.subsection-box h3{
    margin:0 0 8px;
    color:#10233f;
    font-size:18px;
}

.filhos-grid{
    margin:14px 0 18px;
}

.upload-progress-wrap {
    width: 100%;
    margin-top: 6px;
}

.upload-progress-text {
    font-size: 13px;
    font-weight: 700;
    color: #155d33;
    margin-bottom: 8px;
}

.upload-progress-bar {
    width: 100%;
    height: 12px;
    background: #dbe3ef;
    border-radius: 999px;
    overflow: hidden;
}

.upload-progress-fill {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, #0d6efd, #20c997);
    border-radius: 999px;
    transition: width .2s ease;
}