/* GSTS Tema — ficheiro gerado automaticamente. Não editar à mão:
   as alterações são substituídas ao gravar as Definições de Tema GSTS. */

/* Constantes de marca, iguais nos dois temas */
:root {
  --gsts-radius: 8px;
}

/* Tema claro — também em :root, porque o portal não marca data-theme */
[data-theme='light'], :root {
  --primary: #15803d;
  --primary-color: #15803d;
  --bg-color: #f3f8f4;
  --fg-color: #ffffff;
  --card-bg: #ffffff;
  --navbar-bg: #ffffff;
  --border-color: #dde1de;
  --control-bg: #eef3ef;
  --gsts-primary: #15803d;
  --gsts-primary-dark: #116832;
  --gsts-primary-soft: #e2efe7;
  --gsts-btn-bg: #15803d;
  --gsts-btn-fg: #ffffff;
  --gsts-btn-bg-hover: #126e34;
  --gsts-zebra: #f6faf7;
  --gsts-sidebar-bg: #102a1b;
  --gsts-sidebar-fg: #ffffff;
  --gsts-sidebar-muted: rgba(255, 255, 255, 0.66);
  --gsts-sidebar-hover: rgba(255, 255, 255, 0.1);
  --gsts-sidebar-active: rgba(255, 255, 255, 0.17);
  --gsts-sidebar-border: rgba(255, 255, 255, 0.12);
}

/* Tema escuro do Frappe — mesma marca, superfícies escuras */
[data-theme='dark'] {
  --primary: #5fa87b;
  --primary-color: #5fa87b;
  --bg-color: #0d1b16;
  --fg-color: #152420;
  --card-bg: #152420;
  --navbar-bg: #152420;
  --border-color: #313e3a;
  --control-bg: #11201c;
  --gsts-primary: #5fa87b;
  --gsts-primary-dark: #72b28a;
  --gsts-primary-soft: #233e32;
  --gsts-btn-bg: #5fa87b;
  --gsts-btn-fg: #111827;
  --gsts-btn-bg-hover: #519069;
  --gsts-zebra: #1a2a28;
  --gsts-sidebar-bg: #0a1c15;
  --gsts-sidebar-fg: #ffffff;
  --gsts-sidebar-muted: rgba(255, 255, 255, 0.66);
  --gsts-sidebar-hover: rgba(255, 255, 255, 0.1);
  --gsts-sidebar-active: rgba(255, 255, 255, 0.17);
  --gsts-sidebar-border: rgba(255, 255, 255, 0.12);
}

/* Cantos e cor de marca */
.widget, .frappe-card, .form-section, .list-row-container, .btn, .modal-content, .datatable {
  border-radius: var(--gsts-radius);
}
.btn-primary, .btn-primary:hover, .btn-primary:focus {
  background-color: var(--gsts-btn-bg) !important;
  border-color: var(--gsts-btn-bg) !important;
  color: var(--gsts-btn-fg) !important;
}
.btn-primary:hover { background-color: var(--gsts-btn-bg-hover) !important; }
a:not(.sidebar-header):not(.btn), .text-primary { color: var(--gsts-primary); }

/* Barra lateral de NAVEGAÇÃO (.body-sidebar).
   A barra direita do formulário (.layout-side-section) fica deliberadamente
   de fora: usa as cores normais do tema e o seu texto não é controlado aqui. */
.body-sidebar {
  background-color: var(--gsts-sidebar-bg) !important;
  color: var(--gsts-sidebar-fg) !important;
  border-right: 1px solid var(--gsts-sidebar-border) !important;
}
/* Os avatares ficam de fora: o Frappe define-lhes fundo e letra em par,
   já com contraste, e sobrepor a cor da barra partia-o (a inicial ficava
   quase branca sobre um tom médio). */
