/* TECBIO Custom Theme - Black, White, Gray */
/* Override AdminLTE defaults */

/* Root variables */
:root {
    --color-primary: #000000;
    --color-secondary: #6c757d;
    --color-success: #28a745;
    --color-info: #17a2b8;
    --color-warning: #ffc107;
    --color-danger: #dc3545;
    --color-light: #f8f9fa;
    --color-dark: #343a40;
    --color-gray-100: #f8f9fa;
    --color-gray-200: #e9ecef;
    --color-gray-300: #dee2e6;
    --color-gray-400: #ced4da;
    --color-gray-500: #adb5bd;
    --color-gray-600: #6c757d;
    --color-gray-700: #495057;
    --color-gray-800: #343a40;
    --color-gray-900: #212529;
    --login-width: min(92vw, 420px);
    --login-width-md: min(90vw, 520px);
}

/* Body and background */
body {
    background-color: var(--color-gray-100);
    color: var(--color-gray-900);
}

.login-page,
.register-page {
    background: url('/assets/img/fundo.png') center center / cover no-repeat fixed;
    min-height: 100vh;
}

.login-box,
.register-box {
    position: relative;
    z-index: 1;
    width: var(--login-width);
    max-width: 100%;
    margin: 0 auto;
}

.login-box > .card,
.register-box > .card {
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(2px);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}

.login-box .card-header,
.register-box .card-header {
    padding: 1rem 1.25rem;
    border-bottom: none;
    background: rgba(255, 255, 255, 0.9);
}

.login-box .card-header img,
.register-box .card-header img {
    max-height: 180px;
    width: auto;
    max-width: 100%;
    display: block;
    margin: 0 auto;
}

.login-box .card-body,
.register-box .card-body {
    padding: 1.25rem 1.1rem 1.5rem;
}

.login-box-msg,
.register-box .login-box-msg {
    font-size: 1.1rem;
    margin-bottom: 1rem;
    text-align: center;
    color: var(--color-gray-700);
}

.login-box .input-group,
.register-box .input-group {
    min-height: 48px;
}

.login-box .form-control,
.register-box .form-control,
.modal .form-control {
    min-height: 46px;
    font-size: 0.96rem;
}

.login-box .btn,
.register-box .btn,
.modal .btn {
    min-height: 46px;
    font-size: 0.96rem;
    border-radius: 10px;
}

.modal-dialog {
    width: min(92vw, 520px);
    margin: 1.5rem auto;
}

.modal-content {
    border-radius: 16px;
    border: 0;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.14);
}

.modal-header {
    padding: 1rem 1.1rem;
}

.modal-title {
    font-size: 1.15rem;
    font-weight: 700;
}

.modal-body {
    padding: 1rem 1.1rem 0.75rem;
}

.modal-footer {
    padding: 0.75rem 1.1rem 1rem;
    border-top: 0;
    gap: 0.5rem;
}

@media (min-width: 768px) {
    .login-box,
    .register-box {
        width: var(--login-width-md);
    }

    .login-box .card-body,
    .register-box .card-body {
        padding: 1.6rem 1.6rem 1.8rem;
    }
}

@media (max-width: 767px) {
    .login-page,
    .register-page {
        background-attachment: scroll;
        padding: 1.25rem 0;
    }

    .login-box,
    .register-box {
        width: min(100%, 360px);
    }

    .login-box .card-header img,
    .register-box .card-header img {
        max-height: 135px;
    }

    .login-box .card-body,
    .register-box .card-body {
        padding: 1rem 0.9rem 1.2rem;
    }
}

/* Brand/logo */
.brand-link {
    background-color: var(--color-dark);
}
.brand-link:hover {
    background-color: var(--color-black);
}

/* Sidebar */
.main-sidebar {
    background-color: var(--color-dark);
}

.nav-sidebar .nav-link {
    color: var(--color-gray-200);
}
.nav-sidebar .nav-link:hover {
    background-color: rgba(255,255,255,0.05);
    color: var(--color-white);
}
.nav-sidebar .nav-link.active,
.nav-sidebar .nav-link.active:hover {
    background-color: var(--color-black);
    color: var(--color-white);
}
.nav-header {
    color: var(--color-gray-400);
    background-color: var(--color-dark);
}

