﻿
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    min-height: 100vh; /* Fallback para navegadores mais antigos */
    min-height: 100dvh; /* Preferencial para melhor suporte mobile */
    display: flex;
    flex-direction: column;
}

#footer {
    padding: 15px; /* height of the footer */
}

.navbar-item.has-dropdown .navbar-dropdown {
    display: none;
}

.navbar-item.has-dropdown.is-active .navbar-dropdown {
    display: block;
}

.modal-card-foot {
    display: flex;
    justify-content: flex-end;
    padding: 15px;
}

.modal-header {
    padding: 10px;
}

.tab-content {
    display: none;
}

.tab-content.is-active {
    display: block;
    margin-top: 1rem;
}

.modal-card-foot {
    display: flex;
    justify-content: flex-end;
    padding: 15px;
}

.modal-header {
    padding: 10px;
}

.card-content {
    margin-top: 10px;
}

.skeleton-box {
    background-color: #dbdbdb;
    border-radius: 4px;
    animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
    0% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }

    100% {
        opacity: 1;
    }
}

/* Estilo base para todos os elementos skeleton */
.skeleton-label,
.skeleton-input,
.skeleton-select,
.skeleton-textarea,
.skeleton-button {
    background: linear-gradient(90deg, #eeeeee 25%, #dddddd 50%, #eeeeee 75%);
    background-size: 400% 100%;
    animation: shimmer 1.4s ease-in-out infinite;
    border-radius: 4px;
}

/* Rótulo dos campos */
.skeleton-label {
    height: 1rem;
    width: 40%;
    margin-bottom: 0.4rem;
}

/* Campos do tipo input e select */
.skeleton-input,
.skeleton-select {
    height: 2.5rem;
    width: 100%;
    margin-bottom: 1rem;
}

/* Área de texto simulada */
.skeleton-textarea {
    height: 9.5rem;
    width: 100%;
    margin-bottom: 1rem;
    border-radius: 6px;
}

/* Simulação de botão (opcional) */
.skeleton-button {
    height: 2.8rem;
    width: 40%;
    margin-top: 1.5rem;
}

/* Animação shimmer */
@keyframes shimmer {
    0% {
        background-position: -400px 0;
    }

    100% {
        background-position: 400px 0;
    }
}

.notification {
    position: fixed;
    top: 20%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 999;
    max-width: 400px;
    width: 90%;
    text-align: center;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

.choices__inner {
    min-height: 2.5em; /* altura padrão dos inputs Bulma */
    border-radius: 4px;
    padding: 0.5em 0.75em;
    box-shadow: none;
    font-size: 1rem;
    line-height: 1.4
}

.choices__list--single {
    padding: 0;
}

.choices__input {
    padding: 0 !important;
    margin: 0 !important;
}

/* Remove espaço extra no container */
.choices {
    margin-bottom: 0 !important;
}

.choices__list--dropdown {
    position: absolute !important;
    z-index: 9999 !important;
}

.table td, .table th {
    white-space: nowrap;
    box-sizing: border-box;
}

.modal-card.is-xl {
    max-width: 90vw;
    width: 100%;
}

.modal-card.is-lg {
    max-width: 1000px;
    width: 100%;
}

/* CSS Responsivo */
.action-bar {
    flex-wrap: wrap;
}

@media (max-width: 768px) {
    .action-bar {
        flex-direction: column;
        align-items: stretch;
    }

    .action-bar .control {
        width: 100%;
        margin-bottom: 0.5rem;
    }

    .action-bar .control:last-child {
        margin-bottom: 0;
    }

}

.progressBar-label {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    font-weight: bold;
    line-height: 20px;
    font-size: 0.9rem;
}

.modal,
.modal-card,
.modal-card-body {
    overflow: visible !important;
}

/*switch*/
/* Estilo do trilho do switch */
.custom-switch + label::before {
    content: "ON";
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-size: 0.8rem;
    font-weight: bold;
    color: #fff;
    background-color: #23d160;
    width: 4.5em !important; /* 🔍 Força a largura maior */
    height: 2.2em;
    padding-left: 0.7em;
    border-radius: 2em;
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

.custom-switch + label {
    display: inline-block;
    width: 4.5em; /* igual ao trilho */
    height: 2.2em;
    position: relative;
}

/* Quando ativado: mostrar ON à direita */
.custom-switch:checked + label::before {
    content: "ON";
    background-color: #23d160; /* verde */
    justify-content: flex-end;
    padding-right: 2.5em;
}

/* Estilo da alavanca deslizante (bolinha branca) */
.custom-switch + label::after {
    position: absolute;
    left: 0.25em;
    top: 0.1em;
    width: 1.5em;
    height: 1.8em;
    border-radius: 50%;
    background-color: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.2);
    transition: left 0.3s ease;
    z-index: 1;
}

.custom-switch:checked + label::after {
    left: calc(100% - 2.2em) !important;
}

/* Quando desligado, cor vermelha */
.custom-switch:not(:checked) + label::before {
    content: "OFF";
    background-color: #f14668; /* vermelho Bulma */
    justify-content: flex-start;
    padding-left: 1em;
}

table td .field.has-text-centered {
    margin: 0;
    padding: 0;
    line-height: 1;
    height: 2.2em; /* igual à altura do label do switch */
    display: flex;
    justify-content: center;
    align-items: center;
}

.text-shadow {
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.navbar.is-teal {
    background-color: #008B8B;
    color: white;
}


