/* Aulas — tema institucional único: verde, legível e orientado ao trabalho. */

@font-face {
  font-family: 'Lusitana';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(https://cdn.jsdelivr.net/fontsource/fonts/lusitana@latest/latin-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Google Sans Flex Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 1 1000;
  src: url(https://cdn.jsdelivr.net/fontsource/fonts/google-sans-flex:vf@latest/latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root { --kloud-accent: #2F6F68; --kloud-accent-hover: #245650; --kloud-accent-soft: #e5f1ef; --kloud-accent-rgb: 47,111,104; --kloud-text: #20312a; --kloud-muted: #65766d; --kloud-border: #dce7df; --kloud-surface: #ffffff; --kloud-subtle: #f5f9f8; --kloud-hover: #edf5f4; --kloud-highlight: #d5eadb; }
html, body { min-height: 100%; }
html { font-size: 14px; }
body,
.btn, .form-control, .form-select, .navbar-brand, .modal-title, h1, h2, h3, h4, h5, h6 {
  font-family: "Google Sans Flex Variable", "Google Sans", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}
body {
  background: var(--kloud-surface);
  color: var(--kloud-text);
}
h1, h2, h3, h4, h5, .navbar-brand {
  letter-spacing: 0;
}

/* Navegação */
.navbar-kloud {
  background: var(--kloud-surface) !important;
  color: var(--kloud-text) !important;
  border-bottom: 1px solid var(--kloud-border);
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}
.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 .5rem !important;
  transition: background-color .15s ease, color .15s ease;
}
.navbar-kloud .nav-link:hover,
.navbar-kloud .nav-link:focus {
  color: var(--kloud-accent-hover) !important;
  background: var(--kloud-hover);
}
.navbar-kloud .nav-link:focus-visible {
  outline: 2px solid var(--kloud-accent);
  outline-offset: 1px;
}
.navbar-kloud .navbar-brand {
  font-weight: 600;
}
.navbar-kloud .navbar-brand .marca-icone {
  display: block;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  object-fit: contain;
  object-position: center center;
  margin: 0;
}
.navbar-kloud .navbar-user { white-space: nowrap; font-weight: 500; }
.navbar-kloud .navbar-menu { display: flex; align-items: center; gap: 1.25rem !important; }
.navbar-kloud .nav-link { display: inline-flex !important; align-items: center; gap: .35rem; }

/* Tipografia e controlos */
.btn {
  --bs-btn-box-shadow: none;
  --bs-btn-active-box-shadow: none;
  --bs-btn-focus-box-shadow: none;
  --bs-btn-border-radius: .3rem;
  --bs-btn-font-weight: 500;
  box-shadow: none !important;
  font-weight: 500;
}
.btn-sm, .btn-group-sm > .btn {
  --bs-btn-border-radius: .25rem;
}
.btn:focus-visible {
  box-shadow: none !important;
  outline: 2px solid var(--kloud-accent);
  outline-offset: 1px;
}
.btn-kloud {
  color: #fff;
  background: var(--kloud-accent);
  border-color: var(--kloud-accent);
  font-weight: 500;
}
.btn-kloud:hover, .btn-kloud:focus, .btn-kloud:active {
  color: #fff;
  background: var(--kloud-accent-hover);
  border-color: var(--kloud-accent-hover);
}
.link-kloud { color: var(--kloud-accent); }
.link-kloud:hover, .link-kloud:focus { color: #000; }
.badge-role-admin { color: #fff !important; background: var(--kloud-accent) !important; }

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

/* 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: 0; border-radius: 0; box-shadow: none !important; background: transparent; }
.login-card .card-body { padding: 2.5rem; }
.login-marca {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  margin-bottom: 1.5rem;
}
.login-marca-icone { display: block; flex: 0 0 auto; }
.login-marca-texto {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  color: var(--kloud-accent);
  letter-spacing: .01em;
  /* pequeno ajuste óptico: o texto "assenta" ligeiramente mais alto que o
     centro geométrico do ícone, por isso sobe uma fração de pixel */
  transform: translateY(-1px);
}

/* Área de ficheiros */
.painel-ficheiros { overflow: hidden; background: var(--kloud-surface); 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-accent);
  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 color-mix(in srgb, var(--kloud-accent) 35%, var(--kloud-border)); border-radius: .5rem; transition: border-color .15s ease, color .15s ease, background-color .15s ease; }
.zona-arrastar.arrastando { color: var(--kloud-accent); background: var(--kloud-subtle); border-color: var(--kloud-accent); }
.breadcrumb-fina { font-size: .9rem; }

/* Pré-visualização */
#modal-preview .modal-dialog {
  width: 98vw;
  max-width: 1900px;
  height: calc(100vh - 2rem);
  margin: 1rem auto;
}
#modal-preview .modal-content {
  height: 100%;
  min-height: 0;
}
#modal-preview .modal-header {
  flex: 0 0 auto;
}
#modal-preview .modal-body {
  min-height: 0;
  padding: .75rem;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
}
#modal-preview img,
#modal-preview iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: none;
  margin: 0 auto;
}
#modal-preview .preview-pdf {
  min-height: 0;
  flex: 1 1 auto;
  height: 100%;
  width: 100%;
  border: 0;
  background: #fff;
}
#modal-preview .preview-imagem {
  object-fit: contain;
}
#modal-preview pre {
  width: 100%;
  height: 100%;
  max-height: none;
  overflow: auto;
  text-align: left;
  margin: 0;
}
#modal-preview .preview-documento {
  width: 100%;
  max-height: none;
  overflow: auto;
}
#modal-preview .modal-footer {
  flex: 0 0 auto;
}
#modal-preview pre { max-height: 70vh; overflow: auto; text-align: left; }

/* Conteúdo textual: leitura confortável, independentemente do formato */
#modal-preview .preview-texto,
#modal-preview .preview-documento,
#modal-preview .preview-documento-medida {
  width: min(800px, calc(100% - 2rem));
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  font-family: 'Lusitana', Georgia, serif !important;
  font-size: 1.35rem !important;
  line-height: 1.85 !important;
  text-align: left;
  color: var(--kloud-text);
}

#modal-preview .preview-texto {
  min-height: 100%;
  max-height: none;
  overflow: auto;
  padding: 1.75rem 2.25rem 1.75rem 1.5rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: var(--kloud-surface);
  border: 0;
  border-radius: 0;
}

#modal-preview .preview-documento {
  height: 100%;
  max-height: none;
  overflow: auto;
  padding: 2.5rem 2.25rem 2.5rem 0;
  white-space: pre-wrap;
  background: var(--kloud-surface);
  border: 0;
  border-radius: 0;
}

#modal-preview .preview-documento-medida {
  width: min(800px, calc(100% - 2rem));
  padding: 0;
  border: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* O conteúdo EPUB é texto, por isso recebe a mesma medida e tipografia. */
#modal-preview .epub-stage {
  font-family: 'Lusitana', Georgia, serif;
}

#modal-preview .epub-stage .epub-frame {
  font-family: 'Lusitana', Georgia, serif;
}

/* 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-accent) !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-accent) !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); }

/* Disco local: indisponível em dispositivos móveis. O acesso directo ao sistema de ficheiros fica reservado ao desktop. */
@media (max-width: 767.98px) {
  #btn-storage-disco { display: none !important; }
  #disco-local-info { display: none !important; }
}

@media (max-width: 575.98px) {
  html { font-size: 13px; }
  .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; }
  .coluna-modificado { display: none; }
  .cloud-status { padding: .6rem .7rem; }
  section.py-5 { padding-top: 1.75rem !important; padding-bottom: 1.75rem !important; }
  .row.align-items-center.mb-3.gx-2 { row-gap: .6rem; }
  .row.align-items-center.mb-3.gx-2 .col-auto { width: 100%; }
  .row.align-items-center.mb-3.gx-2 .col-auto .btn-group { display: flex; width: 100%; }
  .row.align-items-center.mb-3.gx-2 .col-auto .btn-group .btn { flex: 1 1 auto; }
}