/* Navbar */
.main-header {
    background-color: var(--color-gray-200);
    border-bottom: 1px solid var(--color-gray-300);
}
.main-header .navbar {
    background-color: var(--color-gray-200);
}
.main-header .nav-link {
    color: var(--color-gray-600);
}
.main-header .nav-link:hover {
    background-color: rgba(0,0,0,0.1);
    color: var(--color-gray-900);
}
.main-header .nav-link.active {
    background-color: var(--color-gray-300);
    color: var(--color-gray-900);
}

/* Cards */
.card {
    border: none;
    border-radius: 0.5rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
}
.card-header {
    background-color: var(--color-gray-200);
    border-bottom: 1px solid var(--color-gray-300);
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
}
.card-header + .card-body > .table:first-child {
    border-top: none;
}

/* Buttons */
.btn {
    border-radius: 0.375rem;
    font-weight: 600;
    transition: all 0.2s ease-in-out;
}
.btn:not(:disabled):not(.disabled):active,
.btn:not(:disabled):not(.disabled).active {
    box-shadow: inset 0 3px 5px rgba(0,0,0,0.125);
}
.btn-outline-primary {
    color: var(--color-dark);
    border-color: var(--color-dark);
}
.btn-outline-primary:hover {
    color: var(--color-white);
    background-color: var(--color-dark);
    border-color: var(--color-dark);
}
.btn-outline-secondary {
    color: var(--color-gray-600);
    border-color: var(--color-gray-400);
}
.btn-outline-secondary:hover {
    color: var(--color-white);
    background-color: var(--color-gray-600);
    border-color: var(--color-gray-600);
}
.btn-outline-success {
    color: var(--color-success);
    border-color: var(--color-success);
}
.btn-outline-success:hover {
    color: var(--color-white);
    background-color: var(--color-success);
    border-color: var(--color-success);
}
.btn-outline-info {
    color: var(--color-info);
    border-color: var(--color-info);
}
.btn-outline-info:hover {
    color: var(--color-white);
    background-color: var(--color-info);
    border-color: var(--color-info);
}
.btn-outline-warning {
    color: var(--color-warning);
    border-color: var(--color-warning);
}
.btn-outline-warning:hover {
    color: var(--color-gray-900);
    background-color: var(--color-warning);
    border-color: var(--color-warning);
}
.btn-outline-danger {
    color: var(--color-danger);
    border-color: var(--color-danger);
}
.btn-outline-danger:hover {
    color: var(--color-white);
    background-color: var(--color-danger);
    border-color: var(--color-danger);
}

/* Inputs */
.form-control {
    border-radius: 0.375rem;
    border: 1px solid var(--color-gray-300);
    background-color: var(--color-white);
    color: var(--color-gray-900);
}
.form-control:focus {
    border-color: var(--color-dark);
    box-shadow: 0 0 0 0.2rem rgba(0,0,0,0.075);
}
.form-control::placeholder {
    color: var(--color-gray-500);
    opacity: 1;
}

/* Select */
.form-select {
    border-radius: 0.375rem;
    border: 1px solid var(--color-gray-300);
    background-color: var(--color-white);
}
.form-select:focus {
    border-color: var(--color-dark);
    box-shadow: 0 0 0 0.2rem rgba(0,0,0,0.075);
}

/* Tables */
.table {
    color: var(--color-gray-900);
}
.table thead th {
    background-color: var(--color-gray-200);
    border-bottom: 2px solid var(--color-gray-300);
}
.table tbody tr:hover {
    background-color: var(--color-gray-100);
}
.table tbody tr.selected {
    background-color: rgba(0,0,0,0.075);
}

/* Badges */
.badge {
    border-radius: 0.375rem;
    font-weight: 600;
}
.badge-primary {
    background-color: var(--color-dark);
}
.badge-secondary {
    background-color: var(--color-gray-600);
}
.badge-success {
    background-color: var(--color-success);
}
.badge-info {
    background-color: var(--color-info);
}
.badge-warning {
    background-color: var(--color-warning);
    color: var(--color-gray-900);
}
.badge-danger {
    background-color: var(--color-danger);
}

/* Alerts */
.alert {
    border-radius: 0.375rem;
    padding: 1rem;
}
.alert-primary {
    background-color: var(--color-dark);
    color: var(--color-white);
}
.alert-secondary {
    background-color: var(--color-gray-200);
    color: var(--color-gray-900);
}
.alert-success {
    background-color: var(--color-success);
    color: var(--color-white);
}
.alert-info {
    background-color: var(--color-info);
    color: var(--color-white);
}
.alert-warning {
    background-color: var(--color-warning);
    color: var(--color-gray-900);
}
.alert-danger {
    background-color: var(--color-danger);
    color: var(--color-white);
}

