:root {}

/* Acessibilidade */
.skip-link {
    position: absolute;
    left: 8px;
    top: 8px;
    padding: 8px 12px;
    background: #ffffff;
    color: #111827;
    border: 2px solid #111827;
    border-radius: 10px;
    transform: translateY(-200%);
    transition: transform 0.2s ease;
    z-index: 2000;
}
.skip-link:focus {
    transform: translateY(0);
}

.a11y-toolbar {
    position: fixed;
    right: 12px;
    bottom: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(226, 232, 240, 1);
    border-radius: 14px;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    z-index: 1500;
}

.a11y-floating-menu {
    position: fixed;
    right: 12px;
    bottom: 12px;
    z-index: 1500;
}

.a11y-dropdown-menu {
    min-width: 280px;
}

.vlibras-nav-btn i {
    line-height: 1;
}

.vlibras-fab {
    position: fixed;
    right: 12px;
    bottom: 12px;
    z-index: 1500;
    border: 1px solid rgba(226, 232, 240, 1);
    border-radius: 999px;
    padding: 10px 12px;
    background: rgba(17, 24, 39, 0.95);
    color: #fff;
    font-weight: 600;
    letter-spacing: 0.2px;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.18), 0 4px 6px -4px rgb(0 0 0 / 0.18);
}
.vlibras-fab:hover {
    filter: brightness(1.05);
}
.vlibras-fab:focus-visible {
    outline: 3px solid rgba(59, 130, 246, 0.7);
    outline-offset: 2px;
}

/* Se a toolbar de acessibilidade existir (login/cadastro), não sobrepor os dois FABs */
.a11y-toolbar ~ .vlibras-fab {
    bottom: 86px;
}

/* ====================================================
   ALTO CONTRASTE — cobertura completa da interface
   Classe .a11y-contrast aplicada em <html>
   ==================================================== */

/* --- Base --- */
.a11y-contrast body {
    background: #000 !important;
    color: #fff !important;
}
.a11y-contrast h1, .a11y-contrast h2, .a11y-contrast h3,
.a11y-contrast h4, .a11y-contrast h5, .a11y-contrast h6 {
    color: #fff !important;
}
.a11y-contrast .text-muted,
.a11y-contrast .opacity-75,
.a11y-contrast .opacity-50,
.a11y-contrast small {
    color: #d1d5db !important;
    opacity: 1 !important;
}
.a11y-contrast a {
    color: #93c5fd !important;
}
.a11y-contrast a:hover {
    color: #bfdbfe !important;
}
.a11y-contrast hr {
    border-color: #444 !important;
    opacity: 1 !important;
}

/* --- Navbar --- */
.a11y-contrast .navbar {
    background: #000 !important;
    border-bottom: 2px solid #ffd700 !important;
}
.a11y-contrast .navbar .navbar-brand,
.a11y-contrast .navbar .nav-link,
.a11y-contrast .navbar .btn,
.a11y-contrast .navbar .brand-subtitle {
    color: #fff !important;
}
.a11y-contrast .navbar .form-control {
    background: #111 !important;
    color: #fff !important;
    border-color: #555 !important;
}

/* --- Sidebar --- */
.a11y-contrast .sidebar {
    background: #0a0a0a !important;
    border-color: #444 !important;
}
.a11y-contrast .sidebar .nav-link {
    color: #e5e7eb !important;
}
.a11y-contrast .sidebar .nav-link i {
    color: #93c5fd !important;
}
.a11y-contrast .sidebar .nav-link:hover {
    background: #1a1a2e !important;
    color: #fff !important;
}
.a11y-contrast .sidebar .nav-link.active {
    background: #ffd700 !important;
    color: #000 !important;
    box-shadow: none !important;
}
.a11y-contrast .sidebar .nav-link.active i {
    color: #000 !important;
}
.a11y-contrast .sidebar-heading,
.a11y-contrast .sidebar-heading span {
    color: #9ca3af !important;
    background: transparent !important;
}
.a11y-contrast .sidebar-heading::after {
    background-color: #333 !important;
}

/* --- Cards --- */
.a11y-contrast .card,
.a11y-contrast .modal-content {
    background: #111 !important;
    color: #fff !important;
    border-color: #555 !important;
}
.a11y-contrast .card-header {
    border-color: #444 !important;
}

/* --- Stat Cards (Dashboard) --- */
.a11y-contrast .stat-card {
    border: 2px solid #ffd700 !important;
}
.a11y-contrast .stat-card.bg-primary {
    background: #1e3a5f !important;
}
.a11y-contrast .stat-card.bg-warning {
    background: #5c4200 !important;
}
.a11y-contrast .stat-card.bg-success {
    background: #14532d !important;
}
.a11y-contrast .stat-card.bg-danger {
    background: #5c1010 !important;
}
.a11y-contrast .stat-card,
.a11y-contrast .stat-card * {
    color: #fff !important;
}
.a11y-contrast .stat-card i {
    opacity: 0.25 !important;
}

