:root {
    --dv-bg: #eef3f8;
    --dv-surface: rgba(255, 255, 255, 0.88);
    --dv-surface-strong: #ffffff;
    --dv-border: rgba(148, 163, 184, 0.22);
    --dv-text: #1e293b;
    --dv-muted: #64748b;
    --dv-primary: #0f766e;
    --dv-primary-strong: #0b5f58;
    --dv-primary-soft: rgba(15, 118, 110, 0.12);
    --dv-accent: #2563eb;
    --dv-accent-soft: rgba(37, 99, 235, 0.12);
    --dv-warning: #d97706;
    --dv-danger: #dc2626;
    --dv-shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
    --dv-shadow-soft: 0 10px 24px rgba(15, 23, 42, 0.06);
    --dv-radius: 20px;
    --dv-radius-sm: 14px;
    --dv-sidebar-width: 276px;
    --dv-sidebar-collapsed: 88px;
}

html,
body {
    min-height: 100%;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, 0.12), transparent 28%),
        radial-gradient(circle at top right, rgba(15, 118, 110, 0.16), transparent 22%),
        linear-gradient(180deg, #f7fafc 0%, var(--dv-bg) 100%);
    color: var(--dv-text);
    font-family: "Segoe UI", "Aptos", "Helvetica Neue", Arial, sans-serif;
}

body {
    background-attachment: fixed;
}

a {
    color: var(--dv-accent);
    transition: color 0.2s ease, opacity 0.2s ease;
}

a:hover,
a:focus {
    color: var(--dv-primary-strong);
    text-decoration: none;
}

.btn {
    border-radius: 999px;
    box-shadow: none;
    transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--dv-shadow-soft);
}

