*{box-sizing:border-box}body{margin:0;background:#f3f6fa;color:#152238;font-family:Inter,Segoe UI,Arial,sans-serif}.shell{display:flex;min-height:100vh}aside{width:240px;background:#0b1526;color:#fff;padding:28px 18px;position:fixed;inset:0 auto 0 0}.brand{font-weight:800;letter-spacing:1.5px;font-size:19px;margin:5px 12px 38px}.brand span{font-weight:400;color:#55b6ff}.brand.big{font-size:28px;margin:0 0 28px}nav a{display:block;color:#b9c7da;text-decoration:none;padding:13px 14px;border-radius:9px;margin:4px 0}nav a:hover{background:#16263e;color:#fff}main{margin-left:240px;width:calc(100% - 240px);padding:28px 34px}header{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}header h1{margin:5px 0 0;font-size:28px}header small{letter-spacing:1.4px;color:#6f7f95}.user{background:#fff;border:1px solid #e0e7ef;padding:10px 14px;border-radius:9px}.grid{display:grid;gap:18px}.cards{grid-template-columns:repeat(6,1fr)}.card,.panel,.filecard,.hero{background:#fff;border:1px solid #e1e8f0;border-radius:14px;box-shadow:0 5px 18px rgba(20,40,70,.04)}.card{padding:22px}.card small{display:block;color:#718198;font-weight:700}.card strong{font-size:30px;display:block;margin-top:12px}.panel{padding:22px;margin-top:20px;overflow:auto}.panel h2{margin-top:0}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.formgrid textarea{grid-column:1/-1;min-height:90px}.formgrid button{width:max-content}input,textarea,select{width:100%;padding:12px;border:1px solid #d5dee9;border-radius:9px;font:inherit;background:#fff}button,.btn{border:0;background:#1469d7;color:#fff;padding:11px 16px;border-radius:9px;cursor:pointer;text-decoration:none;display:inline-block;font-weight:700}button.danger{background:#c63b45}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #edf1f5;font-size:14px}th{color:#68788e;font-size:12px;text-transform:uppercase}.badge{font-size:11px;font-weight:800;background:#e8f7ee;padding:5px 8px;border-radius:20px}.files{grid-template-columns:repeat(3,1fr)}.filecard{padding:20px;display:flex;flex-direction:column;gap:10px}.filecard small,.filecard span{color:#718198}.hero{padding:26px;display:flex;justify-content:space-between;align-items:center}.expiry{background:#eef6ff;padding:14px;border-radius:10px}.alert{padding:14px;border-radius:9px;margin-bottom:15px}.alert.success{background:#e8f7ee;color:#176638}.alert.error{background:#fdeced;color:#9b2933}.login{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#0b1526,#16345c)}.loginbox{width:min(430px,92vw);background:#fff;padding:38px;border-radius:18px;box-shadow:0 20px 60px #0005}.loginbox h1{margin-bottom:5px}.loginbox form{display:grid;gap:10px;margin-top:24px}.loginbox button{margin-top:8px}.loginbox label{font-size:13px;font-weight:700;color:#52657c}code{font-size:11px}@media(max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}.files{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){aside{position:static;width:100%;height:auto}.shell{display:block}main{margin:0;width:100%;padding:20px}.formgrid,.files,.cards{grid-template-columns:1fr}.hero{display:block}.user{display:none}}.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px}.section-head h2{margin-bottom:5px}.section-head small{color:#718198}.searchbar{display:flex;gap:10px;align-items:center;margin:14px 0}.searchbar input{flex:1}.btn.secondary{background:#64748b}.badge.inactive{background:#eef1f4;color:#667085}.table-wrap{overflow:auto}.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:9999;padding:30px;overflow:auto}.modal.open{display:flex;align-items:center;justify-content:center}.modal-card{position:relative;width:min(760px,100%);background:#fff;border-radius:14px;padding:28px;box-shadow:0 20px 70px rgba(0,0,0,.35);color:#172033}.modal-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:30px;cursor:pointer;color:#666}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.modal-card label{display:flex;flex-direction:column;gap:6px}.modal-card select{padding:10px;border-radius:7px;border:1px solid #ccc}.modal-card textarea{min-height:90px}.searchbar .btn{white-space:nowrap}@media(max-width:760px){.section-head,.searchbar{display:flex;flex-direction:column;align-items:stretch}.searchbar button,.searchbar .btn{width:100%}}
/* PortalFTP V7.1 - Gerenciador de Arquivos */
.files-workspace{
display:grid  !important;
grid-template-columns:460px minmax(0, 1fr) !important;
gap:24px  !important;
align-items:start
}
.files-tree{padding:0;
position:sticky;top:20px;
max-height:calc(100vh - 40px);
overflow:hidden}.files-tree-head{display:flex;
justify-content:space-between;
align-items:center;
padding:18px;
border-bottom:1px solid #e6edf5}.files-tree-head strong{display:block;font-size:15px}.files-tree-head small{display:block;color:#718198;margin-top:4px}.mini-plus{width:38px;height:38px;padding:0;font-size:24px}.tree-scroll{padding:12px 8px 12px 10px;overflow:auto;max-height:calc(100vh - 180px)}.folder-node{margin-left:calc(var(--level) * 14px)}.folder-link{display:flex;align-items:center;gap:7px;padding:10px 9px;border-radius:8px;text-decoration:none;color:#24344d;font-size:14px;min-width:0}.folder-link:hover{background:#f2f6fb}.folder-link.active{background:#eaf2ff;color:#1263c7;font-weight:800}.folder-toggle{width:12px;color:#728198;font-size:12px}.folder-toggle.empty{visibility:hidden}.folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-actions{padding:0 0 6px 36px}.link-button{padding:0;border:0;background:none;color:#718198;font-size:11px;font-weight:500}.link-button:hover{text-decoration:underline;color:#1469d7}.new-folder-wide{margin:10px 16px 16px;width:calc(100% - 32px);background:#f2f6fb;color:#1d4f88;border:1px solid #d8e4f1}.files-main{min-width:0}.files-breadcrumb{display:flex;gap:8px;align-items:center;margin:2px 0 12px;color:#718198;font-size:14px}.files-breadcrumb a{color:#1263c7;text-decoration:none}.folder-header-card{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:0}.folder-title{font-size:23px;font-weight:800;margin-bottom:5px}.folder-header-card small{color:#718198}.folder-header-actions{display:flex;gap:8px;align-items:center}.upload-card{margin-top:18px}.folder-upload-form{display:grid;gap:16px}.dropzone{border:2px dashed #cbd8e7;border-radius:14px;padding:24px;text-align:center;background:#f9fbfe;display:grid;justify-items:center;gap:8px;transition:.15s}.dropzone.drag{border-color:#1469d7;background:#eef6ff}.drop-icon{font-size:28px}.dropzone small{color:#718198;max-width:700px}.dropzone input[type=file]{display:none}.upload-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.upload-fields label{display:grid;gap:6px;font-size:13px;font-weight:700;color:#52657c}.upload-fields .full{grid-column:1/-1}.upload-fields textarea{min-height:80px;resize:vertical}.upload-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.upload-footer span{color:#718198;font-size:13px}.upload-progress{margin-top:15px}.upload-progress>div:first-child{display:flex;justify-content:space-between}.progress-track{height:12px;background:#e8edf3;border-radius:99px;overflow:hidden;margin-top:8px}.progress-track #progressBar{height:100%;width:0;transition:width .15s;background:#1469d7}.folder-chip{display:inline-block;background:#f1f5f9;border:1px solid #e1e8f0;padding:4px 7px;border-radius:7px;font-size:12px}.file-actions{white-space:nowrap;display:flex;gap:6px;align-items:center}.file-actions form{display:inline}.empty-state{text-align:center;padding:35px;color:#718198}.modal-card label{font-size:13px;font-weight:700;color:#52657c}.modal-card label input,.modal-card label select{margin-top:6px}.modal-card .danger{background:#c63b45}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:1050px){.files-workspace{grid-template-columns:240px minmax(0,1fr)}.upload-fields{grid-template-columns:1fr}.upload-fields .full{grid-column:auto}}@media(max-width:760px){.files-workspace{grid-template-columns:1fr}.files-tree{position:static;max-height:none}.tree-scroll{max-height:300px}.folder-header-card{display:block}.folder-header-actions{margin-top:14px}.upload-footer{display:block}.upload-footer button{margin-top:10px;width:100%}.file-actions{white-space:normal;flex-wrap:wrap}}

/* =========================================================
   PORTALFTP V7.2 - FILA DE UPLOAD INDIVIDUAL
   ========================================================= */
.upload-limit{margin-top:8px;font-size:12px;color:#64748b}
.selected-files{margin-top:18px;border:1px solid #dbe4ef;border-radius:10px;background:#f8fafc;overflow:hidden}
.selected-files-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 15px;background:#f1f5f9;border-bottom:1px solid #dbe4ef}
.selected-files-header>div{display:flex;align-items:center;gap:10px}
.selected-files-header strong{color:#0f172a;font-size:14px}
#selectedFilesCount{background:#dbeafe;color:#075bd8;border-radius:20px;padding:3px 9px;font-size:12px;font-weight:700}
.clear-files{border:0;background:transparent;color:#dc2626;font-size:12px;cursor:pointer}
.clear-files:hover{text-decoration:underline}
.file-queue{display:flex;flex-direction:column}
.upload-file{padding:14px 16px;background:#fff;border-bottom:1px solid #e5e7eb}
.upload-file:last-child{border-bottom:0}
.upload-file-top{display:flex;align-items:center;justify-content:space-between;gap:15px}
.upload-file-info{display:flex;align-items:center;gap:10px;min-width:0}
.upload-file-icon{width:34px;min-width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#eef4ff;border-radius:7px;font-size:17px}
.upload-file-name{min-width:0}
.upload-file-name strong{display:block;color:#1e293b;font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.upload-file-size{display:block;margin-top:3px;color:#64748b;font-size:11px}
.upload-file-percent{min-width:45px;text-align:right;color:#475569;font-size:12px;font-weight:700}
.upload-file-progress{height:8px;margin-top:10px;background:#e5e7eb;border-radius:20px;overflow:hidden}
.upload-file-progress-bar{width:0;height:100%;background:#1769e0;border-radius:20px;transition:width .15s ease}
.upload-file-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;font-size:11px;color:#64748b}
.upload-file.done .upload-file-progress-bar{background:#16a34a}
.upload-file.done .upload-file-status{color:#15803d}
.upload-file.error .upload-file-progress-bar{background:#dc2626}
.upload-file.error .upload-file-status{color:#dc2626}
#progressDetail{margin-top:5px;font-size:12px;color:#64748b}

@media(max-width:760px){
    .selected-files-header{align-items:flex-start;flex-direction:column}
    .upload-file-top{align-items:flex-start}
    .upload-file-status{align-items:flex-start;flex-direction:column}
}

/* =========================================================
   PORTALFTP - ÁRVORE DE PASTAS
   ========================================================= */

/* ÁREA DA ÁRVORE */
.folder-tree{
    width:100%;
    min-width:0;
    max-width:none;
    box-sizing:border-box;
    padding:10px 8px;
    text-align:left;
}

/* CADA LINHA */
.folder-row{
    display:flex;
    align-items:center;
    width:100%;
    min-width:0;
    position:relative;
}

/* BOTÃO DA SETA */
.folder-toggle{
    width:24px !important;
    min-width:24px !important;
    height:34px !important;

    margin:0 !important;
    padding:0 !important;

    border:0 !important;
    border-radius:6px !important;
    background:transparent !important;

    color:#64748b !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;

    font-size:12px !important;
    line-height:1 !important;

    box-shadow:none !important;
    cursor:pointer !important;
}

/* ESPAÇO QUANDO NÃO EXISTE SUBPASTA */
.folder-toggle-placeholder{
    width:24px;
    min-width:24px;
    height:34px;
    display:block;
}

/* HOVER DA SETA */
.folder-toggle:hover{
    background:#eef4fb !important;
    color:#1263c7 !important;
}

.folder-toggle:focus-visible{
    outline:2px solid #93c5fd !important;
    outline-offset:1px !important;
}

/* SETA */
.folder-arrow{
    display:block;
    font-size:11px !important;
    line-height:1 !important;
    color:currentColor !important;
    transform-origin:center;
    transition:transform .15s ease;
}

/* LINHA DA PASTA */
.folder-link{
    flex:1;
    min-width:0;

    display:flex;
    align-items:center;

    gap:8px !important;

    padding:8px 9px !important;
    border-radius:8px;

    text-decoration:none;
    text-align:left !important;
}

/* ÍCONE */
.folder-icon{
    flex:0 0 18px;
    width:18px;

    font-size:15px;
    line-height:1;
}

/* NOME DA PASTA */
.folder-name{
    flex:1;
    min-width:0;

    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;

    text-align:left !important;
    margin:0 !important;
}

/* CONTADOR */
.folder-count{
    flex:0 0 auto;

    min-width:22px;
    height:22px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-left:auto;

    padding:2px 7px;

    border-radius:999px;

    background:#eef2f7;
    color:#64748b;

    font-size:11px;
    font-weight:800;
    line-height:1;
}

/* PASTA ATIVA */
.folder-link.active{
    background:#eaf2ff;
    color:#1263c7;
    font-weight:800;
}

.folder-link.active .folder-count{
    background:#dbeafe;
    color:#1263c7;
}

/* FILHOS */
.folder-children{
    border-left:1px solid #e5ebf3;
    margin-left:22px;
    padding-left:8px;
}

/* ESCONDE SUBPASTAS */
.folder-children[hidden]{
    display:none !important;
}

/* BOTÃO NOVA PASTA */
.new-folder,
.new-folder-wide{
    width:calc(100% - 20px) !important;

    margin:12px 10px 14px !important;

    text-align:center;

    background:#f2f6fb !important;
    color:#1d4f88 !important;

    border:1px solid #d8e4f1 !important;
}

/* PortalFTP V7.3.6 - melhorias na tela Files */
.folder-count{margin-left:auto;min-width:22px;text-align:center;padding:2px 7px;border-radius:999px;background:#eef2f7;color:#64748b;font-size:11px;font-weight:800;line-height:18px}.folder-link.active .folder-count{background:#dbeafe;color:#1263c7}.file-download-link{color:#1469d7;text-decoration:none}.file-download-link:hover{text-decoration:underline}.file-inactive{color:#7b8798;opacity:.72}

/* =====================================================
   PORTALFTP - MENU DE PASTAS 460px + RESPONSIVO
   ===================================================== */

/* DESKTOP */
.files-workspace{
    display:grid !important;
    grid-template-columns:460px minmax(0, 1fr) !important;
    gap:24px !important;
    align-items:start !important;
}

/* Painel lateral */
.files-tree{
    width:100% !important;
    min-width:0 !important;
    max-width:460px !important;
}

/* Área interna da árvore */
.tree-scroll{
    width:100% !important;
    padding:12px !important;
    overflow-x:hidden !important;
}

/* Cada nível */
.folder-node{
    width:100% !important;
    margin-left:0 !important;
}

/* Linha da pasta */
.folder-row{
    display:flex !important;
    align-items:center !important;
    width:100% !important;
    min-width:0 !important;
}

/* Seta */
.folder-toggle,
.folder-toggle-placeholder{
    width:28px !important;
    min-width:28px !important;
    height:38px !important;
    flex:0 0 28px !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}

/* Link da pasta */
.folder-link{
    flex:1 !important;
    min-width:0 !important;
    width:auto !important;

    display:flex !important;
    align-items:center !important;

    gap:10px !important;
    padding:10px 12px !important;

    font-size:15px !important;
}

/* Ícone */
.folder-icon{
    flex:0 0 22px !important;
    width:22px !important;
    min-width:22px !important;

    font-size:18px !important;
}

/* Nome da pasta */
.folder-name{
    flex:1 1 auto !important;
    min-width:0 !important;

    margin:0 !important;
    padding:0 !important;

    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;

    text-align:left !important;
}

/* Contador */
.folder-count{
    flex:0 0 auto !important;
    margin-left:auto !important;

    min-width:32px !important;
    height:28px !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;

    padding:3px 8px !important;

    border-radius:20px !important;

    font-size:12px !important;
}

/* Subpastas */
.folder-children{
    margin-left:18px !important;
    padding-left:12px !important;

    border-left:1px solid #e2e8f0 !important;
}

/* Botão Nova Pasta */
.new-folder-wide{
    width:calc(100% - 32px) !important;

    margin:16px !important;
    padding:13px !important;

    font-size:15px !important;
}


/* =====================================================
   TELAS MÉDIAS - NOTEBOOK / TABLET
   ===================================================== */

@media(max-width:1200px){

    .files-workspace{
        grid-template-columns:340px minmax(0, 1fr) !important;
        gap:20px !important;
    }

    .files-tree{
        max-width:340px !important;
    }

}


/* =====================================================
   TABLET
   ===================================================== */

@media(max-width:900px){

    .files-workspace{
        grid-template-columns:300px minmax(0, 1fr) !important;
        gap:16px !important;
    }

    .files-tree{
        max-width:300px !important;
    }

    .folder-link{
        padding:9px 8px !important;
        gap:7px !important;
        font-size:14px !important;
    }

    .folder-toggle,
    .folder-toggle-placeholder{
        width:24px !important;
        min-width:24px !important;
        flex:0 0 24px !important;
    }

    .folder-children{
        margin-left:12px !important;
        padding-left:6px !important;
    }

}


/* =====================================================
   CELULAR
   ===================================================== */

@media(max-width:760px){

    .files-workspace{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:16px !important;
    }

    .files-tree{
        width:100% !important;
        max-width:none !important;

        position:static !important;

        max-height:none !important;
    }

    .tree-scroll{
        max-height:350px !important;
        overflow-y:auto !important;
    }

    .folder-link{
        font-size:15px !important;
        padding:10px !important;
    }

    .folder-name{
        overflow:visible !important;
        text-overflow:clip !important;
        white-space:normal !important;
    }

}

/* =========================================================
   PORTALFTP V8.0
   ÁRVORE DE PASTAS E PERMISSÕES
   Regras isoladas para evitar interferência entre páginas.
   ========================================================= */

/* O files.php mantém 460px no desktop. */
.files-workspace{
    grid-template-columns:460px minmax(0, 1fr) !important;
}

/* assign.php: mesma largura e comportamento do gerenciador. */
.assign-workspace{
    display:grid;
    grid-template-columns:460px minmax(0, 1fr);
    gap:24px;
    align-items:start;
    max-width:100%;
}

.assign-tree{
    width:100%;
    min-width:0;
    max-width:460px;
    padding:0;
    position:sticky;
    top:20px;
    max-height:calc(100vh - 40px);
    overflow:hidden;
}

.assign-tree-scroll{
    max-height:calc(100vh - 180px);
}

/* A árvore é idêntica visualmente em files.php e assign.php. */
.files-tree .folder-row,
.assign-tree .folder-row{
    display:flex;
    align-items:center;
    width:100%;
    min-width:0;
}

.files-tree .folder-node,
.assign-tree .folder-node{
    width:100%;
    margin-left:0 !important;
}

.files-tree .folder-toggle,
.files-tree .folder-toggle-placeholder,
.assign-tree .folder-toggle,
.assign-tree .folder-toggle-placeholder{
    width:28px !important;
    min-width:28px !important;
    height:38px !important;
    flex:0 0 28px !important;
    display:flex !important;
    align-items:center;
    justify-content:center;
}

.files-tree .folder-toggle,
.assign-tree .folder-toggle{
    border:0;
    background:transparent;
    color:#64748b;
    cursor:pointer;
    padding:0;
}

.files-tree .folder-toggle:hover,
.assign-tree .folder-toggle:hover{
    color:#1263c7;
    background:#eef4fb;
    border-radius:6px;
}

.files-tree .folder-link,
.assign-tree .folder-link{
    flex:1 1 auto !important;
    min-width:0 !important;
    width:auto !important;
    display:flex !important;
    align-items:center;
    gap:10px !important;
    padding:10px 12px !important;
    border-radius:8px;
}

.files-tree .folder-icon,
.assign-tree .folder-icon{
    flex:0 0 22px !important;
    width:22px !important;
    min-width:22px !important;
    font-size:18px;
}

.files-tree .folder-name,
.assign-tree .folder-name{
    flex:1 1 auto !important;
    min-width:0 !important;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    text-align:left;
}

.files-tree .folder-count,
.assign-tree .folder-count{
    flex:0 0 auto !important;
    margin-left:auto;
    min-width:32px;
    height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:3px 8px;
    border-radius:999px;
    background:#eef2f7;
    color:#64748b;
    font-size:12px;
    font-weight:800;
    line-height:1;
}

.files-tree .folder-link.active .folder-count,
.assign-tree .folder-link.active .folder-count{
    background:#dbeafe;
    color:#1263c7;
}

.files-tree .folder-children,
.assign-tree .folder-children{
    margin-left:18px !important;
    padding-left:12px !important;
    border-left:1px solid #e2e8f0;
}

.files-tree .folder-children[hidden],
.assign-tree .folder-children[hidden]{
    display:none !important;
}

/* Página de permissões. */
.assign-page{
    display:grid;
    gap:20px;
}

.assign-visitor-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.assign-visitor-card h2{
    margin:4px 0 6px;
}

.assign-visitor-card p{
    margin:0;
    color:#64748b;
}

.assign-summary{
    margin-left:auto;
    display:flex;
    align-items:baseline;
    gap:6px;
    color:#52657c;
}

.assign-summary strong{
    font-size:22px;
    color:#1263c7;
}

.assigned-files-paths{
    margin-top:10px;
    display:grid;
    gap:4px;
    font-size:12px;
    line-height:1.4;
    color:#64748b;
}

.assigned-file-path{
    overflow-wrap:anywhere;
}

.assign-main{
    min-width:0;
    display:grid;
    gap:16px;
}

.assign-breadcrumb{
    display:flex;
    align-items:center;
    gap:8px;
    color:#718198;
    font-size:14px;
}

.assign-breadcrumb a{
    color:#1263c7;
    text-decoration:none;
}

.assign-folder-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.assign-folder-header small{
    color:#64748b;
}

.permission-legend{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    font-size:12px;
    color:#64748b;
}

.permission-dot,
.permission-status i{
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:50%;
    margin-right:5px;
}

.permission-dot.granted,
.permission-status.granted i{background:#16a34a;}

.permission-dot.revoked,
.permission-status.not-granted i{background:#94a3b8;}

.assign-search{
    margin:0;
}

.permission-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}

.permission-selection{
    display:grid;
    gap:3px;
}

.permission-selection span{
    color:#64748b;
    font-size:13px;
}

.permission-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.permission-grant,
.permission-revoke{
    white-space:nowrap;
}

.permission-list{
    padding:0;
    overflow:hidden;
}

.permission-list-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 20px;
    border-bottom:1px solid #e6edf5;
}

.permission-list-head small{
    color:#64748b;
    margin-left:6px;
}

.select-page{
    display:flex;
    align-items:center;
    gap:7px;
    cursor:pointer;
    font-size:13px;
    color:#52657c;
}

.permission-file{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 20px;
    border-bottom:1px solid #eef2f7;
    cursor:pointer;
    transition:background .15s ease;
}

.permission-file:last-child{
    border-bottom:0;
}

.permission-file:hover,
.permission-file.is-selected{
    background:#f7fbff;
}

.permission-file.is-granted{
    background:#f0fdf4;
}

.permission-file input{
    flex:0 0 auto;
}

.permission-file-icon{
    flex:0 0 28px;
    font-size:20px;
}

.permission-file-info{
    flex:1 1 auto;
    min-width:0;
    display:grid;
    gap:4px;
}

.permission-file-info strong,
.permission-file-info small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.permission-file-info small{
    color:#64748b;
}

.permission-status{
    flex:0 0 auto;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
}

.permission-status.granted{color:#15803d;}
.permission-status.not-granted{color:#64748b;}

.permission-empty{
    padding:48px 20px;
}

@media (max-width:1200px){
    .files-workspace,
    .assign-workspace{
        grid-template-columns:340px minmax(0, 1fr) !important;
        gap:20px !important;
    }

    .files-tree,
    .assign-tree{
        max-width:340px !important;
    }
}

@media (max-width:900px){
    .files-workspace,
    .assign-workspace{
        grid-template-columns:300px minmax(0, 1fr) !important;
        gap:16px !important;
    }

    .files-tree,
    .assign-tree{
        max-width:300px !important;
    }

    .files-tree .folder-children,
    .assign-tree .folder-children{
        margin-left:12px !important;
        padding-left:6px !important;
    }
}

@media (max-width:760px){
    .files-workspace,
    .assign-workspace{
        grid-template-columns:1fr !important;
        gap:16px !important;
    }

    .files-tree,
    .assign-tree{
        width:100% !important;
        max-width:none !important;
        position:static !important;
        max-height:none !important;
    }

    .tree-scroll,
    .assign-tree-scroll{
        max-height:350px !important;
        overflow-y:auto !important;
    }

    .assign-visitor-card,
    .assign-folder-header,
    .permission-toolbar{
        align-items:stretch;
        flex-direction:column;
    }

    .assign-summary{
        margin-left:0;
    }

    .permission-list-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .permission-file{
        align-items:flex-start;
        flex-wrap:wrap;
    }

    .permission-status{
        width:100%;
        margin-left:40px;
    }

    .files-tree .folder-name,
    .assign-tree .folder-name{
        white-space:normal;
    }
}
/* =========================================================
   V8.0 - CORREÇÃO DA LISTA DE ARQUIVOS NO ASSIGN.PHP
   ========================================================= */

/* Garante que todo o conteúdo da lista seja visível */
.assign-main .file-row,
.assign-main .file-item,
.assign-main .assign-file-row {
    color: #243447 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Nome do arquivo */
.assign-main .file-name,
.assign-main .file-title,
.assign-main .file-info,
.assign-main .file-row strong,
.assign-main .file-row span,
.assign-main .file-item strong,
.assign-main .file-item span,
.assign-main .assign-file-row strong,
.assign-main .assign-file-row span {
    color: #243447 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Links dos arquivos */
.assign-main a {
    color: #243447 !important;
    opacity: 1 !important;
}

/* Ícones */
.assign-main .file-icon,
.assign-main .icon {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Linhas da lista */
.assign-main .file-row,
.assign-main .file-item,
.assign-main .assign-file-row {
    display: flex !important;
    align-items: center !important;
    min-height: 62px !important;
}

/* Remove qualquer regra que esteja escondendo texto */
.assign-main [hidden] {
    display: none !important;
}

.assign-main .file-name:not([hidden]),
.assign-main .file-info:not([hidden]),
.assign-main strong:not([hidden]),
.assign-main span:not([hidden]) {
    display: inline !important;
}
/* =========================================================
   PortalFTP V11.0 - contratos nos cards do visitante
   ========================================================= */
.portal-filecard{position:relative;min-width:0}.portal-filecard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-height:44px}.portal-filecard-head>strong{min-width:0;overflow-wrap:anywhere}.portal-contracts{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:12px;font-weight:800;color:#16283f;line-height:1.15}.portal-contracts span{white-space:nowrap}.portal-contracts .portal-contract-empty{color:#8a97a8;font-weight:600}.portal-filecard>.btn{margin-top:auto;text-align:center}@media(max-width:760px){.portal-filecard-head{gap:10px}.portal-contracts{font-size:11px}}

/* V11.3 - identidade da empresa na tela de login */
.login-site-name{margin-bottom:8px!important;overflow-wrap:anywhere}.login-company-name{font-size:14px;font-weight:800;letter-spacing:.4px;color:#1469d7;margin:0 0 24px;overflow-wrap:anywhere}
