/**
 * Veno File Manager custom CSS
 */

/* ============================================================
   VFM CUSTOM THEME - Documento Público / iDRIVE visual language
   Aplicado globalmente ao front-end do VFM.
   ============================================================ */
:root{
  --vfm-brand:#0b1f3a;
  --vfm-brand-2:#102a4c;
  --vfm-accent:#149ead;
  --vfm-accent-2:#1384d4;
  --vfm-bg:#f5f8fb;
  --vfm-surface:#ffffff;
  --vfm-border:#d9e4ee;
  --vfm-muted:#6b7e95;
  --vfm-soft:#e9f7f8;
  --vfm-shadow:0 8px 25px rgba(23,50,80,.05);
  --vfm-radius:14px;
}

html,body{
  background:var(--vfm-bg)!important;
  color:var(--vfm-brand-2)!important;
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;
  font-weight:400;
  font-size:14px;
}

body,button,input,select,textarea,.btn,.form-control,.form-select,.dropdown-menu,.table{
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;
  font-weight:400;
}

h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
  color:var(--vfm-brand)!important;
  font-weight:500!important;
  letter-spacing:-.01em;
}

a{color:#0d6efd;text-decoration:none}
a:hover{color:#0b5ed7}

/* Top navigation */
.navbar.bg-dark,
.navbar.bg-body-tertiary,
nav.navbar{
  background:#fff!important;
  border-bottom:1px solid var(--vfm-border)!important;
  box-shadow:none!important;
}
.navbar .navbar-brand,
.navbar .nav-link,
.navbar .dropdown-toggle{
  color:var(--vfm-brand)!important;
  font-weight:500;
}
.navbar .nav-link:hover,
.navbar .nav-link:focus{
  color:var(--vfm-accent)!important;
}
.navbar-toggler{border-color:var(--vfm-border)!important}

/* Header/banner */
.vfm-header{
  background:#fff!important;
  border-bottom:1px solid var(--vfm-border);
}
.vfm-header .description{color:var(--vfm-muted)!important;font-size:14px}

/* Main surfaces */
.vfmblock,
.tableblock,
.bg-light-lighter,
.card,
.modal-content,
.dropdown-menu{
  background:var(--vfm-surface)!important;
  border-color:var(--vfm-border)!important;
}
.vfmblock .tableblock,
.tableblock,
.card,
.modal-content{
  border:1px solid var(--vfm-border)!important;
  border-radius:var(--vfm-radius)!important;
  box-shadow:var(--vfm-shadow)!important;
}

/* Login */
#login-form .login{max-width:430px;margin:0 auto}
#login-form .card{overflow:hidden}
#login-form .card-header{
  background:#fff!important;
  border-bottom:1px solid var(--vfm-border)!important;
  padding:20px 24px!important;
}
#login-form .card-header h5{font-size:22px!important}
#login-form .card-body{padding:24px!important}
#login-form .lostpwd{font-size:12px;color:var(--vfm-muted)}

/* Inputs */
.form-control,.form-select,.input-group-text{
  min-height:42px;
  border-color:#cbd9e6!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--vfm-brand-2)!important;
  box-shadow:none!important;
}
.input-group .form-control{border-radius:0 9px 9px 0!important}
.input-group .input-group-text{border-radius:9px 0 0 9px!important;background:#f8fbfd!important;color:var(--vfm-muted)!important}
.form-control:focus,.form-select:focus{
  border-color:var(--vfm-accent)!important;
  box-shadow:0 0 0 .18rem rgba(20,158,173,.12)!important;
}
.form-label,label{font-weight:400;color:var(--vfm-brand-2)}

/* Buttons */
.btn{border-radius:9px!important;font-weight:500!important;padding:.55rem .9rem}
.btn-primary,.btn-success,.btn-info{
  color:#fff!important;
  border-color:transparent!important;
  background:linear-gradient(90deg,var(--vfm-accent-2),var(--vfm-accent))!important;
  box-shadow:0 5px 14px rgba(19,132,212,.12);
}
.btn-primary:hover,.btn-success:hover,.btn-info:hover{filter:brightness(.97);opacity:.96}
.btn-outline-primary{
  color:#087bd0!important;
  border-color:#1688d8!important;
  background:#fff!important;
}
.btn-outline-primary:hover{color:#fff!important;background:linear-gradient(90deg,var(--vfm-accent-2),var(--vfm-accent))!important;border-color:transparent!important}
.btn-outline-secondary{color:#5f7389!important;border-color:#b9c9d8!important;background:#fff!important}
.btn-outline-secondary:hover{background:#f1f6fa!important;color:var(--vfm-brand)!important}
.btn-danger{border-radius:9px!important}

/* Breadcrumbs */
.breadcrumb,.breadcrumbs{
  background:transparent!important;
  color:var(--vfm-muted)!important;
  font-size:12px!important;
}
.breadcrumb a,.breadcrumbs a{color:#0d6efd!important}

/* File/folder lists */
#foldertable,#filetable,.table{
  color:var(--vfm-brand-2)!important;
  margin-bottom:0!important;
}
.table>:not(caption)>*>*{
  border-color:#e5edf4!important;
  vertical-align:middle;
}
.table thead td,.table thead th{
  color:var(--vfm-muted)!important;
  font-size:11px!important;
  text-transform:none;
  font-weight:500!important;
  background:#fbfdff!important;
}
.table tbody tr{transition:background .14s ease}
.table tbody tr:hover{background:#f6fbfc!important}
#foldertable .bi-folder-fill,#foldertable .bi-folder,
#filetable .bi-folder-fill,#filetable .bi-folder{
  color:var(--vfm-accent)!important;
}

/* Upload / actions */
.action-group{gap:8px}
.uploadarea,.upload-area,.dropzone{
  border-color:#bfd7e5!important;
  background:#fbfdff!important;
  border-radius:var(--vfm-radius)!important;
}

/* Cards and utilities */
.alert{border-radius:10px!important;border-width:1px!important}
.progress{border-radius:999px!important;background:#e7eef5!important}
.progress-bar{background:linear-gradient(90deg,var(--vfm-accent-2),var(--vfm-accent))!important}
.badge{font-weight:500!important}
.text-muted,.alpha-light{color:var(--vfm-muted)!important}
.shadow,.shadow-sm{box-shadow:var(--vfm-shadow)!important}

/* Dropdown */
.dropdown-menu{padding:8px!important;border-radius:10px!important}
.dropdown-item{border-radius:7px;padding:.55rem .75rem;color:var(--vfm-brand-2)}
.dropdown-item:hover,.dropdown-item:focus{background:#eef8f9!important;color:var(--vfm-brand)!important}

/* Modal */
.modal-header,.modal-footer{border-color:var(--vfm-border)!important}
.modal-title{font-weight:500!important}

/* Pagination */
.page-link{color:#0d6efd;border-color:var(--vfm-border)!important;background:#fff!important}
.page-item.active .page-link{background:var(--vfm-accent)!important;border-color:var(--vfm-accent)!important;color:#fff!important}

/* Overall spacing */
.container{max-width:1220px}
.main-content{padding-top:10px}

@media (max-width:767.98px){
  body{font-size:13px}
  .vfmblock .tableblock,.tableblock,.card{border-radius:11px!important}
  #login-form .card-body{padding:18px!important}
}

/* ============================================================
   AJUSTES VISUAIS - 01/10/2026
   - Card da listagem igual ao card de upload
   - Espaço entre campos e botões
   - Footer compacto com 30px
   ============================================================ */

/* Unifica o acabamento externo dos cards principais */
.vfmblock{
  background:var(--vfm-surface)!important;
  border:1px solid var(--vfm-border)!important;
  border-radius:var(--vfm-radius)!important;
  box-shadow:var(--vfm-shadow)!important;
  overflow:hidden;
}

/* A listagem já possui um wrapper interno; evita borda dupla */
.vfmblock > .tableblock{
  background:var(--vfm-surface)!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  margin:0!important;
}

/* Mantém a área de upload com o mesmo acabamento e respiro */
.vfmblock.uploadarea{
  padding:12px!important;
}

/* Afasta os botões dos campos de upload / novo diretório */
#upload_container > .btn,
#newdir_container > .btn{
  margin-left:12px!important;
  border-radius:9px!important;
  flex:0 0 auto;
}

/* O botão oculto não deve reservar espaço */
#upload_container > .btn.d-none{
  margin-left:0!important;
}

/* Campo termina com cantos arredondados antes do espaço do botão */
#upload_container > .form-control,
#newdir_container > .form-control{
  border-radius:0 9px 9px 0!important;
}

/* Footer compacto - mesmo padrão visual do header */
.footer{
  height:30px!important;
  min-height:30px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  line-height:1!important;
  overflow:hidden;
  background:#fff!important;
  color:#111!important;
  border-top:1px solid var(--vfm-border)!important;
  box-shadow:none!important;
}
.footer > .container{
  display:flex;
  align-items:center;
  min-height:30px;
  color:#111!important;
}
.footer .row{
  width:100%;
  margin:0!important;
  align-items:center;
}
.footer .row > [class*="col-"]{
  padding-top:0!important;
  padding-bottom:0!important;
}
.footer a,
.footer span,
.footer div{
  line-height:30px;
  color:#111!important;
}
.footer a:hover{
  color:var(--vfm-accent)!important;
}

@media (max-width:767.98px){
  #upload_container > .btn,
  #newdir_container > .btn{
    margin-left:8px!important;
  }
  .footer{
    height:30px!important;
    min-height:30px!important;
  }
}


/* ============================================================
   LOGIN INSTITUCIONAL - iDRIVE
   Referência visual aplicada em 02/10/2026
   ============================================================ */

body:has(.vfm-login-page){
  background:
    radial-gradient(circle at 92% 18%, rgba(66,204,194,.12), transparent 25%),
    linear-gradient(90deg,#f5f9fd 0%,#fbfdff 58%,#f4fbfb 100%)!important;
  min-height:100vh;
}

body:has(.vfm-login-page) > nav.navbar,
body:has(.vfm-login-page) .vfm-header,
body:has(.vfm-login-page) .footer{
  display:none!important;
}

body:has(.vfm-login-page) main,
body:has(.vfm-login-page) .main-content,
body:has(.vfm-login-page) .container,
body:has(.vfm-login-page) .container-fluid{
  max-width:none!important;
}

.vfm-login-page{
  width:100vw;
  min-height:100vh;
  margin-left:calc(50% - 50vw);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:38px 72px;
  background:
    radial-gradient(circle at 86% 28%, rgba(43,196,188,.10), transparent 27%),
    linear-gradient(90deg,#f3f8fc 0%,#fbfdff 62%,#f5fbfb 100%);
}

.vfm-login-shell{
  width:min(1210px,100%);
  min-height:600px;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(350px,375px);
  gap:84px;
  align-items:center;
}

.vfm-login-intro{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:20px 0 20px 0;
}

.vfm-login-brand-logo{
  width:235px;
  max-width:54%;
  height:auto;
  object-fit:contain;
  object-position:left center;
  margin-bottom:38px;
}

.vfm-login-message h1{
  margin:0;
  color:#07356d!important;
  font-size:39px!important;
  line-height:1.18;
  font-weight:400!important;
  letter-spacing:-.035em;
}

.vfm-login-message h1 span{
  color:#14a89e;
  font-weight:400;
}

.vfm-login-message p{
  max-width:535px;
  margin:20px 0 0;
  color:#365f91;
  font-size:16px;
  line-height:1.65;
  font-weight:400;
}

.vfm-login-panel{
  width:100%;
}

.vfm-login-card{
  width:100%;
  background:#fff;
  border:1px solid #cfe0ec;
  border-radius:19px;
  padding:35px 33px 31px;
  box-shadow:0 20px 42px rgba(21,70,105,.09);
}

.vfm-login-card-brand{
  text-align:center;
  margin-bottom:22px;
}

.vfm-login-card-brand img{
  width:195px;
  max-width:76%;
  height:auto;
}

.vfm-login-card h2{
  margin:0 0 7px!important;
  color:#123b72!important;
  font-size:24px!important;
  line-height:1.2;
  font-weight:500!important;
  letter-spacing:-.025em;
}

.vfm-login-subtitle{
  margin:0 0 23px;
  color:#5d7697;
  font-size:12.5px;
}

.vfm-login-field{
  margin-bottom:17px;
}

.vfm-login-field label{
  display:block;
  margin:0 0 7px;
  color:#173a67;
  font-size:13px;
  font-weight:400!important;
}

.vfm-modern-login-form .form-control{
  width:100%;
  height:43px;
  min-height:43px;
  border:1px solid #bfd2e9!important;
  border-radius:8px!important;
  background:#eef4ff!important;
  color:#182536!important;
  font-size:13px;
  padding:0 13px;
  box-shadow:none!important;
}

.vfm-modern-login-form .form-control::placeholder{
  color:#8799ad;
}

.vfm-modern-login-form .form-control:focus{
  background:#fff!important;
  border-color:#22a8ba!important;
  box-shadow:0 0 0 3px rgba(34,168,186,.10)!important;
}

.vfm-password-wrap{
  position:relative;
}

.vfm-password-wrap .form-control{
  padding-right:70px!important;
}

.vfm-password-toggle{
  position:absolute;
  top:0;
  right:0;
  height:43px;
  padding:0 13px;
  border:0;
  background:transparent;
  color:#3970aa;
  font-size:10px;
  font-weight:400;
  cursor:pointer;
}

.vfm-password-toggle:hover{
  color:#159eaa;
}

.vfm-remember,
.vfm-login-terms{
  display:flex;
  align-items:center;
  gap:5px;
  margin:4px 0 16px;
  min-height:18px;
}

.vfm-remember .form-check-input,
.vfm-login-terms .form-check-input{
  width:13px;
  height:13px;
  min-width:13px;
  margin:0;
  border-color:#8796a7;
}

.vfm-remember label,
.vfm-login-terms label{
  margin:0;
  color:#647994!important;
  font-size:10px;
  line-height:1.3;
}

.vfm-login-submit{
  width:100%;
  min-height:43px;
  margin-top:1px;
  border:0!important;
  border-radius:9px!important;
  color:#fff!important;
  background:linear-gradient(90deg,#25add0 0%,#4dcec5 100%)!important;
  font-size:12px;
  font-weight:500!important;
  box-shadow:0 9px 18px rgba(30,173,193,.18);
}

.vfm-login-submit:hover,
.vfm-login-submit:focus{
  color:#fff!important;
  filter:brightness(.98);
  transform:translateY(-1px);
}

.vfm-public-login-link{
  display:flex!important;
  width:68%;
  min-height:37px;
  align-items:center;
  justify-content:center;
  margin:18px auto 0;
  padding:8px 13px!important;
  border:1px solid #0d7fe5!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#0874cc!important;
  box-shadow:none!important;
  font-size:10px;
  font-weight:500!important;
  text-transform:none;
  white-space:nowrap;
}

.vfm-public-login-link:hover{
  background:#f2f8ff!important;
  color:#075fa9!important;
}

.vfm-login-secondary-links{
  display:flex;
  justify-content:center;
  gap:12px;
  margin-top:14px;
  min-height:14px;
}

.vfm-login-secondary-links a{
  color:#71849c!important;
  font-size:10px!important;
}

.vfm-login-secondary-links a:hover{
  color:#149ead!important;
}

/* Conteúdos opcionais do VFM dentro do novo card */
.vfm-login-card .alert{
  margin-top:12px;
  font-size:11px;
}
.vfm-login-card .captcha,
.vfm-login-card [class*="captcha"]{
  margin-bottom:14px;
}

/* O login institucional não herda o estilo global de card/vfmblock */
.vfm-login-page,
.vfm-login-page .vfm-login-shell,
.vfm-login-page .vfm-login-intro,
.vfm-login-page .vfm-login-panel{
  border:0!important;
  box-shadow:none!important;
}

@media (max-width:991.98px){
  .vfm-login-page{
    padding:28px;
  }
  .vfm-login-shell{
    grid-template-columns:1fr;
    gap:34px;
    max-width:620px;
  }
  .vfm-login-intro{
    align-items:center;
    text-align:center;
    padding:0;
  }
  .vfm-login-brand-logo{
    width:220px;
    margin-bottom:24px;
  }
  .vfm-login-message h1{
    font-size:34px!important;
  }
  .vfm-login-message p{
    max-width:520px;
  }
  .vfm-login-panel{
    max-width:410px;
    margin:0 auto;
  }
}

@media (max-width:575.98px){
  .vfm-login-page{
    padding:20px 14px;
    align-items:flex-start;
  }
  .vfm-login-shell{
    min-height:0;
    gap:25px;
  }
  .vfm-login-brand-logo{
    width:180px;
    margin-bottom:17px;
  }
  .vfm-login-message h1{
    font-size:28px!important;
  }
  .vfm-login-message p{
    margin-top:12px;
    font-size:14px;
  }
  .vfm-login-card{
    padding:27px 21px 23px;
    border-radius:16px;
  }
  .vfm-login-card-brand img{
    width:175px;
  }
  .vfm-public-login-link{
    width:82%;
  }
}

/* ============================================================
   SISTEMA GLOBAL DE ESPAÇAMENTO - FRONT-END - 02/10/2026
   ============================================================ */
:root{
  --vfm-space-xs:6px;
  --vfm-space-sm:10px;
  --vfm-space-md:16px;
  --vfm-space-lg:20px;
}

.main-content,
.container.main-content{
  padding-left:16px!important;
  padding-right:16px!important;
  padding-bottom:20px!important;
}

.vfmblock,
.card,
.tableblock{
  margin-bottom:16px!important;
}

.vfmblock:not(.uploadarea){
  padding:12px!important;
}

.vfmblock > .tableblock{
  padding:10px 12px!important;
}

.card-body{
  padding:16px!important;
}

/* Campos e botões próximos */
.input-group{
  align-items:stretch!important;
}

.input-group > .btn:not(:first-child),
.input-group > .btn-group:not(:first-child),
.input-group > .form-control + .btn,
.input-group > .form-select + .btn{
  margin-left:12px!important;
  border-radius:9px!important;
}

.input-group > .form-control:not(:last-child),
.input-group > .form-select:not(:last-child){
  border-top-right-radius:9px!important;
  border-bottom-right-radius:9px!important;
}

.input-group > .input-group-text + .form-control,
.input-group > .input-group-text + .form-select{
  margin-left:0!important;
  border-top-left-radius:0!important;
  border-bottom-left-radius:0!important;
}

.btn + .btn,
.btn + .dropdown,
.dropdown + .btn{
  margin-left:8px!important;
}

/* DataTables do gerenciador */
div.dataTables_wrapper > .row{
  margin-left:0!important;
  margin-right:0!important;
  row-gap:10px!important;
}

div.dataTables_wrapper > .row:first-child{
  padding:12px 10px!important;
}

div.dataTables_wrapper > .row:last-child{
  padding:10px!important;
}

div.dataTables_wrapper > .row > [class*="col-"]{
  padding-left:8px!important;
  padding-right:8px!important;
}

div.dataTables_wrapper div.dataTables_filter input{
  margin-left:8px!important;
}

div.dataTables_wrapper div.dataTables_length select{
  margin-left:8px!important;
  margin-right:8px!important;
}

.table>:not(caption)>*>*{
  padding:.68rem .6rem!important;
}

/* Modais */
.modal-body{padding:18px!important}
.modal-header,.modal-footer{padding:14px 18px!important}
.modal-footer{gap:10px!important}

@media(max-width:767.98px){
  .main-content,
  .container.main-content{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .vfmblock:not(.uploadarea),
  .card-body,
  .modal-body{
    padding:12px!important;
  }
  .input-group > .btn:not(:first-child),
  .input-group > .btn-group:not(:first-child),
  .input-group > .form-control + .btn,
  .input-group > .form-select + .btn{
    margin-left:8px!important;
  }
}

/* ============================================================
   DASHBOARD INICIAL DO UTILIZADOR - 02/10/2026
   ============================================================ */
.vfm-user-dashboard{padding:4px 0 22px}
.vfm-dash-heading h1{margin:0 0 4px;font-size:24px!important;font-weight:500!important;color:#0b1f3a!important}
.vfm-dash-heading p{margin:0;color:#6b7e95;font-size:13px}
.vfm-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.vfm-kpi-card{position:relative;min-height:92px;background:#fff;border:1px solid #d7e3ed;border-radius:15px;padding:16px;display:flex;align-items:center;gap:12px;overflow:hidden}
.vfm-kpi-card:after{content:"";position:absolute;width:72px;height:72px;border-radius:50%;right:-18px;bottom:-32px;background:#eef6f8}
.vfm-kpi-card>div:not(.vfm-kpi-icon){min-width:0;position:relative;z-index:1}
.vfm-kpi-card span{display:block;color:#73849b;font-size:12px;margin-bottom:2px;white-space:nowrap}
.vfm-kpi-card strong{display:block;color:#18324f;font-size:22px;line-height:1.15;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:115px}
.vfm-kpi-icon{position:relative;z-index:1;width:42px;height:42px;flex:0 0 42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:20px}
.vfm-kpi-icon.is-blue{background:#e9f8fb;color:#1b9cb5}.vfm-kpi-icon.is-indigo{background:#edf4ff;color:#347be1}.vfm-kpi-icon.is-green{background:#eaf9f2;color:#2aa56c}.vfm-kpi-icon.is-purple{background:#f1edff;color:#7b5ad8}.vfm-kpi-icon.is-yellow{background:#fff7e5;color:#e09212}.vfm-kpi-icon.is-red{background:#fff0f1;color:#e45d66}
.vfm-dash-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}
.vfm-dash-card{background:#fff;border:1px solid #d7e3ed;border-radius:15px;padding:28px 24px;min-height:305px}
.vfm-dash-card-title{font-size:16px;font-weight:600;color:#101820;margin-bottom:10px}.vfm-dash-card-subtitle{font-size:13px;color:#6b7280;margin-bottom:24px}
.vfm-storage-layout{display:grid;grid-template-columns:190px 1fr;gap:24px;align-items:center}
.vfm-donut-wrap{display:flex;justify-content:center}.vfm-donut{width:176px;height:176px;border-radius:50%;background:var(--vfm-donut);display:flex;align-items:center;justify-content:center}.vfm-donut:before{content:"";position:absolute}.vfm-donut-center{width:118px;height:118px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column}.vfm-donut-center strong{font-size:19px;font-weight:500;color:#172b46}.vfm-donut-center span{font-size:11px;color:#75859a;margin-top:2px}
.vfm-storage-legend{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;row-gap:12px}.vfm-legend-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;font-size:12px}.vfm-dot{width:9px;height:9px;border-radius:50%}.vfm-legend-name{color:#526781}.vfm-legend-pct{color:#18324f;font-variant-numeric:tabular-nums}
.vfm-share-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}.vfm-share-kpis>div{border:1px solid #d7e3ed;border-radius:13px;padding:16px;min-height:94px;background:#fbfdff}.vfm-share-kpis span{display:block;color:#718399;font-size:11px;line-height:1.25;min-height:28px}.vfm-share-kpis strong{display:block;color:#0c2744;font-size:24px;font-weight:500}
.vfm-usage-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#304962;margin-bottom:8px}.vfm-usage-row strong{font-weight:500;color:#18324f}.vfm-usage-track{height:8px;border-radius:99px;background:#e3eaf0;overflow:hidden}.vfm-usage-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#28b9cf,#38c9bb)}.vfm-usage-note{font-size:11px;color:#74859a;margin-top:8px}.vfm-dash-files-btn{margin-top:22px}
@media (max-width:1199.98px){.vfm-kpi-grid{grid-template-columns:repeat(3,1fr)}.vfm-dash-grid{grid-template-columns:1fr}.vfm-kpi-card strong{max-width:none}}
@media (max-width:767.98px){.vfm-kpi-grid{grid-template-columns:repeat(2,1fr)}.vfm-storage-layout{grid-template-columns:1fr}.vfm-storage-legend{grid-template-columns:1fr 1fr}.vfm-share-kpis{grid-template-columns:1fr}.vfm-dash-card{padding:20px}.vfm-dash-heading h1{font-size:22px!important}}
@media (max-width:479.98px){.vfm-kpi-grid{grid-template-columns:1fr}.vfm-storage-legend{grid-template-columns:1fr}}

/* ============================================================
   LOGIN FULL VIEWPORT - 02/10/2026
   Remove barras de rolagem horizontal/vertical na tela de login
   e adapta o layout exatamente à área útil do navegador.
   ============================================================ */

html:has(.vfm-login-page),
body:has(.vfm-login-page){
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

body:has(.vfm-login-page){
  position:relative;
}

body:has(.vfm-login-page) main,
body:has(.vfm-login-page) .main-content,
body:has(.vfm-login-page) .container,
body:has(.vfm-login-page) .container-fluid{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

.vfm-login-page{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:24px 72px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}

.vfm-login-shell{
  width:min(1210px,100%)!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.55fr) minmax(350px,375px)!important;
  gap:84px!important;
  align-items:center!important;
}

.vfm-login-intro{
  min-height:0!important;
  max-height:100%!important;
  padding:0!important;
}

.vfm-login-panel{
  min-height:0!important;
  max-height:100%!important;
  display:flex!important;
  align-items:center!important;
}

.vfm-login-card{
  width:100%!important;
  max-height:calc(100vh - 48px)!important;
  padding:28px 33px!important;
  box-sizing:border-box!important;
  overflow:auto!important;
  scrollbar-width:none;
}

.vfm-login-card::-webkit-scrollbar{
  width:0;
  height:0;
}

@media (max-width:991.98px){
  .vfm-login-page{
    padding:20px 28px!important;
  }
  .vfm-login-shell{
    grid-template-columns:1fr!important;
    gap:24px!important;
    max-width:620px!important;
    overflow:auto!important;
    scrollbar-width:none;
  }
  .vfm-login-shell::-webkit-scrollbar{
    width:0;
    height:0;
  }
  .vfm-login-card{
    max-height:none!important;
  }
}

@media (max-width:575.98px){
  .vfm-login-page{
    padding:14px!important;
  }
  .vfm-login-shell{
    gap:18px!important;
  }
  .vfm-login-card{
    padding:22px 20px!important;
  }
}
