/*
 * SPVnet 2.0 - VD2025 Dynamic Table
 * Modern table with animations for VD2025 declaration
 * Date: 2025-01-06
 *
 * NOTE: Using !important everywhere to win specificity wars with legacy CSS
 */

/* ============================================
   CONTAINER & PAGE HEADER
   ============================================ */
.vd2025-tabela-dinamica-container {
    padding: 24px !important;
    background: #f8f9fa !important;
    min-height: 100vh !important;
}

.vd2025-page-header {
    background: linear-gradient(135deg, #35aa47 0%, #2d8b3a 100%) !important;
    padding: 24px 32px !important;
    border-radius: 12px !important;
    margin-bottom: 24px !important;
    box-shadow: 0 4px 12px rgba(53, 170, 71, 0.2) !important;
}

.vd2025-page-title {
    color: white !important;
    font-size: 28px !important;
    font-weight: 600 !important;
    margin: 0 0 8px 0 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
}

    .vd2025-page-title i {
        margin-right: 12px !important;
        opacity: 0.9 !important;
    }

.vd2025-page-subtitle {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 14px !important;
    margin: 0 !important;
}

/* ============================================
   TABS (ZONAS)
   ============================================ */
.vd2025-tabs-container {
    background: white !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
    overflow: hidden !important;
}

.vd2025-nav-tabs {
    border-bottom: 3px solid #35aa47 !important;
    background: #f8f9fa !important;
    padding: 8px 8px 0 8px !important;
    margin: 0 !important;
}

    .vd2025-nav-tabs > li {
        margin-bottom: -3px !important;
    }

.vd2025-tab-link {
    border: none !important;
    border-radius: 8px 8px 0 0 !important;
    padding: 12px 24px !important;
    background: transparent !important;
    color: #6c757d !important;
    transition: all 0.3s ease !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

    .vd2025-tab-link:hover {
        background: rgba(53, 170, 71, 0.1) !important;
        color: #35aa47 !important;
    }

.vd2025-nav-tabs > li.active .vd2025-tab-link {
    background: white !important;
    color: #35aa47 !important;
    border-bottom: 3px solid #35aa47 !important;
    font-weight: 600 !important;
}

.vd2025-tab-cod {
    font-weight: 700 !important;
    font-size: 14px !important;
}

.vd2025-tab-nome {
    font-size: 12px !important;
    opacity: 0.8 !important;
}

.vd2025-tab-content {
    padding: 24px !important;
}

.vd2025-tab-pane {
    animation: fadeIn 0.3s ease !important;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ============================================
   TOOLBAR - Integrated Table Footer
   ============================================ */
.vd2025-toolbar {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 10px 12px !important;
    background: linear-gradient(to bottom, #f8f9fa 0%, #f0f0f0 100%) !important;
    border-top: 1px solid #e0e0e0 !important;
    border-radius: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.vd2025-btn-add-row {
    background: linear-gradient(135deg, #35aa47 0%, #2d8b3a 100%) !important;
    border: none !important;
    color: white !important;
    padding: 6px 14px !important;
    border-radius: 6px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 4px rgba(53, 170, 71, 0.25) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

    .vd2025-btn-add-row:hover {
        background: linear-gradient(135deg, #2d8b3a 0%, #258030 100%) !important;
        transform: translateY(-1px) !important;
        box-shadow: 0 3px 8px rgba(53, 170, 71, 0.35) !important;
    }

    .vd2025-btn-add-row:active,
    .vd2025-btn-add-row:focus {
        background: linear-gradient(135deg, #35aa47 0%, #2d8b3a 100%) !important;
        outline: none !important;
        transform: translateY(0) !important;
    }

    .vd2025-btn-add-row i {
        font-size: 11px !important;
        margin-right: 0 !important;
    }

.vd2025-toolbar-info {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 12px !important;
    color: #6c757d !important;
    font-weight: 500 !important;
}

    .vd2025-toolbar-info i {
        color: #9e9e9e !important;
        font-size: 11px !important;
    }

.vd2025-count-value {
    font-weight: 700 !important;
    color: #495057 !important;
}

/* ============================================
   TABLE WRAPPER & TABLE
   ============================================ */
.vd2025-table-wrapper {
    overflow-x: auto !important;
    border-radius: 8px !important;
    border: 1px solid #e9ecef !important;
}

.vd2025-table {
    width: 100% !important;
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: white !important;
}

/* ============================================
   TABLE HEADER
   ============================================ */
.vd2025-table-header {
    background: linear-gradient(135deg, #35aa47 0%, #2d8b3a 100%) !important;
}

    .vd2025-table-header th {
        color: white !important;
        font-weight: 600 !important;
        padding: 16px 12px !important;
        text-align: center !important;
        font-size: 13px !important;
        border: none !important;
        white-space: nowrap !important;
        position: sticky !important;
        top: 0 !important;
        z-index: 10 !important;
    }

        .vd2025-table-header th i {
            margin-right: 6px !important;
            opacity: 0.9 !important;
        }

.vd2025-th-grupo {
    min-width: 200px !important;
}

.vd2025-th-material {
    min-width: 250px !important;
}

.vd2025-th-bonificacao {
    min-width: 100px !important;
}

.vd2025-th-tipologia {
    min-width: 100px !important;
    max-width: 140px !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    line-height: 1.3 !important;
}

.vd2025-th-total {
    min-width: 150px !important;
    background: rgba(255, 255, 255, 0.15) !important;
}

.vd2025-th-actions {
    min-width: 80px !important;
}

/* ============================================
   TABLE BODY & ROWS
   ============================================ */
.vd2025-table-body tr {
    transition: all 0.2s ease !important;
}

    .vd2025-table-body tr:not(.vd2025-row-template):hover {
        background: rgba(53, 170, 71, 0.05) !important;
    }

.vd2025-table-body td {
    padding: 12px !important;
    border-bottom: 1px solid #e9ecef !important;
    vertical-align: middle !important;
}

/* Row animations */
@keyframes slideInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideOutUp {
    from {
        opacity: 1;
        transform: translateY(0);
    }

    to {
        opacity: 0;
        transform: translateY(-20px);
    }
}

.vd2025-row-adding {
    animation: slideInDown 0.4s ease !important;
}

.vd2025-row-removing {
    animation: slideOutUp 0.3s ease !important;
}

/* ============================================
   BOOTSTRAP-SELECT CUSTOMIZATION
   ============================================ */
.vd2025-select-style.btn-default {
    border: 2px solid #e9ecef !important;
    border-radius: 6px !important;
    padding: 8px 12px !important;
    background: white !important;
    color: #495057 !important;
    transition: all 0.2s ease !important;
}

    .vd2025-select-style.btn-default:hover,
    .vd2025-select-style.btn-default:focus {
        border-color: #35aa47 !important;
        box-shadow: 0 0 0 3px rgba(53, 170, 71, 0.1) !important;
    }

    .vd2025-select-style.btn-default:focus {
        outline: none !important;
    }

.bootstrap-select.open .vd2025-select-style {
    border-color: #35aa47 !important;
    box-shadow: 0 0 0 3px rgba(53, 170, 71, 0.15) !important;
}

/* Dropdown menu */
.vd2025-select-grupo.bootstrap-select .dropdown-menu,
.vd2025-select-material.bootstrap-select .dropdown-menu {
    border: 2px solid #35aa47 !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    margin-top: 4px !important;
}

.form-declaracao-vd2025 .bootstrap-select .dropdown-menu > li > a {
    padding: 10px 16px !important;
    transition: all 0.2s ease !important;
}

.form-declaracao-vd2025 .bootstrap-select .dropdown-menu > li.selected > a,
.form-declaracao-vd2025 .bootstrap-select .dropdown-menu > li.active > a {
    background: linear-gradient(135deg, #35aa47 0%, #2d8b3a 100%) !important;
    color: white !important;
}

.form-declaracao-vd2025 .bootstrap-select .dropdown-menu > li > a:hover {
    background: rgba(53, 170, 71, 0.1) !important;
    color: #35aa47 !important;
}

/* Search box */
.form-declaracao-vd2025 .bootstrap-select .bs-searchbox input {
    border: 2px solid #e9ecef !important;
    border-radius: 6px !important;
    padding: 8px 12px !important;
    transition: all 0.2s ease !important;
}

    .form-declaracao-vd2025 .bootstrap-select .bs-searchbox input:focus {
        border-color: #35aa47 !important;
        box-shadow: 0 0 0 3px rgba(53, 170, 71, 0.1) !important;
        outline: none !important;
    }

/* ============================================
   CHECKBOX (BONIFICAÇÃO)
   ============================================ */
.vd2025-checkbox-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    user-select: none !important;
    margin: 0 !important;
}

.vd2025-checkbox-bonificacao {
    position: absolute !important;
    opacity: 0 !important;
    cursor: pointer !important;
}

.vd2025-checkbox-checkmark {
    width: 24px !important;
    height: 24px !important;
    border: 2px solid #e9ecef !important;
    border-radius: 6px !important;
    background: white !important;
    transition: all 0.2s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

    .vd2025-checkbox-checkmark::after {
        content: "\f00c" !important;
        font-family: "FontAwesome" !important;
        font-size: 14px !important;
        color: white !important;
        opacity: 0 !important;
        transform: scale(0) !important;
        transition: all 0.2s ease !important;
    }

.vd2025-checkbox-bonificacao:checked ~ .vd2025-checkbox-checkmark {
    background: linear-gradient(135deg, #35aa47 0%, #2d8b3a 100%) !important;
    border-color: #35aa47 !important;
}

    .vd2025-checkbox-bonificacao:checked ~ .vd2025-checkbox-checkmark::after {
        opacity: 1 !important;
        transform: scale(1) !important;
    }

.vd2025-checkbox-container:hover .vd2025-checkbox-checkmark {
    border-color: #35aa47 !important;
}

/* ============================================
   INPUT FIELDS
   ============================================ */
.vd2025-input-peso,
.vd2025-input-total {
    border: 2px solid #e9ecef !important;
    border-radius: 6px !important;
    padding: 8px 6px !important;
    text-align: right !important;
    transition: all 0.2s ease !important;
    font-weight: 500 !important;
}

    .vd2025-input-peso:focus {
        border-color: #35aa47 !important;
        box-shadow: 0 0 0 3px rgba(53, 170, 71, 0.1) !important;
        outline: none !important;
    }

.vd2025-input-total {
    background: #f8f9fa !important;
    font-weight: 700 !important;
    color: #35aa47 !important;
    cursor: not-allowed !important;
}

/* ============================================
   REMOVE BUTTON
   ============================================ */
.vd2025-btn-remove-row {
    background: #dc3545 !important;
    border: none !important;
    color: white !important;
    padding: 8px 12px !important;
    border-radius: 6px !important;
    transition: all 0.2s ease !important;
}

    .vd2025-btn-remove-row:hover:not(:disabled) {
        background: #c82333 !important;
        transform: scale(1.05) !important;
    }

    .vd2025-btn-remove-row:disabled,
    .vd2025-btn-remove-row.disabled {
        opacity: 0.4 !important;
        cursor: not-allowed !important;
        background: #6c757d !important;
    }

/* ============================================
   DELETE CONFIRMATION POPOVER
   ============================================ */
.vd2025-delete-popover {
    position: fixed !important;
    z-index: 10000 !important;
    opacity: 0 !important;
    transform: translateY(-10px) !important;
    transition: all 0.3s ease !important;
}

    .vd2025-delete-popover.show {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }

.vd2025-popover-content {
    background: white !important;
    border: 2px solid #dc3545 !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 24px rgba(220, 53, 69, 0.3), 0 4px 8px rgba(0, 0, 0, 0.1) !important;
    padding: 16px !important;
    min-width: 280px !important;
    position: relative !important;
}

    /* Arrow pointing right (to the delete button) */
    .vd2025-popover-content::after {
        content: '' !important;
        position: absolute !important;
        right: -12px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 0 !important;
        height: 0 !important;
        border-style: solid !important;
        border-width: 10px 0 10px 12px !important;
        border-color: transparent transparent transparent white !important;
        z-index: 2 !important;
    }

    .vd2025-popover-content::before {
        content: '' !important;
        position: absolute !important;
        right: -15px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 0 !important;
        height: 0 !important;
        border-style: solid !important;
        border-width: 11px 0 11px 13px !important;
        border-color: transparent transparent transparent #dc3545 !important;
        z-index: 1 !important;
    }

.vd2025-popover-message {
    margin: 0 0 12px 0 !important;
    color: #2d3748 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}

.vd2025-popover-buttons {
    display: flex !important;
    gap: 8px !important;
    justify-content: flex-end !important;
}

.vd2025-popover-yes,
.vd2025-popover-no {
    padding: 6px 16px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
}

.vd2025-popover-yes {
    background: #dc3545 !important;
    border: none !important;
    color: white !important;
}

    .vd2025-popover-yes:hover {
        background: #c82333 !important;
        transform: translateY(-1px) !important;
        box-shadow: 0 4px 8px rgba(220, 53, 69, 0.3) !important;
    }

.vd2025-popover-no {
    background: white !important;
    border: 2px solid #e9ecef !important;
    color: #6c757d !important;
}

    .vd2025-popover-no:hover {
        border-color: #35aa47 !important;
        color: #35aa47 !important;
    }

/* ============================================
   VALIDATION MESSAGE
   ============================================ */
.vd2025-validation-message {
    margin-top: 12px !important;
    padding: 12px 16px !important;
    background: linear-gradient(135deg, #fef3cd 0%, #fff3cd 100%) !important;
    border: 2px solid #ffc107 !important;
    border-radius: 8px !important;
    color: #856404 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    opacity: 0 !important;
    transform: translateY(-10px) !important;
    transition: all 0.3s ease !important;
}

    .vd2025-validation-message.show {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }

    .vd2025-validation-message i {
        color: #ffc107 !important;
        font-size: 18px !important;
    }

/* ============================================
   TABLE FOOTER (TOTALS)
   ============================================ */
.vd2025-table-footer {
    background: linear-gradient(to bottom, #f8f9fa 0%, #f0f0f0 100%) !important;
}

.vd2025-totals-row td {
    padding: 16px 12px !important;
    border-top: none !important;
    border-bottom: none !important;
    text-align: right !important;
    font-size: 14px !important;
    color: #495057 !important;
}

.vd2025-totals-row td.vd2025-totals-label {
    text-align: left !important;
    color: #495057 !important;
}

.vd2025-total-value {
    color: #35aa47 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}

/* ============================================
   ACTIONS FOOTER
   ============================================ */
.vd2025-actions-footer {
    margin-top: 24px !important;
    padding: 20px !important;
    background: white !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

.vd2025-btn-cancel {
    padding: 12px 24px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    border: 2px solid #6c757d !important;
    background: white !important;
    color: #6c757d !important;
    transition: all 0.2s ease !important;
}

    .vd2025-btn-cancel:hover {
        background: #6c757d !important;
        color: white !important;
    }

.vd2025-btn-save {
    background: linear-gradient(135deg, #35aa47 0%, #2d8b3a 100%) !important;
    border: none !important;
    color: white !important;
    padding: 12px 32px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 6px rgba(53, 170, 71, 0.3) !important;
}

    .vd2025-btn-save:hover {
        transform: translateY(-2px) !important;
        box-shadow: 0 4px 12px rgba(53, 170, 71, 0.4) !important;
    }

/* ============================================
   HIDE VPV COLUMNS & TABLES (Moved from inline CSS)
   Scoped to .form-declaracao-vd2025 to avoid affecting VD2024
   ============================================ */
/* Hide all table headers and cells with data-vpv="true" attribute */
.form-declaracao-vd2025 th[data-vpv="true"],
.form-declaracao-vd2025 td[data-vpv="true"],
.form-declaracao-vd2025 th.TabelaDeclaracaoNormal[data-vpv="true"],
.form-declaracao-vd2025 td.TabelaDeclaracaoNormal[data-vpv="true"],
.form-declaracao-vd2025 th.TabelaDeclaracaoEmPeriodos[data-vpv="true"],
.form-declaracao-vd2025 td.TabelaDeclaracaoEmPeriodos[data-vpv="true"] {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

/* Hide mini summary tables below main tables (TableTotais with VPV data) */
.form-declaracao-vd2025 .TableTotais[data-tabelaid$="ValorCompliance"],
.form-declaracao-vd2025 .TableTotais[data-tabelaid$="ZonaPgcUrbanasMenor1100L"],
.form-declaracao-vd2025 .TableTotais[data-tabelaid$="ZonaPgcUrbanasMaiorIgual1100L"] {
    display: none !important;
}

/* Hide VPV totals row */
.vd2025-totals-row {
    display: none !important;
}

/* ============================================
   TABLE FIXES (Moved from inline CSS in _TabelaDetalhesModel.cshtml)
   ============================================ */
/* Remove horizontal scroll and make columns fit */
.vd2025-table-wrapper {
    overflow-x: visible !important;
    width: 100% !important;
}

.vd2025-table {
    width: 100% !important;
    table-layout: fixed !important;
}

/* Fix header alignment - remove flex, use normal table display */
.vd2025-table-header {
    display: table-row !important;
}

.vd2025-table th,
.vd2025-table td {
    white-space: normal !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    padding: 8px 4px !important;
    font-size: 12px !important;
    vertical-align: middle !important;
}

/* Dropdowns inside table - smaller than regular dropdowns */
.vd2025-table .vd2025-dropdown-wrapper {
    width: 100% !important;
}

.vd2025-table .vd2025-dropdown {
    width: 100% !important;
    min-height: 34px !important;
    padding: 6px 30px 6px 10px !important;
    font-size: 13px !important;
    box-sizing: border-box !important;
}

.vd2025-table .vd2025-dropdown-arrow {
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 3 !important;
}

/* Ensure dropdown wrapper has relative positioning for arrow */
.vd2025-table .vd2025-td-grupo .vd2025-dropdown-wrapper,
.vd2025-table .vd2025-td-material .vd2025-dropdown-wrapper,
.vd2025-table .vd2025-td-bonificacao .vd2025-dropdown-wrapper {
    position: relative !important;
}

.vd2025-table .vd2025-dropdown-arrow svg {
    width: 16px !important;
    height: 16px !important;
}

/* Hide clickable overlay in table - it blocks native select interaction */
.vd2025-table .vd2025-dropdown-clickable {
    display: none !important;
}

.vd2025-select-grupo option,
.vd2025-select-material option {
    white-space: normal !important;
    word-wrap: break-word !important;
}

/* Column widths - distribute evenly with smaller icons columns */
.vd2025-th-grupo,
.vd2025-td-grupo {
    width: 12% !important;
}

.vd2025-th-material,
.vd2025-td-material {
    width: 12% !important;
}

.vd2025-th-bonificacao,
.vd2025-td-bonificacao {
    width: 10% !important;
}

/* Bonificacao: flex layout para manter icon de info dentro da celula */
.vd2025-table .vd2025-td-bonificacao .vd2025-dropdown-wrapper {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
}

.vd2025-table .vd2025-td-bonificacao .vd2025-material-select-container {
    flex: 1 !important;
    min-width: 0 !important;
    position: relative !important;
}

.vd2025-table .vd2025-td-bonificacao .vd2025-material-info-wrapper {
    position: static !important;
    transform: none !important;
    flex-shrink: 0 !important;
    width: auto !important;
    display: flex !important;
    align-items: center !important;
}

.vd2025-table th:not(.vd2025-th-grupo):not(.vd2025-th-material):not(.vd2025-th-bonificacao):not(.vd2025-th-actions),
.vd2025-table td:not(.vd2025-td-grupo):not(.vd2025-td-material):not(.vd2025-td-bonificacao):not(.vd2025-td-actions) {
    width: auto !important;
}

.vd2025-th-actions,
.vd2025-td-actions {
    width: 60px !important;
    text-align: center !important;
}

/* ============================================
   SUP COPOS - Novo Layout (Tipo Produto + Composição + Colunas Material)
   ============================================ */

.vd2025-table-supcopos .vd2025-td-tipo-produto,
.vd2025-table-supcopos .vd2025-td-composicao {
    width: 14% !important;
}

.vd2025-table-supcopos .vd2025-td-tipo-produto .vd2025-dropdown-wrapper,
.vd2025-table-supcopos .vd2025-td-composicao .vd2025-dropdown-wrapper {
    min-width: 100px !important;
}

.vd2025-table-supcopos .vd2025-td-material-col,
.vd2025-table-supcopos .vd2025-td-unidades {
    width: auto !important;
    min-width: 70px !important;
}

.vd2025-table-supcopos .vd2025-td-material-col input,
.vd2025-table-supcopos .vd2025-td-unidades input {
    min-width: 60px !important;
}

/* Mostrar linha de totais na tabela SUP Copos */
.vd2025-table-supcopos .vd2025-totals-row {
    display: table-row !important;
}

/* Separadores visuais — grupo Material (kg) */
.vd2025-table-supcopos .vd2025-th-material-group {
    border-left: 2px solid #fff !important;
    border-right: 2px solid #fff !important;
}

.vd2025-table-supcopos .vd2025-table-subheader th:first-child {
    border-left: 2px solid #fff !important;
}

.vd2025-table-supcopos .vd2025-table-subheader th:last-child {
    border-right: 2px solid #fff !important;
}

.vd2025-table-supcopos .vd2025-td-material-col:first-of-type {
    border-left: 2px solid #f0f0f0 !important;
}

.vd2025-table-supcopos .vd2025-col-papel {
    border-right: none !important;
}

.vd2025-table-supcopos .vd2025-total-material-first {
    border-left: 2px solid #f0f0f0 !important;
}

.vd2025-table-supcopos .vd2025-total-material-last {
    border-right: none !important;
}

/* PAPEL bloqueado (Composição = Totalmente de plástico) */
.vd2025-papel-blocked input {
    background-color: #e0e0e0 !important;
    cursor: not-allowed !important;
}

/* Linha duplicada (mesmo Tipo Produto + Composição) */
.vd2025-row-duplicate {
    background-color: #fff3cd !important;
    border-left: 3px solid #ffc107 !important;
}

.vd2025-row-duplicate td {
    background-color: #fff3cd !important;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
    .vd2025-page-header {
        padding: 16px 20px !important;
    }

    .vd2025-page-title {
        font-size: 22px !important;
    }

    .vd2025-tab-link {
        padding: 10px 16px !important;
        font-size: 13px !important;
    }

    .vd2025-tab-nome {
        display: none !important;
    }

    .vd2025-toolbar {
        flex-direction: column !important;
        gap: 12px !important;
    }

    .vd2025-actions-footer {
        flex-direction: column !important;
        gap: 12px !important;
    }

    .vd2025-btn-cancel,
    .vd2025-btn-save {
        width: 100% !important;
    }
}

/* ============================================
   VALIDATION ERRORS (Fase 4)
   ============================================ */

/* Row with validation errors */
.vd2025-row-error {
    background: rgba(220, 53, 69, 0.08) !important;
    animation: shakeRow 0.4s ease !important;
}

    .vd2025-row-error td {
        border-bottom-color: rgba(220, 53, 69, 0.3) !important;
    }

@keyframes shakeRow {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    50% { transform: translateX(5px); }
    75% { transform: translateX(-5px); }
}

/* Field with validation error */
.vd2025-field-error {
    border-color: #dc3545 !important;
    background-color: rgba(220, 53, 69, 0.05) !important;
    box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.15) !important;
}

    .vd2025-field-error:focus {
        border-color: #dc3545 !important;
        box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.25) !important;
    }

/* Validation summary box */
.vd2025-validation-summary {
    margin: 16px 0 !important;
    padding: 16px 20px !important;
    background: linear-gradient(135deg, #fff5f5 0%, #ffe5e5 100%) !important;
    border: 2px solid #dc3545 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15) !important;
    animation: fadeInSlideDown 0.4s ease !important;
}

    .vd2025-validation-summary strong {
        color: #dc3545 !important;
        font-size: 15px !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }

        .vd2025-validation-summary strong i {
            font-size: 18px !important;
        }

    .vd2025-validation-summary .close {
        color: #dc3545 !important;
        opacity: 0.7 !important;
        font-size: 20px !important;
    }

        .vd2025-validation-summary .close:hover {
            opacity: 1 !important;
        }

@keyframes fadeInSlideDown {
    from {
        opacity: 0;
        transform: translateY(-15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Error list inside validation summary */
.vd2025-error-list {
    margin: 12px 0 0 0 !important;
    padding-left: 20px !important;
    color: #721c24 !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
}

    .vd2025-error-list li {
        margin-bottom: 4px !important;
    }

        .vd2025-error-list li:last-child {
            margin-bottom: 0 !important;
        }

/* Dropdown with validation error */
.vd2025-dropdown-wrapper .vd2025-field-error {
    border: 2px solid #dc3545 !important;
}

/* Select with validation error */
select.vd2025-field-error {
    border: 2px solid #dc3545 !important;
    background-color: rgba(220, 53, 69, 0.05) !important;
}

/* Success state after fixing error */
.vd2025-field-success {
    border-color: #28a745 !important;
    background-color: rgba(40, 167, 69, 0.05) !important;
    box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.15) !important;
    transition: all 0.3s ease !important;
}

/* Validation tooltip (optional) */
.vd2025-validation-tooltip {
    position: absolute !important;
    z-index: 1000 !important;
    background: #dc3545 !important;
    color: white !important;
    padding: 6px 12px !important;
    border-radius: 4px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
    pointer-events: none !important;
}

    .vd2025-validation-tooltip::after {
        content: '' !important;
        position: absolute !important;
        bottom: -6px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        border-width: 6px 6px 0 6px !important;
        border-style: solid !important;
        border-color: #dc3545 transparent transparent transparent !important;
    }