.btn-success {
    background: linear-gradient(135deg, var(--dv-primary), #159a8d);
    border-color: transparent;
}

.btn-success:hover,
.btn-success:focus {
    background: linear-gradient(135deg, var(--dv-primary-strong), var(--dv-primary));
}

.btn-warning {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border-color: transparent;
}

.btn-danger {
    background: linear-gradient(135deg, #ef4444, #b91c1c);
    border-color: transparent;
}

.btn-white {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid var(--dv-border);
    color: var(--dv-text);
}

.btn-white:hover {
    background: #fff;
    color: var(--dv-text);
}

.form-control,
.input-group-addon,
.select2-container .select2-choice,
.ui-select-bootstrap > .ui-select-match > .btn,
textarea {
    border-radius: 10px;
    border-color: rgba(148, 163, 184, 0.35);
    box-shadow: none;
}

.form-control:focus,
textarea:focus,
.ui-select-bootstrap > .ui-select-match > .btn:focus {
    border-color: rgba(37, 99, 235, 0.6);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

.uib-datepicker .btn,
.uib-datepicker-popup .btn,
.uib-daypicker .btn,
.uib-monthpicker .btn,
.uib-yearpicker .btn {
    border-radius: 8px;
}

.uib-datepicker .well,
.uib-datepicker-popup .well {
    border-radius: 12px;
}

.ibox,
.panel,
.widget,
.card,
.modal-content,
.dropdown-menu,
.table,
.well {
    border-radius: var(--dv-radius-sm);
}

.ibox,
.panel,
.widget,
.card,
.modal-content,
.well {
    border: 1px solid rgba(148, 163, 184, 0.18);
    box-shadow: var(--dv-shadow-soft);
    background: rgba(255, 255, 255, 0.9);
}

.ibox .widget.style1.yellow-bg,
.widget.style1.yellow-bg {
    background: linear-gradient(135deg, #f59e0b, #d97706) !important;
    color: #ffffff !important;
}

.ibox .widget.style1.yellow-bg h2,
.ibox .widget.style1.yellow-bg h3,
.ibox .widget.style1.yellow-bg i,
.widget.style1.yellow-bg h2,
.widget.style1.yellow-bg h3,
.widget.style1.yellow-bg i {
    color: #ffffff !important;
}

.panel-heading,
.ibox-title,
.modal-header {
    border-top-left-radius: var(--dv-radius-sm);
    border-top-right-radius: var(--dv-radius-sm);
}

.ibox .widget.style1.fluxo-caixa-resumo,
.widget.style1.fluxo-caixa-resumo {
    background: rgba(255, 255, 255, 0.98) !important;
    color: #24324a !important;
}

.ibox .widget.style1.fluxo-caixa-resumo h2,
.ibox .widget.style1.fluxo-caixa-resumo h3,
.ibox .widget.style1.fluxo-caixa-resumo i,
.ibox .widget.style1.fluxo-caixa-resumo .text-right,
.ibox .widget.style1.fluxo-caixa-resumo .text-center,
.widget.style1.fluxo-caixa-resumo h2,
.widget.style1.fluxo-caixa-resumo h3,
.widget.style1.fluxo-caixa-resumo i,
.widget.style1.fluxo-caixa-resumo .text-right,
.widget.style1.fluxo-caixa-resumo .text-center {
    color: #24324a !important;
}

.ibox .widget.style1.fluxo-caixa-resumo hr,
.widget.style1.fluxo-caixa-resumo hr {
    border-color: rgba(36, 50, 74, 0.14) !important;
}

.table > thead > tr > th {
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
    color: var(--dv-text);
}

/* Quadros de imagem precisam continuar retangulares, sem o pill radius global dos botoes */
.imagem-card-frame.btn,
.imagem-card-frame.btn.btn-white,
.imagem-card-frame.btn.btn-default-focus {
    border-radius: 8px !important;
}

.table > thead > tr.bg-BluePurpue > th,
.table > thead.bg-BluePurpue > tr > th,
.bg-BluePurpue > th,
.bg-BluePurpue > td {
    color: #f8fbff !important;
}

.table-striped > tbody > tr:nth-of-type(odd) {
    background-color: rgba(15, 118, 110, 0.03);
}

.dropdown-menu {
    border: 1px solid rgba(148, 163, 184, 0.18);
    box-shadow: var(--dv-shadow);
}

/* Agenda: corrige alinhamento vertical dos botoes do toolbar */
.page-agendamento .fc .fc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.2em;
    line-height: 1.2;
}

.page-agendamento .fc .fc-button .fc-icon,
.page-agendamento .fc .fc-button .fc-button-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* --- AJUSTES DE FLUIDEZ PARA MOBILE (Otimizado para novos elementos) --- */
@media (max-width: 768px) {
    /* 1. Reset de Background e Performance de Rolagem */
    html, body {
        background: var(--dv-bg) !important; /* Cor sólida é o mais rápido possível */
        background-image: none !important;
        background-attachment: scroll !important;
        overflow-x: hidden; /* Evita scrolls laterais acidentais */
    }

    /* 2. Remoção de Transparências (O maior gargalo de GPU) */
    .ibox, .panel, .widget, .card, .modal-content, .well,
    .btn-white, .ibox .widget.style1.fluxo-caixa-resumo,
    .dropdown-menu {
        background: #ffffff !important;
        backdrop-filter: none !important; /* Desativa blur se houver */
        -webkit-backdrop-filter: none !important;
        opacity: 1 !important;
    }

        /* 3. Otimização de Widgets Coloridos */
        /* Gradientes em widgets pequenos travam a rolagem ao entrar no viewport */
        .ibox .widget.style1.yellow-bg,
        .widget.style1.yellow-bg,
        .btn-success, .btn-warning, .btn-danger {
            background: var(--dv-warning) !important; /* Cor sólida no mobile */
            background-image: none !important;
        }

    .btn-success {
        background-color: var(--dv-primary) !important;
    }

    .btn-danger {
        background-color: var(--dv-danger) !important;
    }

    /* 4. Tabelas e Listas (Redução de repaints) */
    .table-striped > tbody > tr:nth-of-type(odd) {
        background-color: #f1f5f9 !important; /* Cinza sólido leve em vez de RGBA */
    }

    .table, .table > thead > tr > th {
        border-color: #e2e8f0 !important; /* Bordas sólidas */
    }

    /* 5. Datepickers e Calendários (Angular UI / Bootstrap) */
    /* Estes elementos costumam gerar muitos nós no DOM e pesar na rolagem */
    .uib-datepicker-popup, .uib-datepicker, .well {
        box-shadow: 0 4px 10px rgba(0,0,0,0.1) !important;
        border: 1px solid #ddd !important;
    }

    /* 6. Inputs e Formulários */
    .form-control,
    .select2-container .select2-choice,
    textarea {
        font-size: 16px !important; /* Impede o zoom forçado do iOS */
        appearance: none; /* Melhora renderização nativa */
    }

    /* 7. Desativação de Efeitos de Hover e Animações Complexas */
    .btn, .btn:hover, .card:hover, .ibox:hover {
        transform: none !important;
        transition: none !important; /* Desativar transitions no mobile economiza CPU */
        box-shadow: 0 2px 5px rgba(0,0,0,0.05) !important;
    }

    /* Força aceleração de hardware apenas onde necessário */
    .modal-content, .page-agendamento .fc {
        will-change: transform;
        transform: translateZ(0);
    }
}