@media (max-width: 400px) {
  .cloud-status { flex-direction: column; align-items: flex-start; }
  .cloud-status > div:last-child { width: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
}

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

/* Alguns detalhes de cor, comedidos, por tipo de ficheiro */
.nome-icone .bi-folder2 { color: var(--kloud-verde, var(--kloud-accent)); }
.nome-icone .bi-file-pdf { color: #9a4b42; }
.nome-icone .bi-file-image { color: var(--kloud-azulejo, var(--kloud-accent)); }
.nome-icone .bi-file-earmark-spreadsheet { color: #5c7a4f; }
.nome-icone .bi-file-earmark-zip,
.nome-icone .bi-file-earmark-text { color: #8a6a3b; }

/* KLOUD Cloud / MEGA */
.cloud-status {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .7rem .9rem;
  border: 1px solid var(--kloud-border);
  background: var(--kloud-surface);
  border-radius: .5rem;
  font-size: .9rem;
}
.cloud-status #estado-mega { display: inline-flex; align-items: center; gap: .4rem; }
.cloud-status #estado-mega.ligado { color: var(--kloud-accent); }

/* Barra de ferramentas — distribuição mais clara em ecrãs pequenos. */
.barra-ferramentas .acoes-ficheiros {
  gap: 0;
}

@media (max-width: 767.98px) {
  .barra-ferramentas {
    row-gap: .6rem;
  }

  .barra-ferramentas .input-group {
    width: 100%;
  }

  .barra-ferramentas .acoes-ficheiros {
    display: flex;
    width: 100% !important;
  }

  .barra-ferramentas .acoes-ficheiros > #btn-nova-pasta,
  .barra-ferramentas .acoes-ficheiros > #btn-mostrar-lixo {
    flex: 1 1 0;
    white-space: nowrap;
  }

  .barra-ferramentas .acoes-ficheiros > .btn-group {
    flex: 0 0 auto;
  }

  .barra-ferramentas .acoes-ficheiros > button,
  .barra-ferramentas .acoes-ficheiros > .btn-group > .dropdown-toggle {
    min-height: 42px;
  }

  .barra-ferramentas #campo-pesquisa {
    min-width: 0;
  }

  .barra-ferramentas #kloud-list-filter {
    flex: 0 0 92px;
  }

  .barra-ferramentas #btn-pesquisar {
    flex: 0 0 auto;
  }
}

@media (min-width: 768px) {
  .barra-ferramentas .acoes-ficheiros {
    width: auto !important;
  }
}
.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; }



.bg-kloud { background-color: var(--kloud-accent) !important; }
.navbar-kloud .navbar-brand { font-weight: 600; letter-spacing: -.01em; }

/* A navbar deve permanecer clara em todos os temas. */
.navbar-kloud.bg-kloud { background-color: var(--kloud-surface) !important; color: var(--kloud-text) !important; }
.navbar-kloud.bg-kloud .navbar-brand,
.navbar-kloud.bg-kloud .nav-link,
.navbar-kloud.bg-kloud .navbar-user { color: var(--kloud-text) !important; }

/* Temas profissionais — aplicação visual consistente */
:root { --kloud-accent-rgb: 47,42,36; }
body { background: var(--kloud-surface); }
.navbar-kloud { border-bottom: 1px solid color-mix(in srgb, var(--kloud-accent) 28%, var(--kloud-border)); }
.navbar-kloud .navbar-brand { color: var(--kloud-accent) !important; }
.navbar-kloud .nav-link:hover,.navbar-kloud .nav-link:focus-visible { color: var(--kloud-accent) !important; background: var(--kloud-hover); }
.table thead th { background: var(--kloud-subtle); color: var(--kloud-text); border-bottom: 1px solid color-mix(in srgb, var(--kloud-accent) 35%, var(--kloud-border)); font-weight: 600; text-transform: uppercase; font-size: .74rem; letter-spacing: .06em; color: var(--kloud-muted); }
.table-hover > tbody > tr:hover > * { --bs-table-hover-bg: var(--kloud-hover); }
.form-control:focus,.form-select:focus { border-color: var(--kloud-accent); box-shadow: 0 0 0 .2rem rgba(var(--kloud-accent-rgb), .12); }
.btn-storage-active,#btn-storage-local.btn-dark,#btn-storage-mega.btn-dark { background: var(--kloud-accent) !important; border-color: var(--kloud-accent) !important; color: #fff !important; }
.btn-storage-active:hover,#btn-storage-local.btn-dark:hover,#btn-storage-mega.btn-dark:hover { background: var(--kloud-accent-hover) !important; border-color: var(--kloud-accent-hover) !important; }
.modal-header { border-bottom-color: var(--kloud-border); }
.modal-footer { border-top-color: var(--kloud-border); }
/* O login não deve ter nenhum efeito nem borda — ver .login-card acima. */
.zona-arrastar:hover { border-color: var(--kloud-accent); background: var(--kloud-subtle); }

@media (max-width: 767.98px) {
  #modal-preview .modal-dialog {
    width: 100vw;
    max-width: none;
    height: 100vh;
    margin: 0;
  }
  #modal-preview .modal-content {
    border-radius: 0;
  }
  #modal-preview .modal-body {
    padding: .35rem;
  }
}

/* ===== Mover ficheiros ===== */
.mover-caminho-atual {
  font-size: .85rem;
  color: var(--kloud-muted);
  padding: .4rem .1rem .6rem;
  border-bottom: 1px solid var(--kloud-border);
  margin-bottom: .5rem;
}
#lista-pastas-mover {
  max-height: 320px;
  overflow-y: auto;
  border: 1px solid var(--kloud-border);
  border-radius: .35rem;
}
#lista-pastas-mover .list-group-item {
  border: 0;
  border-bottom: 1px solid var(--kloud-border);
  background: transparent;
  color: var(--kloud-text);
  text-align: left;
}
#lista-pastas-mover .list-group-item:last-child { border-bottom: 0; }
#lista-pastas-mover .list-group-item:hover { background: var(--kloud-hover); }

/* ===== Partilhar ficheiros ===== */
#corpo-partilhar .form-control[readonly] {
  background: var(--kloud-subtle);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .85rem;
}
.lista-partilhas-ativas {
  margin-top: 1rem;
  padding-top: .75rem;
  border-top: 1px solid var(--kloud-border);
}
.lista-partilhas-ativas .item-partilha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .4rem 0;
  font-size: .85rem;
}
.lista-partilhas-ativas .item-partilha + .item-partilha { border-top: 1px solid var(--kloud-border); }


/* Rodapé da página pública de partilha */
.partilha-rodape { font-size: .68rem; line-height: 1.5; }
.partilha-koob-logo { display: inline-block; margin-top: .7rem; line-height: 0; text-decoration: none !important; }
.partilha-koob-logo:hover, .partilha-koob-logo:focus { text-decoration: none !important; opacity: 1; }
.partilha-koob-logo img { display: block; width: 25px; height: 25px; max-width: 25px; max-height: 25px; }

/* ===== Página pública de partilha (partilha.php) ===== */
.partilha-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.partilha-card {
  width: 100%;
  max-width: 520px;
  border: 1px solid var(--kloud-border);
  border-radius: .5rem;
  border-top: 3px solid var(--kloud-azulejo, var(--kloud-accent));
}
.partilha-card .card-body { padding: 2.5rem; }
.partilha-icone { font-size: 3rem; color: var(--kloud-verde, var(--kloud-accent)); }
.partilha-icone-erro { font-size: 3rem; color: var(--kloud-muted); }
.partilha-preview-imagem { max-height: 45vh; width: 100%; object-fit: contain; }
.partilha-preview-pdf { width: 100%; height: 45vh; border: 1px solid var(--kloud-border); border-radius: .35rem; }

/* Visualizador EPUB */
.epub-viewer { display:flex; flex-direction:column; height:min(76vh, 900px); min-height:520px; width:100%; }
.epub-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.5rem .25rem .75rem; }
.epub-stage { flex:1 1 auto; min-height:0; width:100%; overflow:hidden; border:1px solid var(--kloud-border); border-radius:.45rem; background:var(--kloud-surface); }
.epub-stage iframe { border:0 !important; width:100% !important; height:100% !important; }

.epub-stage .epub-frame { display:block; width:100%; height:100%; min-height:0; border:0; background:#fff; }
.epub-toolbar button:disabled { opacity:.45; cursor:not-allowed; }

/* Estado MEGA centrado em dispositivos móveis */
@media (max-width: 767.98px) {
  .cloud-status {
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .cloud-status > div:first-child {
    width: 100%;
    justify-content: center;
  }

  .cloud-status > div:last-child {
    width: 100%;
    justify-content: center;
    align-items: center;
    text-align: center;
  }

  .cloud-status #estado-mega,
  .cloud-status #mega-conta-info,
  .cloud-status #disco-local-info {
    margin-left: 0 !important;
  }

  .cloud-status #btn-mega {
    margin-left: .5rem !important;
  }
}

/* ===== Temas ===== */
/*
 * Tema New Moon — baseado na paleta original de Tania Rascia.
 * Background #2d2d2d, foreground #b3b9c5 e acentos New Moon.
 */
