:root { --acr: #3B82F6; }
body { background: #f5f7fb; }
.bg-acr { background: var(--acr) !important; }
.btn-primary { --bs-btn-bg: var(--acr); --bs-btn-border-color: var(--acr); }

.login-fundo { min-height: 85vh; display: flex; align-items: center; justify-content: center; }
body:has(.login-fundo) { background: var(--acr); }
.login-card { width: 100%; max-width: 440px; border-radius: 16px; border: 0; }
.btn-google { background: #fff; border: 1px solid #dadce0; color: #3c4043; font-weight: 500; }
.btn-google:hover { background: #f7f8f8; }

.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.table-sm td, .table-sm th { white-space: nowrap; font-size: .85rem; }
.lista-multi { max-height: 280px; overflow-y: auto; border: 1px solid #dee2e6; border-radius: .375rem; padding: .5rem; background: #fff; }
.lista-multi .form-check { margin-bottom: .15rem; }

/* Calendário de férias */
.cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal .cab { text-align: center; font-size: 11px; color: #6c757d; }
.cal .cab.fds { color: #ff4b4b; font-weight: bold; }
.cal .dia { border: 1px solid #ccc; border-radius: 5px; padding: 3px; min-height: 64px; text-align: center; font-size: 12px; }
.cal.compacto .dia { min-height: 40px; font-size: 11px; }
.cal .dia .nome { font-size: 10px; line-height: 1.1; }
.cal.compacto .dia .nome { font-size: 8px; font-weight: bold; }
.cal .dia.hoje { border: 3px solid #ff4b4b; }
.dia-normal { background: #f0f2f6; }
.dia-fds { background: #CC9900; color: #fff; }
.dia-ferias { background: #28a745; color: #fff; }
.legenda span.cx { display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: middle; margin-right: 4px; }
.periodo { background: #f8f9fa; padding: 6px 12px; border-left: 4px solid #28a745; border-radius: 4px; }
.periodo.azul { border-left-color: #007bff; }

.mes-card .valor { font-size: 1.25rem; font-weight: 600; }

/* Zona de upload (arrastar ficheiros ou clicar) */
.zona-upload { position: relative; border: 2px dashed #b8c2d3; border-radius: .5rem; padding: .9rem; text-align: center;
  background: #fff; color: #5b6475; cursor: pointer; transition: background .15s, border-color .15s; }
.zona-upload.pequena { padding: .45rem; font-size: .85rem; }
.zona-upload:hover, .zona-upload:focus { border-color: var(--acr); outline: none; }
.zona-upload.ativa { border-color: var(--acr); background: rgba(59,130,246,.08); color: var(--acr); }
.zona-upload.com-ficheiros { border-style: solid; border-color: #198754; }
.zona-upload-ficheiros { margin-top: .25rem; font-weight: 600; color: #198754; word-break: break-word; }
.zona-upload-ficheiros:empty { display: none; }