/* --- Tabelas --- */
.a11y-contrast .table {
    background: #111 !important;
    color: #fff !important;
    border-color: #444 !important;
}
.a11y-contrast .table th {
    background: #1a1a1a !important;
    color: #ffd700 !important;
    border-color: #444 !important;
}
.a11y-contrast .table td {
    border-color: #333 !important;
    color: #e5e7eb !important;
}
.a11y-contrast .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #0d0d0d !important;
    color: #e5e7eb !important;
}
.a11y-contrast .table-hover > tbody > tr:hover > * {
    background-color: #1a1a2e !important;
    color: #fff !important;
}

/* --- Badges --- */
.a11y-contrast .badge {
    border: 1px solid #fff !important;
}
.a11y-contrast .badge.bg-primary {
    background: #1e40af !important;
    color: #fff !important;
}
.a11y-contrast .badge.bg-success {
    background: #166534 !important;
    color: #fff !important;
}
.a11y-contrast .badge.bg-warning {
    background: #854d0e !important;
    color: #fff !important;
}
.a11y-contrast .badge.bg-danger {
    background: #991b1b !important;
    color: #fff !important;
}
.a11y-contrast .badge.bg-info {
    background: #075985 !important;
    color: #fff !important;
}

/* --- Alerts --- */
.a11y-contrast .alert {
    border: 2px solid #ffd700 !important;
    color: #fff !important;
}
.a11y-contrast .alert-warning {
    background: #5c4200 !important;
}
.a11y-contrast .alert-danger {
    background: #5c1010 !important;
}
.a11y-contrast .alert-success {
    background: #14532d !important;
}
.a11y-contrast .alert-info {
    background: #0c3547 !important;
}
.a11y-contrast .alert a {
    color: #ffd700 !important;
}

/* --- Formulários --- */
.a11y-contrast .form-control,
.a11y-contrast .form-select {
    background: #111 !important;
    color: #fff !important;
    border-color: #666 !important;
}
.a11y-contrast .form-control::placeholder {
    color: #888 !important;
}
.a11y-contrast .form-control:focus,
.a11y-contrast .form-select:focus {
    border-color: #ffd700 !important;
    box-shadow: 0 0 0 3px rgba(255, 215, 0, 0.3) !important;
}
.a11y-contrast .form-label,
.a11y-contrast label {
    color: #e5e7eb !important;
}
.a11y-contrast .form-text {
    color: #9ca3af !important;
}
.a11y-contrast .form-check-input {
    background-color: #222 !important;
    border-color: #666 !important;
}

/* --- Botões --- */
.a11y-contrast .btn-primary {
    background: #2563eb !important;
    border-color: #3b82f6 !important;
    color: #fff !important;
}
.a11y-contrast .btn-success {
    background: #16a34a !important;
    border-color: #22c55e !important;
    color: #fff !important;
}
.a11y-contrast .btn-danger {
    background: #dc2626 !important;
    border-color: #ef4444 !important;
    color: #fff !important;
}
.a11y-contrast .btn-warning {
    background: #d97706 !important;
    border-color: #f59e0b !important;
    color: #fff !important;
}
.a11y-contrast .btn-light,
.a11y-contrast .btn-outline-light {
    background: #222 !important;
    color: #fff !important;
    border-color: #555 !important;
}
.a11y-contrast .btn-outline-secondary {
    color: #d1d5db !important;
    border-color: #555 !important;
}
.a11y-contrast .btn-outline-secondary:hover {
    background: #333 !important;
    color: #fff !important;
}

/* --- Dropdown --- */
.a11y-contrast .dropdown-menu {
    background: #111 !important;
    color: #fff !important;
    border-color: #555 !important;
}
.a11y-contrast .dropdown-item {
    color: #e5e7eb !important;
}
.a11y-contrast .dropdown-item:hover,
.a11y-contrast .dropdown-item:focus {
    background: #1a1a2e !important;
    color: #fff !important;
}

/* --- Bordas e divisores Bootstrap --- */
.a11y-contrast .border,
.a11y-contrast .border-top,
.a11y-contrast .border-bottom,
.a11y-contrast .border-start,
.a11y-contrast .border-end {
    border-color: #444 !important;
}

/* --- Login page --- */
.a11y-contrast .login-page {
    background: #000 !important;
}
.a11y-contrast .login-card {
    background: #111 !important;
    border: 2px solid #ffd700 !important;
}
.a11y-contrast .login-header {
    background: #0a0a0a !important;
    border-bottom: 2px solid #ffd700 !important;
}