html[data-theme="dark"] {
  --kloud-accent: #6ab0f3;
  --kloud-accent-hover: #78aad6;
  --kloud-accent-soft: #394451;
  --kloud-accent-rgb: 106,176,243;
  --kloud-highlight: #ffd479;
  --kloud-highlight-hover: #ffeea6;
  --kloud-orange: #fca369;
  --kloud-yellow: #ffeea6;
  --kloud-text: #b3b9c5;
  --kloud-muted: #777c85;
  --kloud-border: #4a4a4a;
  --kloud-surface: #2d2d2d;
  --kloud-subtle: #343434;
  --kloud-hover: #414141;
  color-scheme: dark;
}

html[data-theme="dark"] body { background:#2d2d2d; color:#b3b9c5; }
html[data-theme="dark"] ::selection { color:#2d2d2d; background:#ffd479; }
html[data-theme="dark"] .navbar-kloud {
  background:#2d2d2d !important; color:#b3b9c5 !important;
  border-bottom:1px solid #4a4a4a; box-shadow:none;
}
html[data-theme="dark"] .navbar-kloud .navbar-brand,
html[data-theme="dark"] .navbar-kloud .nav-link,
html[data-theme="dark"] .navbar-kloud .navbar-user { color:#b3b9c5 !important; }
html[data-theme="dark"] .navbar-kloud .navbar-brand { color:#fff !important; }
html[data-theme="dark"] .navbar-kloud .nav-link:hover,
html[data-theme="dark"] .navbar-kloud .nav-link:focus { color:#fff !important; background:#414141; }

html[data-theme="dark"] .painel-ficheiros,
html[data-theme="dark"] .card,
html[data-theme="dark"] .modal-content { background:#2d2d2d; color:#b3b9c5; border-color:#4a4a4a; }

html[data-theme="dark"] .table {
  --bs-table-bg:#2d2d2d; --bs-table-color:#b3b9c5; --bs-table-border-color:#4a4a4a;
  color:#b3b9c5;
}
html[data-theme="dark"] .table > :not(caption) > * > * { background-color:#2d2d2d; color:#b3b9c5; border-color:#4a4a4a; }
html[data-theme="dark"] .table thead th { background:#343434; color:#fff; border-bottom-color:#4a4a4a; }
html[data-theme="dark"] .table-hover > tbody > tr:hover > * { --bs-table-hover-bg:#414141; color:#fff; }
html[data-theme="dark"] .linha-item:hover { background:#414141; }
html[data-theme="dark"] .nome-icone .bi { opacity:1; }
html[data-theme="dark"] .painel-ficheiros .nome-icone { color:#fff; }

html[data-theme="dark"] .breadcrumb-fina .breadcrumb-item + .breadcrumb-item::before { color:#777c85; }
html[data-theme="dark"] .breadcrumb-fina .breadcrumb-item a { color:#b3b9c5; }
html[data-theme="dark"] .breadcrumb-fina .breadcrumb-item a:hover,
html[data-theme="dark"] .breadcrumb-fina .breadcrumb-item a:focus { color:#ffd479; background:#414141; }
html[data-theme="dark"] .breadcrumb-fina .breadcrumb-item.active a { color:#fff; }

/* Acções — New Moon usa azul suave, sem transformar a interface numa interface azul. */
html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] .btn-kloud,
html[data-theme="dark"] .bg-kloud,
html[data-theme="dark"] .badge-role-admin {
  color:#2d2d2d !important; background:#6ab0f3 !important; border-color:#6ab0f3 !important;
}
html[data-theme="dark"] .btn-primary:hover,
html[data-theme="dark"] .btn-kloud:hover,
html[data-theme="dark"] .btn-kloud:focus,
html[data-theme="dark"] .btn-kloud:active {
  color:#2d2d2d !important; background:#78aad6 !important; border-color:#78aad6 !important;
}
html[data-theme="dark"] .btn-outline-primary {
  --bs-btn-color:#6ab0f3; --bs-btn-border-color:#6ab0f3;
  --bs-btn-hover-color:#2d2d2d; --bs-btn-hover-bg:#6ab0f3; --bs-btn-hover-border-color:#6ab0f3;
}
html[data-theme="dark"] .btn-outline-secondary,
html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] .btn-dark,
html[data-theme="dark"] .btn-outline-light {
  --bs-btn-color:#b3b9c5; --bs-btn-bg:transparent; --bs-btn-border-color:#777c85;
  --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#414141; --bs-btn-hover-border-color:#777c85;
}
html[data-theme="dark"] .btn-outline-danger {
  --bs-btn-color:#f2777a; --bs-btn-border-color:#f2777a;
  --bs-btn-hover-color:#2d2d2d; --bs-btn-hover-bg:#f2777a; --bs-btn-hover-border-color:#f2777a;
}
html[data-theme="dark"] .btn-storage-active,
html[data-theme="dark"] #btn-storage-local.btn-dark,
html[data-theme="dark"] #btn-storage-mega.btn-dark,
html[data-theme="dark"] #btn-storage-disco.btn-dark {
  background:#6ab0f3 !important; border-color:#6ab0f3 !important; color:#2d2d2d !important;
}
html[data-theme="dark"] .btn-storage-active:hover,
html[data-theme="dark"] #btn-storage-local.btn-dark:hover,
html[data-theme="dark"] #btn-storage-mega.btn-dark:hover,
html[data-theme="dark"] #btn-storage-disco.btn-dark:hover {
  background:#78aad6 !important; border-color:#78aad6 !important;
}

html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select { background:#343434; color:#b3b9c5; border-color:#777c85; }
html[data-theme="dark"] .form-control::placeholder { color:#777c85; }
html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus { background:#343434; color:#fff; border-color:#6ab0f3; box-shadow:0 0 0 .2rem rgba(106,176,243,.2); }
html[data-theme="dark"] .form-select option { background:#343434; color:#b3b9c5; }
html[data-theme="dark"] .form-check-input { background-color:#343434; border-color:#777c85; }
html[data-theme="dark"] .form-check-input:checked { background-color:#6ab0f3; border-color:#6ab0f3; }
html[data-theme="dark"] .form-control[readonly] { background:#414141; }

html[data-theme="dark"] .dropdown-menu { background:#343434; border-color:#4a4a4a; box-shadow:0 .5rem 1.25rem rgba(0,0,0,.35); }
html[data-theme="dark"] .dropdown-item { color:#b3b9c5; }
html[data-theme="dark"] .dropdown-item:hover,
html[data-theme="dark"] .dropdown-item:focus { color:#fff; background:#414141; }
html[data-theme="dark"] .dropdown-item.active { color:#2d2d2d; background:#6ab0f3; }
html[data-theme="dark"] .dropdown-divider,
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer { border-color:#4a4a4a; }
html[data-theme="dark"] .btn-close { filter:invert(1) grayscale(1) brightness(1.5); }

html[data-theme="dark"] .zona-arrastar { background:#343434; color:#b3b9c5; border-color:#777c85; }
html[data-theme="dark"] .zona-arrastar:hover,
html[data-theme="dark"] .zona-arrastar.arrastando { background:#414141; border-color:#6ab0f3; color:#fff; }
html[data-theme="dark"] .progress { background:#414141; }
html[data-theme="dark"] .progress-bar { background:#6ab0f3 !important; }
html[data-theme="dark"] .list-group-item { background:#2d2d2d; color:#b3b9c5; border-color:#4a4a4a; }
html[data-theme="dark"] .list-group-item:hover { background:#414141; }
html[data-theme="dark"] .alert { color:#b3b9c5; background:#343434; border-color:#4a4a4a; }
html[data-theme="dark"] .alert-warning { color:#ffd479; background:#343434; border-color:#777c85; }
html[data-theme="dark"] .alert-danger { color:#f2777a; background:#343434; border-color:#a95a5d; }

/* Paleta New Moon aplicada à tipografia e elementos semânticos. */
html[data-theme="dark"] .login-marca-texto,
html[data-theme="dark"] .navbar-kloud .navbar-brand { color:#fff !important; }
html[data-theme="dark"] .link-kloud,
html[data-theme="dark"] .btn-link { color:#6ab0f3 !important; }
html[data-theme="dark"] .highlight,
html[data-theme="dark"] .text-highlight { color:#ffd479 !important; }
html[data-theme="dark"] .link-kloud:hover,
html[data-theme="dark"] .btn-link:hover { color:#76d4d6 !important; }
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .form-text { color:#777c85 !important; }
html[data-theme="dark"] .cloud-status #estado-mega.ligado { color:#92d192; }
html[data-theme="dark"] .text-danger { color:#f2777a !important; }
html[data-theme="dark"] .text-warning { color:#ffd479 !important; }
html[data-theme="dark"] .text-success { color:#92d192 !important; }
html[data-theme="dark"] .text-info { color:#76d4d6 !important; }
html[data-theme="dark"] .text-orange { color:#fca369 !important; }
html[data-theme="dark"] .text-yellow { color:#ffd479 !important; }
html[data-theme="dark"] .nome-icone .bi-folder2 { color:#ffd479; }
html[data-theme="dark"] .nome-icone .bi-file-earmark-zip,
html[data-theme="dark"] .nome-icone .bi-file-earmark-text { color:#fca369; }
html[data-theme="dark"] .alert-warning { color:#ffd479; border-color:#a9824f; }

html[data-theme="dark"] .btn:focus-visible,
html[data-theme="dark"] a:focus-visible,
html[data-theme="dark"] .form-control:focus-visible,
html[data-theme="dark"] .form-select:focus-visible { outline:2px solid #6ab0f3; outline-offset:2px; }

html[data-theme="dark"] .pagination .page-link { background:#2d2d2d; color:#b3b9c5; border-color:#4a4a4a; }
html[data-theme="dark"] .pagination .page-link:hover { background:#414141; color:#fff; border-color:#777c85; }
html[data-theme="dark"] .pagination .active .page-link { background:#6ab0f3; color:#2d2d2d; border-color:#6ab0f3; }
html[data-theme="dark"] .nav-tabs { border-bottom-color:#4a4a4a; }
html[data-theme="dark"] .nav-tabs .nav-link { color:#b3b9c5; }
html[data-theme="dark"] .nav-tabs .nav-link:hover { color:#fff; border-color:#4a4a4a; }
html[data-theme="dark"] .nav-tabs .nav-link.active { color:#fff; background:#2d2d2d; border-color:#4a4a4a #4a4a4a #2d2d2d; }
html[data-theme="dark"] .mover-caminho-atual { border-bottom-color:#4a4a4a; }
html[data-theme="dark"] #lista-pastas-mover { border-color:#4a4a4a; }
html[data-theme="dark"] #lista-pastas-mover .list-group-item { background:transparent; }
html[data-theme="dark"] #lista-pastas-mover .list-group-item:hover { background:#414141; }
html[data-theme="dark"] .item-tema .indicador-tema { color:#ffd479; }

.item-tema { display: flex; align-items: center; }
.item-tema .indicador-tema { margin-left: auto; visibility: hidden; }
.item-tema.active .indicador-tema { visibility: visible; }

/*
 * Tema Profissional — azul, claro e sóbrio.
 * Inspirado cromaticamente no ownCloud, sem reproduzir o seu layout.
 */
html[data-theme="professional"] {
  --kloud-accent: #3f78b5;
  --kloud-accent-hover: #35699f;
  --kloud-accent-soft: #e7f0f8;
  --kloud-accent-rgb: 63,120,181;
  --kloud-highlight: #c88917;
  --kloud-highlight-hover: #a96f0d;
  --kloud-text: #243b53;
  --kloud-muted: #61758a;
  --kloud-border: #d7e0e9;
  --kloud-surface: #ffffff;
  --kloud-subtle: #f4f7fa;
  --kloud-hover: #eaf1f7;
  --kloud-navy: #06284f;
  --kloud-navy-hover: #0b3768;
  --kloud-success: #2f7d5b;
  --kloud-danger: #b64e52;
  --kloud-warning: #b87910;
  color-scheme: light;
}

html[data-theme="professional"] body {
  background:#f5f7fa;
  color:#243b53;
}
html[data-theme="professional"] ::selection { color:#fff; background:#3f78b5; }

html[data-theme="professional"] .navbar-kloud {
  background:#06284f !important;
  color:#fff !important;
  border-bottom:1px solid #0b3768;
  box-shadow:0 1px 3px rgba(6,40,79,.16);
}
html[data-theme="professional"] .navbar-kloud .navbar-brand,
html[data-theme="professional"] .navbar-kloud .nav-link,
html[data-theme="professional"] .navbar-kloud .navbar-user { color:#fff !important; }
html[data-theme="professional"] .navbar-kloud .nav-link:hover,
html[data-theme="professional"] .navbar-kloud .nav-link:focus {
  color:#fff !important;
  background:#0b3768;
}
html[data-theme="professional"] .navbar-kloud .nav-link:focus-visible { outline-color:#9cc4e7; }

html[data-theme="professional"] .painel-ficheiros,
html[data-theme="professional"] .card,
html[data-theme="professional"] .modal-content {
  background:#fff;
  color:#243b53;
  border-color:#d7e0e9;
}
html[data-theme="professional"] .table {
  --bs-table-bg:#fff;
  --bs-table-color:#243b53;
  --bs-table-border-color:#e1e7ed;
  color:#243b53;
}
html[data-theme="professional"] .table > :not(caption) > * > * {
  background-color:#fff;
  color:#243b53;
  border-color:#e1e7ed;
}
html[data-theme="professional"] .table thead th {
  background:#f4f7fa;
  color:#526b84;
  border-bottom-color:#d7e0e9;
}
html[data-theme="professional"] .table-hover > tbody > tr:hover > * {
  --bs-table-hover-bg:#eef4f9;
  color:#173653;
}
html[data-theme="professional"] .linha-item:hover { background:#eef4f9; }
html[data-theme="professional"] .painel-ficheiros .nome-icone { color:#526b84; }

html[data-theme="professional"] .breadcrumb-fina .breadcrumb-item + .breadcrumb-item::before { color:#8194a7; }
html[data-theme="professional"] .breadcrumb-fina .breadcrumb-item a { color:#3f5f7e; }
html[data-theme="professional"] .breadcrumb-fina .breadcrumb-item a:hover,
html[data-theme="professional"] .breadcrumb-fina .breadcrumb-item a:focus {
  color:#2f679e;
  background:#eaf1f7;
}
html[data-theme="professional"] .breadcrumb-fina .breadcrumb-item.active a { color:#173653; }

html[data-theme="professional"] .btn-primary,
html[data-theme="professional"] .btn-kloud,
html[data-theme="professional"] .bg-kloud,
html[data-theme="professional"] .badge-role-admin {
  color:#fff !important;
  background:#3f78b5 !important;
  border-color:#3f78b5 !important;
}
html[data-theme="professional"] .btn-primary:hover,
html[data-theme="professional"] .btn-kloud:hover,
html[data-theme="professional"] .btn-kloud:focus,
html[data-theme="professional"] .btn-kloud:active {
  color:#fff !important;
  background:#35699f !important;
  border-color:#35699f !important;
}
html[data-theme="professional"] .btn-outline-primary {
  --bs-btn-color:#3f78b5;
  --bs-btn-border-color:#3f78b5;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#3f78b5;
  --bs-btn-hover-border-color:#3f78b5;
}
html[data-theme="professional"] .btn-outline-secondary,
html[data-theme="professional"] .btn-secondary,
html[data-theme="professional"] .btn-dark,
html[data-theme="professional"] .btn-outline-light {
  --bs-btn-color:#3f5f7e;
  --bs-btn-bg:transparent;
  --bs-btn-border-color:#c4d0dc;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#3f78b5;
  --bs-btn-hover-border-color:#3f78b5;
}
html[data-theme="professional"] .btn-outline-danger {
  --bs-btn-color:#b64e52;
  --bs-btn-border-color:#b64e52;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#b64e52;
  --bs-btn-hover-border-color:#b64e52;
}
html[data-theme="professional"] .btn-storage-active,
html[data-theme="professional"] #btn-storage-local.btn-dark,
html[data-theme="professional"] #btn-storage-mega.btn-dark,
html[data-theme="professional"] #btn-storage-disco.btn-dark {
  background:#3f78b5 !important;
  border-color:#3f78b5 !important;
  color:#fff !important;
}
html[data-theme="professional"] .btn-storage-active:hover,
html[data-theme="professional"] #btn-storage-local.btn-dark:hover,
html[data-theme="professional"] #btn-storage-mega.btn-dark:hover,
html[data-theme="professional"] #btn-storage-disco.btn-dark:hover {
  background:#35699f !important;
  border-color:#35699f !important;
}

html[data-theme="professional"] .form-control,
html[data-theme="professional"] .form-select {
  background:#fff;
  color:#243b53;
  border-color:#c8d3de;
}
html[data-theme="professional"] .form-control::placeholder { color:#8194a7; }
html[data-theme="professional"] .form-control:focus,
html[data-theme="professional"] .form-select:focus {
  background:#fff;
  color:#173653;
  border-color:#3f78b5;
  box-shadow:0 0 0 .2rem rgba(63,120,181,.16);
}
html[data-theme="professional"] .form-select option { background:#fff; color:#243b53; }
html[data-theme="professional"] .form-check-input { background-color:#fff; border-color:#aebdca; }
html[data-theme="professional"] .form-check-input:checked { background-color:#3f78b5; border-color:#3f78b5; }
html[data-theme="professional"] .form-control[readonly] { background:#f4f7fa; }

html[data-theme="professional"] .dropdown-menu {
  background:#fff;
  border-color:#d7e0e9;
  box-shadow:0 .5rem 1.25rem rgba(24,53,82,.14);
}
html[data-theme="professional"] .dropdown-item { color:#334e68; }
html[data-theme="professional"] .dropdown-item:hover,
html[data-theme="professional"] .dropdown-item:focus { color:#173653; background:#eef4f9; }
html[data-theme="professional"] .dropdown-item.active { color:#fff; background:#3f78b5; }
html[data-theme="professional"] .dropdown-divider,
html[data-theme="professional"] .modal-header,
html[data-theme="professional"] .modal-footer { border-color:#d7e0e9; }

html[data-theme="professional"] .zona-arrastar {
  background:#f8fafc;
  color:#61758a;
  border-color:#aebdca;
}
html[data-theme="professional"] .zona-arrastar:hover,
html[data-theme="professional"] .zona-arrastar.arrastando {
  background:#eef4f9;
  border-color:#3f78b5;
  color:#244c72;
}
html[data-theme="professional"] .progress { background:#e6edf3; }
html[data-theme="professional"] .progress-bar { background:#3f78b5 !important; }
html[data-theme="professional"] .list-group-item {
  background:#fff;
  color:#334e68;
  border-color:#d7e0e9;
}
html[data-theme="professional"] .list-group-item:hover { background:#eef4f9; }
html[data-theme="professional"] .alert { color:#334e68; background:#f4f7fa; border-color:#d7e0e9; }
html[data-theme="professional"] .alert-warning { color:#8a5b09; background:#fff8e8; border-color:#e2c98c; }
html[data-theme="professional"] .alert-danger { color:#9e4145; background:#fff1f2; border-color:#e1b5b8; }

html[data-theme="professional"] .login-marca-texto { color:#173653 !important; }
html[data-theme="professional"] .link-kloud,
html[data-theme="professional"] .btn-link { color:#2f6ea8 !important; }
html[data-theme="professional"] .link-kloud:hover,
html[data-theme="professional"] .btn-link:hover { color:#b87910 !important; }
html[data-theme="professional"] .text-muted,
html[data-theme="professional"] .form-text { color:#61758a !important; }
html[data-theme="professional"] .cloud-status #estado-mega.ligado { color:#2f7d5b; }
html[data-theme="professional"] .text-danger { color:#b64e52 !important; }
html[data-theme="professional"] .text-warning { color:#b87910 !important; }
html[data-theme="professional"] .text-success { color:#2f7d5b !important; }
html[data-theme="professional"] .text-info { color:#2f78a8 !important; }
html[data-theme="professional"] .highlight,
html[data-theme="professional"] .text-highlight { color:#b87910 !important; }
html[data-theme="professional"] .nome-icone .bi-folder2 { color:#c88917; }
html[data-theme="professional"] .nome-icone .bi-file-pdf { color:#a04a4a; }
html[data-theme="professional"] .nome-icone .bi-file-image { color:#3f78b5; }
html[data-theme="professional"] .nome-icone .bi-file-earmark-spreadsheet { color:#3c7b60; }
html[data-theme="professional"] .nome-icone .bi-file-earmark-zip,
html[data-theme="professional"] .nome-icone .bi-file-earmark-text { color:#8a6a3b; }

html[data-theme="professional"] .btn:focus-visible,
html[data-theme="professional"] a:focus-visible,
html[data-theme="professional"] .form-control:focus-visible,
html[data-theme="professional"] .form-select:focus-visible {
  outline:2px solid #3f78b5;
  outline-offset:2px;
}
html[data-theme="professional"] .pagination .page-link { background:#fff; color:#3f5f7e; border-color:#d7e0e9; }
html[data-theme="professional"] .pagination .page-link:hover { background:#eef4f9; color:#173653; border-color:#b9c8d5; }
html[data-theme="professional"] .pagination .active .page-link { background:#3f78b5; color:#fff; border-color:#3f78b5; }
html[data-theme="professional"] .nav-tabs { border-bottom-color:#d7e0e9; }
html[data-theme="professional"] .nav-tabs .nav-link { color:#526b84; }
html[data-theme="professional"] .nav-tabs .nav-link:hover { color:#173653; border-color:#d7e0e9; }
html[data-theme="professional"] .nav-tabs .nav-link.active { color:#173653; background:#fff; border-color:#d7e0e9 #d7e0e9 #fff; }
html[data-theme="professional"] .mover-caminho-atual { border-bottom-color:#d7e0e9; }
html[data-theme="professional"] #lista-pastas-mover { border-color:#d7e0e9; }
html[data-theme="professional"] #lista-pastas-mover .list-group-item { background:transparent; }
html[data-theme="professional"] #lista-pastas-mover .list-group-item:hover { background:#eef4f9; }
html[data-theme="professional"] .item-tema .indicador-tema { color:#c88917; }
html[data-theme="professional"] .badge-role-admin { background:#c88917 !important; border-color:#c88917 !important; color:#fff !important; }



/* Tema Verde — identidade visual da aplicação Aulas */
html[data-theme="green"] {
  --kloud-accent: #2e7d32;
  --kloud-accent-hover: #1b5e3a;
  --kloud-accent-soft: #e8f5e9;
  --kloud-text: #263b32;
  --kloud-muted: #657b70;
  --kloud-border: #d4e5d8;
  --kloud-surface: #ffffff;
  --kloud-subtle: #f0f7f1;
  --kloud-hover: #e8f5e9;
  --kloud-accent-rgb: 46,125,50;
  --bs-primary: #2e7d32;
  --bs-primary-rgb: 46,125,50;
  --bs-link-color: #1b5e3a;
  --bs-link-hover-color: #12452b;
  --bs-success: #2e7d32;
  --bs-success-rgb: 46,125,50;
}
html[data-theme="green"] .btn-primary,
html[data-theme="green"] .btn-kloud,
html[data-theme="green"] .bg-primary,
html[data-theme="green"] .badge-role-admin { background-color:#2e7d32 !important; border-color:#2e7d32 !important; color:#fff !important; }
html[data-theme="green"] .btn-primary:hover,
html[data-theme="green"] .btn-kloud:hover { background-color:#1b5e3a !important; border-color:#1b5e3a !important; }
html[data-theme="green"] .btn-outline-primary { color:#2e7d32; border-color:#2e7d32; }
html[data-theme="green"] .btn-outline-primary:hover { color:#fff; background:#2e7d32; border-color:#2e7d32; }
html[data-theme="green"] .item-tema .indicador-tema { color:#2e7d32; }
html[data-theme="green"] .navbar-kloud { border-bottom-color:#d4e5d8; }
html[data-theme="green"] .aulas-card,
html[data-theme="green"] .gestao-card { border-color:#d4e5d8; }
html[data-theme="green"] .aulas-link:hover .aulas-card { border-color:#2e7d32; }


/* Aulas — sistema visual profissional unificado (v1.3) */
:root, html[data-theme] {
 --kloud-accent:#285E62; --kloud-accent-hover:#214D51; --kloud-accent-soft:#E6F1EF;
 --kloud-text:#253638; --kloud-muted:#687B7D; --kloud-border:#DCE6E4;
 --kloud-surface:#FFFFFF; --kloud-subtle:#F5F8F7; --kloud-hover:#EAF3F1;
 --kloud-accent-rgb:40,94,98; --bs-primary:#285E62; --bs-primary-rgb:40,94,98;
 --bs-success:#397D68; --bs-success-rgb:57,125,104; --bs-link-color:#285E62; --bs-link-hover-color:#214D51;
 --bs-body-color:#253638; --bs-body-bg:#F5F8F7; --bs-border-color:#DCE6E4;
 color-scheme:light;
}
html[data-theme="green"] body {background:#F5F8F7;color:#253638}
html[data-theme="green"] .navbar-kloud {background:#FFFFFF!important;border-bottom:1px solid #DCE6E4;box-shadow:0 2px 10px rgba(32,66,65,.035)}
html[data-theme="green"] .navbar-kloud .navbar-brand,html[data-theme="green"] .navbar-kloud .nav-link,html[data-theme="green"] .navbar-kloud .navbar-user{color:#253638!important}
html[data-theme="green"] .navbar-kloud .nav-link:hover,html[data-theme="green"] .navbar-kloud .nav-link:focus{color:#285E62!important;background:#EAF3F1}
html[data-theme="green"] .btn-primary,html[data-theme="green"] .btn-kloud,html[data-theme="green"] .bg-primary{background-color:#285E62!important;border-color:#285E62!important;color:#fff!important}
html[data-theme="green"] .btn-primary:hover,html[data-theme="green"] .btn-kloud:hover{background-color:#214D51!important;border-color:#214D51!important}
html[data-theme="green"] .btn-outline-primary{color:#285E62;border-color:#9ABBB6}
html[data-theme="green"] .btn-outline-primary:hover{background:#285E62;border-color:#285E62;color:#fff}
html[data-theme="green"] .form-control:focus,html[data-theme="green"] .form-select:focus{border-color:#75A9A1;box-shadow:0 0 0 .2rem rgba(40,94,98,.12)}
html[data-theme="green"] .navbar-menu{display:flex;align-items:center;gap:.35rem 1rem;flex-wrap:wrap}
html[data-theme="green"] .navbar-user{margin-left:auto;white-space:nowrap;font-weight:600;padding-left:.6rem}
html[data-theme="green"] .navbar-menu .nav-link:last-child{margin-left:.15rem}
html[data-theme="green"] .aulas-card,html[data-theme="green"] .card,html[data-theme="green"] .painel-ficheiros,html[data-theme="green"] .modal-content{border-color:#DCE6E4}
html[data-theme="green"] .aulas-card{background:#fff;box-shadow:0 3px 14px rgba(35,70,67,.035)}
html[data-theme="green"] .table{--bs-table-bg:transparent;--bs-table-hover-bg:#EAF3F1;--bs-table-color:#253638}
html[data-theme="green"] .table thead th{background:#F5F8F7;color:#52696A;font-weight:600}
html[data-theme="green"] .dropdown-menu{border-color:#DCE6E4;box-shadow:0 8px 28px rgba(35,70,67,.10)}
html[data-theme="green"] .dropdown-item:active{background:#285E62}
html[data-theme="green"] .progress{background:#E6EFED}
@media(max-width:767.98px){html[data-theme="green"] .navbar-kloud .container{align-items:center;gap:.65rem}html[data-theme="green"] .navbar-menu{justify-content:flex-end;gap:.25rem .5rem}html[data-theme="green"] .navbar-user{margin-left:.25rem;padding-left:.25rem}}

/* Navegação principal: faixa imediatamente abaixo do cabeçalho da aplicação */
.app-module-nav{display:block;width:100%;max-width:none;box-sizing:border-box;border-bottom:1px solid var(--bs-border-color,#dee2e6);background:var(--bs-body-bg,#fff);padding:.65rem 0;margin:0}
.app-module-nav__inner{display:grid;width:100%;max-width:none;grid-template-columns:repeat(8,minmax(0,1fr)) auto;gap:.5rem;align-items:stretch}
.app-module-nav__button{display:flex;align-items:center;justify-content:center;gap:.4rem;min-width:0;min-height:42px;height:42px;padding:.45rem .5rem;border-radius:.5rem;font-size:.875rem;line-height:1.15;white-space:normal;text-align:center;text-decoration:none}
.app-module-nav__button i{flex:0 0 auto}
.app-module-nav__button span{min-width:0;overflow-wrap:anywhere}
.app-module-nav__button.is-current{font-weight:600}
@media(max-width:1100px){.app-module-nav__inner{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:575.98px){.app-module-nav{padding:.5rem 0}.app-module-nav__inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.app-module-nav__button{width:100%;font-size:.84rem}}

/* Selector de temas e melhorias de legibilidade */
.app-theme-picker{display:flex;align-items:center;flex:0 0 auto}
.app-theme-picker__toggle{display:flex;align-items:center;gap:.45rem;min-height:40px;border-radius:.55rem;font-weight:600}
.app-theme-picker .dropdown-menu{min-width:220px;z-index:1080;position:absolute;top:100%;right:0;margin-top:.35rem;display:block}.app-theme-picker{position:relative}.app-theme-picker .dropdown-menu[hidden]{display:none}
.app-theme-option{display:flex;align-items:center;gap:.65rem;padding:.6rem .7rem;border-radius:.4rem}
.theme-swatch{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid rgba(0,0,0,.14);flex:0 0 18px}
.swatch-green{background:#2e7d32}.swatch-professional{background:#3f78b5}.swatch-dark{background:#2d2d2d;border-color:#777}.swatch-classic{background:#e9ecef}
.app-theme-option.active{font-weight:700;background:var(--bs-primary-bg-subtle,#e7f1ff);color:var(--bs-emphasis-color,#212529)}
.theme-save-status{max-width:205px;white-space:normal;padding-bottom:.25rem}
html[data-theme="classic"]{--bs-primary:#536273;--bs-primary-rgb:83,98,115;--bs-link-color:#43566b;--bs-link-hover-color:#27384a;--bs-body-bg:#f3f5f7;--bs-body-color:#26323d;--bs-border-color:#d6dce2;color-scheme:light}
html[data-theme="classic"] body{background:#f3f5f7;color:#26323d}
html[data-theme="classic"] .navbar-kloud{background:#fff!important;border-bottom:1px solid #d6dce2;box-shadow:0 2px 10px rgba(25,40,55,.04)}
html[data-theme="classic"] .navbar-kloud .navbar-brand,html[data-theme="classic"] .navbar-kloud .nav-link,html[data-theme="classic"] .navbar-kloud .navbar-user{color:#26323d!important}
html[data-theme="classic"] .btn-primary,html[data-theme="classic"] .bg-primary{background:#536273!important;border-color:#536273!important;color:#fff!important}
html[data-theme="classic"] .card,html[data-theme="classic"] .aulas-card,html[data-theme="classic"] .gestao-card,html[data-theme="classic"] .cardx,html[data-theme="classic"] .modal-content{background:#fff;border-color:#d6dce2;box-shadow:0 2px 8px rgba(25,40,55,.035)}
html[data-theme="classic"] .table thead th{background:#e9edf1;color:#3c4b5a}
html[data-theme="classic"] .table-hover>tbody>tr:hover>*{--bs-table-hover-bg:#edf1f5}
html[data-theme="dark"] body{background:#25282d;color:#d5dae2}
html[data-theme="dark"] .navbar-kloud{background:#202328!important;border-bottom-color:#41464e}
html[data-theme="dark"] .navbar-kloud .navbar-brand,html[data-theme="dark"] .navbar-kloud .nav-link,html[data-theme="dark"] .navbar-kloud .navbar-user{color:#e6eaf0!important}
html[data-theme="dark"] .app-module-nav{background:#25282d;border-color:#41464e}
html[data-theme="dark"] .app-module-nav__button.btn-outline-secondary{color:#c7ced8;border-color:#59616c}
html[data-theme="dark"] .app-module-nav__button.btn-outline-secondary:hover{background:#353a42;color:#fff}
html[data-theme="dark"] .card,html[data-theme="dark"] .aulas-card,html[data-theme="dark"] .gestao-card,html[data-theme="dark"] .cardx,html[data-theme="dark"] .modal-content{background:#2d3138;color:#d5dae2;border-color:#454b55}
html[data-theme="dark"] .table{--bs-table-color:#d5dae2;--bs-table-bg:transparent;--bs-table-border-color:#454b55;--bs-table-hover-bg:#383e47}
html[data-theme="dark"] .table thead th{background:#343941;color:#f1f3f6}
html[data-theme="dark"] .form-control,html[data-theme="dark"] .form-select{background:#252930;color:#e1e5eb;border-color:#59616c}
html[data-theme="dark"] .form-control::placeholder{color:#a1aab7}
html[data-theme="dark"] .text-secondary,html[data-theme="dark"] .text-muted{color:#aeb7c4!important}
html[data-theme="dark"] .dropdown-menu{background:#2d3138;border-color:#454b55}
html[data-theme="dark"] .dropdown-item{color:#d5dae2}
html[data-theme="dark"] .dropdown-item:hover,html[data-theme="dark"] .dropdown-item:focus{background:#3b424c;color:#fff}
html[data-theme="dark"] .app-theme-option.active{background:#3b424c;color:#fff}
html[data-theme="dark"] .btn-outline-secondary{color:#cbd2dc;border-color:#69727f}
html[data-theme="dark"] .btn-outline-secondary:hover{background:#414852;color:#fff}
@media(max-width:767.98px){.app-theme-picker{margin-left:auto}.app-theme-picker__toggle span{display:none}.app-theme-picker__toggle{padding:.45rem .65rem}.app-module-nav__inner{grid-template-columns:repeat(2,minmax(0,1fr))}.app-theme-picker .dropdown-menu{right:0;left:auto}}


/* ===== Aulas: tema único verde institucional ===== */
html, html[data-theme] {
  --kloud-accent: #2F6F68;
  --kloud-accent-hover: #245650;
  --kloud-accent-soft: #e5f1ef;
  --kloud-accent-rgb: 47,111,104;
  --kloud-text: #20312a;
  --kloud-muted: #65766d;
  --kloud-border: #dce7df;
  --kloud-surface: #ffffff;
  --kloud-subtle: #f5f9f8;
  --kloud-hover: #edf5f4;
  color-scheme: light;
}
html[data-theme="dark"] body { background: var(--kloud-surface); color: var(--kloud-text); }
body { background: #f6f9f7; color: var(--kloud-text); line-height: 1.5; }
main.container { padding-top: 1.5rem !important; padding-bottom: 2.5rem !important; }
.navbar-kloud { background: #fff !important; border-bottom: 1px solid var(--kloud-border); box-shadow: 0 2px 8px rgba(25,70,45,.035); }
.navbar-kloud .navbar-brand { color: var(--kloud-accent) !important; font-weight: 700; }
.app-module-nav { background: #fff; border-bottom: 1px solid var(--kloud-border); }
.app-module-nav__inner { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; padding-top:.65rem; padding-bottom:.65rem; }
.app-module-nav__button { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:38px; padding:.48rem .8rem; border-radius:.55rem; font-weight:550; text-decoration:none; transition:background-color .15s ease,border-color .15s ease,color .15s ease; }
.app-module-nav__button .bi { font-size:1rem; }
.app-module-nav__button.btn-outline-secondary { color:#40584b; border-color:transparent; background:transparent; }
.app-module-nav__button.btn-outline-secondary:hover { color:var(--kloud-accent); background:var(--kloud-hover); border-color:var(--kloud-border); }
.app-module-nav__button.is-current, .btn-primary, .btn-kloud { color:#fff !important; background:var(--kloud-accent) !important; border-color:var(--kloud-accent) !important; }
.app-module-nav__button.is-current { box-shadow:0 1px 2px rgba(24,88,58,.12); }
.btn-primary:hover, .btn-kloud:hover { background:var(--kloud-accent-hover) !important; border-color:var(--kloud-accent-hover) !important; }
.btn-outline-primary { --bs-btn-color:var(--kloud-accent); --bs-btn-border-color:#a8c9c5; --bs-btn-hover-bg:var(--kloud-accent); --bs-btn-hover-border-color:var(--kloud-accent); --bs-btn-hover-color:#fff; --bs-btn-active-bg:var(--kloud-accent); --bs-btn-active-border-color:var(--kloud-accent); }
.btn-outline-secondary { --bs-btn-color:#46594e; --bs-btn-border-color:#d2ded6; --bs-btn-hover-bg:#edf5f4; --bs-btn-hover-border-color:#b9d6d2; --bs-btn-hover-color:#245650; }
.card, .aulas-card { border-color:var(--kloud-border) !important; border-radius:.7rem !important; box-shadow:0 2px 8px rgba(28,68,45,.035); }
.card-header { background:#f7faf8; border-bottom-color:var(--kloud-border); }
.table { --bs-table-border-color:#e5ece7; }
.table thead th { background:#f1f7f6; color:#4e6658; border-bottom-color:#d6e4da; font-size:.72rem; letter-spacing:.045em; }
.table-hover > tbody > tr:hover > * { --bs-table-hover-bg:#edf5f4; }
.form-control, .form-select { min-height:38px; border-color:#d4e1d8; border-radius:.45rem; }
.form-control:focus, .form-select:focus { border-color:#6fa49e; box-shadow:0 0 0 .2rem rgba(47,111,104,.13); }
.form-label { color:#344b3d; font-weight:550; margin-bottom:.4rem; }
.badge.text-bg-light { color:#385342 !important; background:#edf6ef !important; border:1px solid #d7e9dc; }
.alert { border-radius:.55rem; border-width:1px; }
.btn { transition:background-color .15s ease,border-color .15s ease,color .15s ease; }
.btn:focus-visible, a:focus-visible { outline:2px solid #6fa49e; outline-offset:2px; }
@media (max-width:767.98px) {
  .app-module-nav__inner { gap:.35rem; }
  .app-module-nav__button { flex:1 1 calc(50% - .35rem); justify-content:flex-start; padding:.55rem .65rem; }
  .navbar-kloud .container { align-items:flex-start; gap:.5rem; }
  .navbar-kloud .navbar-menu { flex-wrap:wrap; justify-content:flex-end; gap:.25rem; }
  .card-body { padding:1rem; }
}

/* Aulas v2.4.45 — normalização transversal da interface */
:root {
  --aulas-green: #2F6F68;
  --aulas-green-hover: #285F59;
  --aulas-green-soft: #E7F1EF;
  --aulas-page: #F6F9F7;
  --aulas-line: #DCE7E1;
  --aulas-ink: #20312A;
}
body { background:var(--aulas-page); color:var(--aulas-ink); }

/* Navegação operacional: todos os módulos com a mesma largura e alinhamento. */
.app-module-nav { background:#fff; border-top:1px solid #C5D8D1; border-bottom:1px solid #C5D8D1; }
.app-module-nav__inner {
  display:grid !important;
  grid-template-columns:repeat(8,minmax(0,1fr));
  align-items:stretch;
  gap:.5rem;
  width:100%;
  padding:.65rem 0;
}
.app-module-nav__button {
  display:flex !important;
  width:100%; min-width:0; min-height:44px;
  align-items:center; justify-content:center; gap:.45rem;
  padding:.55rem .4rem; margin:0;
  border:1px solid #A9C4BC !important;
  border-radius:.5rem; text-align:center;
  white-space:normal; line-height:1.2;
  box-shadow:0 1px 2px rgba(32,65,50,.06);
}
.app-module-nav__button .bi { flex:0 0 auto; font-size:1.05rem; }
.app-module-nav__button span { overflow-wrap:anywhere; }
.app-module-nav__button.btn-outline-secondary:hover,
.app-module-nav__button.btn-outline-secondary:focus-visible {
  color:var(--aulas-green-hover) !important;
  background:#EAF2F0 !important;
  border-color:#C7DCD7 !important;
}

/* Estados hover ligeiramente mais escuros, sem alterar a cor institucional. */
.btn-primary:hover, .btn-primary:focus,
.btn-kloud:hover, .btn-kloud:focus,
.btn-success:hover, .btn-success:focus {
  color:#fff !important;
  background:var(--aulas-green-hover) !important;
  border-color:var(--aulas-green-hover) !important;
}
.btn-outline-primary:hover, .btn-outline-primary:focus {
  color:#fff !important;
  background:var(--aulas-green-hover) !important;
  border-color:var(--aulas-green-hover) !important;
}
.btn-outline-secondary:hover, .btn-outline-secondary:focus {
  color:var(--aulas-green-hover);
  background:#EAF2F0;
  border-color:#C7DCD7;
}

/* Componentes partilhados e coerência entre módulos, opções e subopções. */
main.container, main.container-fluid { color:var(--aulas-ink); }
main.container > h1, main.container-fluid > h1,
main.container > .page-header h1, main.container-fluid > .page-header h1 { color:var(--aulas-ink); }
.card, .aulas-card, .gestao-card, .painel-ficheiros {
  border:1px solid var(--aulas-line) !important;
  border-radius:.65rem !important;
  background:#fff;
  box-shadow:0 1px 3px rgba(32,65,50,.035);
}
.card-header, .list-group-item.active {
  background:#F0F6F4;
  border-color:var(--aulas-line);
  color:var(--aulas-ink);
}
.table { --bs-table-border-color:#E3EBE6; }
.table thead th {
  background:#F0F6F4;
  color:#405B50;
  font-weight:650;
  vertical-align:middle;
}
.table td, .table th { padding:.7rem .75rem; }
.table-hover > tbody > tr:hover > * { --bs-table-hover-bg:#EFF6F3; }
.form-control, .form-select, .form-check-input {
  border-color:#D2E0D8;
  border-radius:.4rem;
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color:#76A69F;
  box-shadow:0 0 0 .2rem rgba(47,111,104,.14);
}
.form-label { color:#344B3D; font-weight:550; }
hr { border-color:var(--aulas-line); opacity:1; }
.alert { border-radius:.5rem; }
.breadcrumb { --bs-breadcrumb-divider-color:#8B9C92; }
.pagination { --bs-pagination-color:var(--aulas-green); --bs-pagination-hover-color:var(--aulas-green-hover); --bs-pagination-focus-box-shadow:0 0 0 .2rem rgba(47,111,104,.14); --bs-pagination-active-bg:var(--aulas-green); --bs-pagination-active-border-color:var(--aulas-green); }

@media (min-width:768px) and (max-width:1199.98px) {
  .app-module-nav__inner { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:767.98px) {
  .app-module-nav__inner { grid-template-columns:repeat(2,minmax(0,1fr)); padding:.55rem .75rem; gap:.4rem; }
  .app-module-nav__button { min-height:42px; justify-content:flex-start; text-align:left; padding:.55rem .65rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* Navegação operacional: contornos mais definidos e alinhamento com o cabeçalho. */
.app-module-nav__button.btn-primary,
.app-module-nav__button.is-current { border:1px solid #245650 !important; box-shadow:0 1px 3px rgba(36,86,80,.16); }
.app-module-nav__button.btn-outline-secondary { border-color:#9CBAB1 !important; color:#315B53; background:#FFFFFF; }
.app-module-nav__button.btn-outline-secondary:hover,
.app-module-nav__button.btn-outline-secondary:focus-visible { border-color:#527F75 !important; background:#E5F0ED !important; }

/* Aulas v2.4.46 — largura de trabalho alinhada pelo cabeçalho e fichas com contraste útil. */
:root {
  --aulas-card-bg: #E7EEEA;
  --aulas-card-header-bg: #DCE7E1;
  --aulas-field-bg: #FFFFFF;
  --aulas-field-border: #B8C9C0;
}

/* A área útil segue a largura do container do cabeçalho: do início do logótipo ao fim de «Sair». */
@media (min-width: 1400px) {
  main.container[style*="max-width"], main.container { max-width: 1320px !important; }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
  main.container[style*="max-width"], main.container { max-width: 1140px !important; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  main.container[style*="max-width"], main.container { max-width: 960px !important; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  main.container[style*="max-width"], main.container { max-width: 720px !important; }
}
@media (min-width: 576px) and (max-width: 767.98px) {
  main.container[style*="max-width"], main.container { max-width: 540px !important; }
}

/* As fichas/painéis distinguem-se do fundo da página; as zonas de escrita permanecem brancas. */
.card, .aulas-card, .gestao-card, .painel-ficheiros,
section.card, .modal-content {
  background-color: var(--aulas-card-bg) !important;
  border-color: #C6D4CC !important;
}
.card-body { background-color: transparent; }
.card-header, .list-group-item.active {
  background-color: var(--aulas-card-header-bg) !important;
  border-color: #C6D4CC !important;
}
.form-control, .form-select, textarea.form-control, input.form-control,
select.form-select, .input-group-text {
  background-color: var(--aulas-field-bg) !important;
  border-color: var(--aulas-field-border) !important;
  color: #20312A;
}
.form-control:disabled, .form-control[readonly], .form-select:disabled {
  background-color: #F7FAF8 !important;
  color: #596B61;
}
.form-control::placeholder { color: #718178; opacity: 1; }
.form-control:focus, .form-select:focus {
  background-color: #FFFFFF !important;
  border-color: #2F6F68 !important;
  box-shadow: 0 0 0 .2rem rgba(47,111,104,.16) !important;
}
/* Em ecrãs pequenos, não se impõe uma largura superior à área disponível. */
@media (max-width: 575.98px) {
  main.container[style*="max-width"], main.container { max-width: 100% !important; }
}


/* Aulas v2.4.50 — a navegação usa exactamente o mesmo container Bootstrap do cabeçalho.
   Não definir max-width próprio: assim, a primeira e a última coluna alinham com o logótipo e «Sair». */
.app-module-nav__inner.container {
  width: 100% !important;
  max-width: var(--bs-container-max-width, 100%) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--bs-gutter-x, .75rem) !important;
  padding-right: var(--bs-gutter-x, .75rem) !important;
  box-sizing: border-box;
}
@media (min-width: 576px) { .app-module-nav__inner.container { max-width: 540px !important; } }
@media (min-width: 768px) { .app-module-nav__inner.container { max-width: 720px !important; } }
@media (min-width: 992px) { .app-module-nav__inner.container { max-width: 960px !important; } }
@media (min-width: 1200px) { .app-module-nav__inner.container { max-width: 1140px !important; } }
@media (min-width: 1400px) { .app-module-nav__inner.container { max-width: 1320px !important; } }


/* Cabeçalho de página consistente com acesso ao Painel de gestão */
.aulas-page-title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 1rem}
.aulas-page-title-row h1{margin:0!important;min-width:0}
.aulas-page-title-actions{margin-left:auto;flex:0 0 auto}
.aulas-page-title-actions .aulas-panel-link,.aulas-page-title-actions .aulas-documents-link{white-space:nowrap}
@media(max-width:575.98px){.aulas-page-title-row{align-items:flex-start}.aulas-page-title-actions{margin-left:auto;justify-content:flex-end}}


/* Aulas v2.4.55 — listagens: cabeçalho escuro, zebra discreta e hover contrastante. */
:root {
  --aulas-table-head-bg: #254F49;
  --aulas-table-head-border: #1C403B;
  --aulas-table-row-odd: #F5F8F7;
  --aulas-table-row-even: #E6EFEB;
  --aulas-table-hover-odd: #E0EEE8;
  --aulas-table-hover-even: #D2E4DC;
}
.table > thead > tr > th,
.table thead th {
  background-color: var(--aulas-table-head-bg) !important;
  color: #FFFFFF !important;
  border-bottom-color: var(--aulas-table-head-border) !important;
  font-weight: 650;
}
.table > tbody > tr:nth-child(odd) > * {
  --bs-table-bg: var(--aulas-table-row-odd);
  background-color: var(--aulas-table-row-odd);
  color: var(--bs-table-color, #253638);
}
.table > tbody > tr:nth-child(even) > * {
  --bs-table-bg: var(--aulas-table-row-even);
  background-color: var(--aulas-table-row-even);
  color: var(--bs-table-color, #253638);
}
.table-hover > tbody > tr:nth-child(odd):hover > * {
  --bs-table-bg: var(--aulas-table-hover-odd);
  --bs-table-hover-bg: var(--aulas-table-hover-odd);
  background-color: var(--aulas-table-hover-odd) !important;
  color: #203A34;
}
.table-hover > tbody > tr:nth-child(even):hover > * {
  --bs-table-bg: var(--aulas-table-hover-even);
  --bs-table-hover-bg: var(--aulas-table-hover-even);
  background-color: var(--aulas-table-hover-even) !important;
  color: #203A34;
}

/* Aulas v2.4.58 — o hover usa exactamente a mesma cor em todas as linhas e destaca-se da zebra. */
:root {
  --aulas-table-hover: #C3CEC5;
}
.table-hover > tbody > tr:hover > *,
.table-hover > tbody > tr:nth-child(odd):hover > *,
.table-hover > tbody > tr:nth-child(even):hover > * {
  --bs-table-bg: var(--aulas-table-hover) !important;
  --bs-table-hover-bg: var(--aulas-table-hover) !important;
  background-color: var(--aulas-table-hover) !important;
  color: #173D35 !important;
}


/* Menu Sistema partilhado — Aulas v2.4.63 */
.navbar-system-menu { position: relative; }
.navbar-system-menu > summary { list-style: none; cursor: pointer; }
.navbar-system-menu > summary::-webkit-details-marker { display: none; }
.navbar-kloud .navbar-system-menu > summary { color: var(--kloud-text) !important; border-radius: .375rem; padding: .4rem .5rem; display: inline-flex; align-items: center; gap: .35rem; transition: background-color .15s ease, color .15s ease; }
.navbar-kloud .navbar-system-menu > summary:hover,
.navbar-kloud .navbar-system-menu > summary:focus-visible,
.navbar-system-menu[open] > summary { color: var(--kloud-accent-hover) !important; background: var(--kloud-hover); }
.navbar-system-menu__items { position: absolute; right: 0; top: calc(100% + .45rem); min-width: 255px; max-width: min(330px, calc(100vw - 2rem)); padding: .4rem; z-index: 1050; background: #fff; border: 1px solid #cbd5d0; border-radius: .55rem; box-shadow: 0 12px 28px rgba(22, 43, 36, .18); }
.navbar-system-menu__items a { display: flex; align-items: center; gap: .6rem; padding: .55rem .65rem; color: #243c35; text-decoration: none; border-radius: .35rem; font-size: .92rem; }
.navbar-system-menu__items a:hover, .navbar-system-menu__items a:focus-visible { color: #203a34; background: #c3cec5; outline: none; }
.navbar-system-menu__separator { border-top: 1px solid #dce4df; margin: .35rem .4rem; }
@media (max-width: 767.98px) {
  .navbar-system-menu__items { right: 0; position: fixed; top: auto; margin-top: .5rem; }
  .navbar-kloud .container { gap: .5rem; }
}