/* Modals */
.modal-content {
    border-radius: 0.5rem;
    border: none;
}
.modal-header {
    background-color: var(--color-gray-200);
    border-bottom: 1px solid var(--color-gray-300);
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
}
.modal-footer {
    background-color: var(--color-gray-200);
    border-top: 1px solid var(--color-gray-300);
}

/* Dropdowns */
.dropdown-menu {
    border-radius: 0.375rem;
    border: none;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}
.dropdown-item {
    color: var(--color-gray-900);
}
.dropdown-item:hover,
.dropdown-item.active {
    background-color: var(--color-gray-200);
    color: var(--color-gray-900);
}

/* Nav pills */
.nav-pills .nav-link {
    border-radius: 0.375rem;
    color: var(--color-gray-600);
}
.nav-pills .nav-link.active,
.nav-pills .nav-show > .nav-link {
    background-color: var(--color-dark);
    color: var(--color-white);
}

/* Progress */
.progress {
    background-color: var(--color-gray-200);
    border-radius: 0.375rem;
}
.progress-bar {
    background-color: var(--color-dark);
}

/* List group */
.list-group-item {
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-300);
}
.list-group-item.active {
    background-color: var(--color-dark);
    border-color: var(--color-dark);
    color: var(--color-white);
}
.list-group-item:hover:not(.active) {
    background-color: var(--color-gray-100);
}

/* Tooltips */
.tooltip-inner {
    background-color: var(--color-dark);
    color: var(--color-white);
}
.bs-tooltip-auto[x-placement^=top] .arrow::before,
.bs-tooltip-top .arrow::before {
    border-top-color: var(--color-dark);
}
.bs-tooltip-auto[x-placement^=right] .arrow::before,
.bs-tooltip-right .arrow::before {
    border-right-color: var(--color-dark);
}
.bs-tooltip-auto[x-placement^=bottom] .arrow::before,
.bs-tooltip-bottom .arrow::before {
    border-bottom-color: var(--color-dark);
}
.bs-tooltip-auto[x-placement^=left] .arrow::before,
.bs-tooltip-left .arrow::before {
    border-left-color: var(--color-dark);
}

/* Ensure alerts keep their semantic colors (already set above) */
/* Override any AdminLTE specific colors that might conflict */
.bg-primary { background-color: var(--color-dark) !important; }
.bg-secondary { background-color: var(--color-gray-600) !important; }
.bg-success { background-color: var(--color-success) !important; }
.bg-info { background-color: var(--color-info) !important; }
.bg-warning { background-color: var(--color-warning) !important; color: var(--color-gray-900); }
.bg-danger { background-color: var(--color-danger) !important; }

.text-primary { color: var(--color-dark) !important; }
.text-secondary { color: var(--color-gray-600) !important; }
.text-success { color: var(--color-success) !important; }
.text-info { color: var(--color-info) !important; }
.text-warning { color: var(--color-warning) !important; }
.text-danger { color: var(--color-danger) !important; }

.border-primary { border-color: var(--color-dark) !important; }
.border-secondary { border-color: var(--color-gray-600) !important; }
.border-success { border-color: var(--color-success) !important; }
.border-info { border-color: var(--color-info) !important; }
.border-warning { border-color: var(--color-warning) !important; }
.border-danger { border-color: var(--color-danger) !important; }

/* Summary cards: branco com contorno cinza por padrão */
.summary-card {
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-300);
}
.summary-card .card-title {
    color: var(--color-gray-700);
    font-weight: 700;
}
.summary-card .card-text {
    color: var(--color-gray-900);
}
/* Cartão de pendentes suave laranja quando houver pendentes */
.card-pending {
    background-color: rgba(255, 165, 0, 0.08);
    border-color: rgba(255, 165, 0, 0.25);
}

/* Garantir cores reais para botões importantes (não fiquem cinzas)
   - usa !important para sobrescrever regras anteriores específicas do tema */
.btn-info { background-color: var(--color-info) !important; border-color: var(--color-info) !important; color: #fff !important; }
.btn-success { background-color: var(--color-success) !important; border-color: var(--color-success) !important; color: #fff !important; }
.btn-warning { background-color: var(--color-warning) !important; border-color: var(--color-warning) !important; color: var(--color-gray-900) !important; }
.btn-danger { background-color: var(--color-danger) !important; border-color: var(--color-danger) !important; color: #fff !important; }