/* --- Footer --- */
.a11y-contrast footer {
    background: #000 !important;
    color: #d1d5db !important;
    border-color: #444 !important;
}

/* --- Componentes específicos do Agiliza --- */
.a11y-contrast .bg-white,
.a11y-contrast .bg-light {
    background: #111 !important;
}
.a11y-contrast .shadow,
.a11y-contrast .shadow-sm,
.a11y-contrast .shadow-lg {
    box-shadow: 0 0 0 1px #333 !important;
}
.a11y-contrast .text-primary {
    color: #60a5fa !important;
}
.a11y-contrast .text-success {
    color: #4ade80 !important;
}
.a11y-contrast .text-danger {
    color: #f87171 !important;
}
.a11y-contrast .text-warning {
    color: #fbbf24 !important;
}
.a11y-contrast .list-group-item {
    background: #111 !important;
    color: #e5e7eb !important;
    border-color: #333 !important;
}
.a11y-contrast .modal-header,
.a11y-contrast .modal-footer {
    border-color: #444 !important;
}
.a11y-contrast .pagination .page-link {
    background: #111 !important;
    color: #93c5fd !important;
    border-color: #444 !important;
}
.a11y-contrast .pagination .active .page-link {
    background: #ffd700 !important;
    color: #000 !important;
    border-color: #ffd700 !important;
}
.a11y-contrast .breadcrumb {
    background: transparent !important;
}
.a11y-contrast .breadcrumb-item a {
    color: #93c5fd !important;
}
.a11y-contrast .breadcrumb-item.active {
    color: #d1d5db !important;
}
.a11y-contrast .nav-tabs .nav-link {
    color: #d1d5db !important;
    border-color: #444 !important;
}
.a11y-contrast .nav-tabs .nav-link.active {
    background: #111 !important;
    color: #ffd700 !important;
    border-color: #555 !important;
    border-bottom-color: #111 !important;
}

/* --- Override agressivo de utilitários Bootstrap claros --- */
.a11y-contrast .table-light,
.a11y-contrast .table-light th,
.a11y-contrast .table-light td,
.a11y-contrast thead.table-light,
.a11y-contrast thead.table-light th {
    background-color: #1a1a1a !important;
    color: #ffd700 !important;
    border-color: #444 !important;
}
.a11y-contrast .table > tbody > tr {
    background-color: #0d0d0d !important;
    color: #e5e7eb !important;
}
.a11y-contrast .table > tbody > tr > td {
    background-color: inherit !important;
    color: #e5e7eb !important;
    border-color: #2a2a2a !important;
}
.a11y-contrast .table > tbody > tr:hover > td {
    background-color: #1a1a2e !important;
    color: #fff !important;
}
.a11y-contrast .bg-light {
    background-color: #1a1a1a !important;
    color: #e5e7eb !important;
}
.a11y-contrast .text-dark {
    color: #e5e7eb !important;
}
.a11y-contrast .badge.bg-light {
    background-color: #333 !important;
    color: #fff !important;
    border-color: #666 !important;
}
.a11y-contrast .badge.bg-secondary {
    background-color: #444 !important;
    color: #fff !important;
}
.a11y-contrast .card-header.bg-light {
    background-color: #1a1a1a !important;
    color: #e5e7eb !important;
    border-color: #444 !important;
}
.a11y-contrast .fw-medium,
.a11y-contrast .fw-bold,
.a11y-contrast .fw-semibold {
    color: inherit !important;
}
.a11y-contrast .table .small,
.a11y-contrast .table small {
    color: #9ca3af !important;
}

/* --- Container e área principal --- */
.a11y-contrast main,
.a11y-contrast .container-fluid,
.a11y-contrast [role="main"] {
    background-color: #000 !important;
}
.a11y-contrast .pt-3.pb-2.border-bottom {
    border-color: #444 !important;
}

/* --- Footer reforçado --- */
.a11y-contrast footer,
.a11y-contrast footer * {
    background-color: #000 !important;
    color: #d1d5db !important;
}
.a11y-contrast footer a {
    color: #93c5fd !important;
}

/* --- btn-close (X de fechar) --- */
.a11y-contrast .btn-close {
    filter: invert(1) !important;
}

/* --- Accordion / Collapse --- */
.a11y-contrast .accordion-item {
    background: #111 !important;
    border-color: #444 !important;
}
.a11y-contrast .accordion-button {
    background: #1a1a1a !important;
    color: #e5e7eb !important;
}
.a11y-contrast .accordion-button:not(.collapsed) {
    background: #1a1a2e !important;
    color: #ffd700 !important;
}
.a11y-contrast .accordion-body {
    background: #111 !important;
    color: #e5e7eb !important;
}

