/* Kloud — interface monocromática e limpa */
:root {
  --kloud-black: #212529;
  --kloud-text: #212529;
  --kloud-muted: #6c757d;
  --kloud-border: #dee2e6;
  --kloud-surface: #ffffff;
  --kloud-subtle: #f8f9fa;
  --kloud-hover: #f2f3f5;
}

html, body { min-height: 100%; }
body { background: #fff; color: var(--kloud-text); }

/* Navegação */
.navbar-kloud {
  background: #fff !important;
  border-bottom: 1px solid var(--kloud-border);
}
.navbar-kloud .navbar-brand,
.navbar-kloud .nav-link,
.navbar-kloud .navbar-user { color: var(--kloud-text) !important; }
.navbar-kloud .nav-link {
  border-radius: .375rem;
  padding: .4rem .65rem !important;
  transition: background-color .15s ease, color .15s ease;
}
.navbar-kloud .nav-link:hover,
.navbar-kloud .nav-link:focus {
  color: #000 !important;
  background: var(--kloud-hover);
}
.navbar-kloud .navbar-user { white-space: nowrap; }

/* Tipografia e controlos */
.btn-kloud {
  color: #fff;
  background: var(--kloud-black);
  border-color: var(--kloud-black);
}
.btn-kloud:hover, .btn-kloud:focus, .btn-kloud:active {
  color: #fff;
  background: #000;
  border-color: #000;
}
.link-kloud { color: var(--kloud-black); }
.link-kloud:hover, .link-kloud:focus { color: #000; }
.badge-role-admin { color: #fff !important; background: var(--kloud-black) !important; }

.btn-outline-primary, .btn-outline-danger, .btn-outline-secondary {
  --bs-btn-color: var(--kloud-black);
  --bs-btn-border-color: #adb5bd;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--kloud-black);
  --bs-btn-hover-border-color: var(--kloud-black);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--kloud-black);
  --bs-btn-active-border-color: var(--kloud-black);
}

/* Login */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.login-card { width: 100%; max-width: 400px; border: 1px solid var(--kloud-border); border-radius: .5rem; box-shadow: 0 .25rem .75rem rgba(0,0,0,.06) !important; }
.login-card .card-body { padding: 2.5rem; }

/* Área de ficheiros */
.painel-ficheiros { overflow: hidden; background: #fff; border: 1px solid var(--kloud-border); border-radius: .5rem; }
.linha-item { cursor: pointer; }
.linha-item { transition: background-color .12s ease; }
.linha-item:hover { background: var(--kloud-hover); }
.linha-item:hover .nome-icone .bi { transform: translateX(1px); }
.nome-icone .bi { transition: transform .12s ease, opacity .12s ease; opacity: .85; }

/* Breadcrumb */
.breadcrumb-fina .breadcrumb {
  margin-bottom: 0;
  align-items: center;
}
.breadcrumb-fina .breadcrumb-item + .breadcrumb-item::before {
  content: '\203A';
  color: #adb5bd;
  padding-right: .55rem;
}
.breadcrumb-fina .breadcrumb-item a {
  color: var(--kloud-muted);
  text-decoration: none;
  border-radius: .3rem;
  padding: .2rem .35rem;
  transition: background-color .15s ease, color .15s ease;
}
.breadcrumb-fina .breadcrumb-item a:hover,
.breadcrumb-fina .breadcrumb-item a:focus {
  color: var(--kloud-black);
  background: var(--kloud-hover);
}
.breadcrumb-fina .breadcrumb-item.active a {
  color: var(--kloud-text);
}
.breadcrumb-fina .bi {
  margin-right: .3rem;
  opacity: .8;
}
.nome-icone { display: inline-flex; width: 1.5rem; margin-right: .35rem; justify-content: center; font-size: 1.05rem; }
.zona-arrastar { padding: 1.5rem; color: var(--kloud-muted); text-align: center; border: 1px dashed #adb5bd; border-radius: .5rem; transition: border-color .15s ease, color .15s ease, background-color .15s ease; }
.zona-arrastar.arrastando { color: var(--kloud-black); background: var(--kloud-subtle); border-color: var(--kloud-black); }
.breadcrumb-fina { font-size: .9rem; }

/* Pré-visualização */
#modal-preview .modal-dialog { max-width: 720px; }
#modal-preview img, #modal-preview iframe { display: block; max-width: 100%; max-height: 80vh; margin: 0 auto; }
#modal-preview pre { max-height: 70vh; overflow: auto; text-align: left; }
.preview-documento { max-height: 65vh; overflow: auto; padding: 1rem 1.25rem; color: inherit; font-family: Georgia, "Times New Roman", serif; font-size: 1rem; line-height: 1.7; text-align: left; white-space: normal; background: #fff; border: 1px solid var(--kloud-border); border-radius: .25rem; }

/* Administração */
.admin-seletor-wrap .form-select { max-width: 360px; }
.upload-escolher { cursor: pointer; }
.progress-upload { height: .75rem; }
.progress-upload .progress-bar { width: 0; background: var(--kloud-black) !important; }

/* Ícones Bootstrap */
.bi { vertical-align: -.125em; }
.btn .bi { margin-right: .25rem; }
.btn.btn-sm .bi { margin-right: 0; }
.nome-icone .bi { margin-right: 0; }

/* Redução de cores nos estados Bootstrap */
.bg-success, .bg-danger, .bg-warning, .bg-info, .bg-primary, .bg-secondary { background: var(--kloud-black) !important; color: #fff !important; }
.alert-warning, .alert-danger, .alert-success, .alert-info { color: var(--kloud-text); background: var(--kloud-subtle); border-color: var(--kloud-border); }

@media (max-width: 575.98px) {
  .login-wrap { padding: 1rem; }
  .login-card .card-body { padding: 1.5rem; }
  .navbar-kloud .container { align-items: flex-start; }
  .navbar-kloud .navbar-menu { flex-wrap: wrap; justify-content: flex-end; gap: .5rem 1rem !important; }
}

/* Ícones da listagem: alinhamento e leitura */
.nome-ficheiro { vertical-align: middle; }
.painel-ficheiros .nome-icone { color: var(--kloud-text); }
.painel-ficheiros .linha-item:hover .nome-icone { color: #000; }

/* KLOUD Cloud / MEGA */
.cloud-status {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .7rem .9rem;
  border: 1px solid #e5e5e5;
  background: #fff;
  border-radius: .5rem;
  font-size: .9rem;
}
.cloud-status #estado-mega { display: inline-flex; align-items: center; gap: .4rem; }
.cloud-status #estado-mega.ligado { color: #111; }
.kloud-notificacao { position: fixed; top: 1rem; right: 1rem; z-index: 9999; max-width: 380px; }
#zona-arrastar i { margin-right: .35rem; }
.preview-pdf { width: 100%; height: 70vh; border: 0; }
.preview-imagem { max-height: 70vh; object-fit: contain; }
.preview-texto { max-height: 70vh; overflow: auto; background: #fafafa; border: 1px solid #eee; padding: 1rem; white-space: pre-wrap; }