.body-sidebar a:not(.avatar):not(.avatar *),
.body-sidebar span:not(.avatar):not(.avatar *),
.body-sidebar div:not(.avatar):not(.avatar *),
.body-sidebar h4, .body-sidebar .sidebar-item-label, .body-sidebar .item-anchor,
.body-sidebar .desk-sidebar-item, .body-sidebar .dropdown-toggle {
  color: var(--gsts-sidebar-fg) !important;
}
.body-sidebar svg, .body-sidebar .icon, .body-sidebar .es-icon {
  stroke: var(--gsts-sidebar-fg) !important;
}
.body-sidebar .text-muted, .body-sidebar small, .body-sidebar .sidebar-group-title,
.body-sidebar .keyboard-shortcut {
  color: var(--gsts-sidebar-muted) !important;
}
/* Painéis flutuantes (notificações, dropdowns, popovers) estão dentro da barra
   no DOM, mas são superfícies normais com fundo próprio: não podem herdar a
   cor de texto da barra, senão ficam branco sobre branco. */
.body-sidebar .notifications-list, .body-sidebar .notifications-list *,
.body-sidebar .dropdown-menu, .body-sidebar .dropdown-menu *,
.body-sidebar .popover, .body-sidebar .popover *,
.body-sidebar .modal, .body-sidebar .modal *,
.body-sidebar .btn-secondary, .body-sidebar .btn-default,
.body-sidebar .awesomplete > ul, .body-sidebar .awesomplete > ul * {
  color: var(--text-color) !important;
  stroke: var(--text-color) !important;
}
/* Campos dentro da barra lateral mantêm-se legíveis por si próprios */
.body-sidebar input, .body-sidebar .form-control {
  background-color: var(--gsts-sidebar-hover) !important;
  color: var(--gsts-sidebar-fg) !important;
  border-color: var(--gsts-sidebar-border) !important;
}
.body-sidebar input::placeholder { color: var(--gsts-sidebar-muted) !important; }
.body-sidebar .desk-sidebar-item:hover, .body-sidebar .standard-sidebar-item:hover {
  background-color: var(--gsts-sidebar-hover) !important;
  border-radius: var(--gsts-radius);
}
/* Item ativo. O Frappe v16 marca-o com .active-sidebar e pinta-o de branco
   (var --fg-color); sem esta regra o texto branco da barra ficava branco
   sobre branco e o item aparecia como um retângulo vazio. */
.body-sidebar .active-sidebar, .body-sidebar .standard-sidebar-item.active-sidebar,
.body-sidebar .selected, .body-sidebar .standard-sidebar-item.selected,
.body-sidebar .sidebar-item-container.selected > .desk-sidebar-item {
  background-color: var(--gsts-sidebar-active) !important;
  border-radius: var(--gsts-radius);
  box-shadow: inset 3px 0 0 var(--gsts-primary) !important;
}

/* Superfícies */
body, .main-section, .page-container { background-color: var(--bg-color); }
.layout-main-section, .widget, .frappe-card, .form-section { background-color: var(--card-bg); }
/* O ecrã de aplicações não é um cartão: o conteúdo é curto e a área branca
   acabava a meio da página, deixando um degrau visível contra o fundo. */
#page-desktop .layout-main-section { background-color: transparent; }

/* Linhas alternadas (zebra) */
.list-row-container:nth-of-type(even),
table.table tbody tr:nth-of-type(even) { background-color: var(--gsts-zebra); }
/* Tabelas filhas: a cor tem de ser aplicada aos três níveis. A linha está
   em .grid-body .rows (o cabeçalho fica fora), tem um .data-row interno
   com fundo próprio, e cada célula .grid-static-col é branca por cima —
   pintar só a linha não se vê, porque as células tapam-na. */
.grid-body .rows > .grid-row:nth-of-type(even),
.grid-body .rows > .grid-row:nth-of-type(even) .data-row,
.grid-body .rows > .grid-row:nth-of-type(even) .grid-static-col {
  background-color: var(--gsts-zebra) !important;
}
.datatable .dt-row--even { background-color: var(--gsts-zebra) !important; }

/* Realce da linha sob o cursor */
.list-row-container:hover, .grid-body .grid-row:hover, table.table tbody tr:hover {
  background-color: var(--gsts-primary-soft) !important;
}
