/* Stili per il sistema di modifiche non salvate */

/* Indicatore visivo per le modifiche non salvate */
body.has-unsaved-changes::before {
    content: "⚠️ Modifiche non salvate";
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    background-color: #ff9800;
    color: white;
    padding: 5px 15px;
    border-radius: 0 0 5px 5px;
    font-size: 12px;
    font-weight: bold;
    z-index: 10000;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { opacity: 1; }
    50% { opacity: 0.7; }
    100% { opacity: 1; }
}

/* Stile per i pulsanti di salvataggio quando ci sono modifiche */
body.has-unsaved-changes .btn-save,
body.has-unsaved-changes [data-save-button],
body.has-unsaved-changes .dx-button.save-button {
    animation: glow 2s ease-in-out infinite alternate;
}

@keyframes glow {
    from {
        box-shadow: 0 0 5px #007bff;
    }
    to {
        box-shadow: 0 0 20px #007bff, 0 0 30px #007bff;
    }
}

/* Stile per i tab con modifiche non salvate */
body.has-unsaved-changes .dx-tab:not(.dx-tab-selected) {
    opacity: 0.6;
    cursor: not-allowed !important;
    pointer-events: none; /* Blocca completamente i click */
}

body.has-unsaved-changes .dx-tab:not(.dx-tab-selected):hover {
    background-color: #ffebee !important;
    border-color: #f44336 !important;
}

body.has-unsaved-changes .dx-tab:not(.dx-tab-selected)::after {
    content: "🔒";
    margin-left: 1px;
    color: #f44336;
}

.nav-tabs .nav-link.has-unsaved-changes {
    position: relative;
}

.nav-tabs .nav-link.has-unsaved-changes::after {
    content: "*";
    color: #dc3545;
    font-weight: bold;
    margin-left: 5px;
}

/* Popup di conferma personalizzato */
.dx-popup-content .unsaved-changes-warning {
    text-align: center;
    padding: 20px;
}

.dx-popup-content .unsaved-changes-warning .warning-icon {
    font-size: 48px;
    color: #ff9800;
    margin-bottom: 15px;
}

.dx-popup-content .unsaved-changes-warning .warning-text {
    font-size: 16px;
    margin-bottom: 20px;
    line-height: 1.5;
}

/* Stile per popup di conferma modifiche non salvate */
.dx-popup.unsaved-changes-popup {
    z-index: 10000 !important;
}

.dx-popup.unsaved-changes-popup .dx-overlay-content {
    border: 3px solid #ff9800 !important;
    box-shadow: 0 0 20px rgba(255, 152, 0, 0.5) !important;
}

.dx-popup.unsaved-changes-popup .dx-popup-title {
    background-color: #ff9800 !important;
    color: white !important;
    font-weight: bold !important;
}

.dx-popup.unsaved-changes-popup .dx-popup-content {
    padding: 20px !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
}

/* Pulsanti del popup */
.dx-popup.unsaved-changes-popup .dx-button.dx-button-danger {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
}

.dx-popup.unsaved-changes-popup .dx-button.dx-button-normal {
    background-color: #6c757d !important;
    border-color: #6c757d !important;
}

/* Stile per i form con modifiche */
.dx-form.has-unsaved-changes {
    border-left: 4px solid #ff9800;
    padding-left: 15px;
}

/* Stile per le griglie con modifiche */
.dx-datagrid.has-unsaved-changes .dx-datagrid-headers {
    background-color: #fff3cd;
    border-left: 4px solid #ff9800;
}

/* Responsive */
@media (max-width: 768px) {
    body.has-unsaved-changes::before {
        font-size: 10px;
        padding: 3px 10px;
    }
}

/* Stili per grid compatta */
.compact-grid .dx-datagrid-rowsview .dx-row > td {
    padding: 2px 6px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

.compact-grid .dx-datagrid-headers .dx-header-row > td {
    padding: 4px 6px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

.compact-grid .dx-datagrid-rowsview .dx-row {
    min-height: 26px !important;
    height: 26px !important;
}

.compact-grid .dx-datagrid .dx-row-lines > td {
    border-bottom: 1px solid #e0e0e0 !important;
}

.compact-grid .dx-button {
    padding: 2px 6px !important;
    font-size: 11px !important;
    min-height: 24px !important;
}

.compact-grid .dx-button-text {
    font-size: 11px !important;
}

/* Evidenziazione riga selezionata - stesso stile della grid pacchi */
.compact-grid .dx-row.dx-selection,
.compact-grid .dx-row.dx-row-focused {
    background-color: #b3d9ff !important;
}

.compact-grid .dx-row.dx-selection > td,
.compact-grid .dx-row.dx-row-focused > td {
    background-color: #b3d9ff !important;
    font-weight: 600 !important;
    color: #000 !important;
}

/* Rimuovi righe alterne */
.compact-grid .dx-row-alt > td {
    background-color: transparent !important;
}

/* Rimuovi bordi colonne */
.compact-grid .dx-datagrid-headers .dx-datagrid-table .dx-row > td {
    border-right: none !important;
}

.compact-grid .dx-datagrid-rowsview .dx-datagrid-table .dx-row > td {
    border-right: none !important;
}


/* Stili per grid avanzi lanci - sfondo verde */
.avanzi-row {
    background-color: #d4edda !important;
}

.avanzi-row:hover {
    background-color: #c3e6cb !important;
}

.avanzi-cell {
    background-color: #d4edda !important;
    text-align: center !important;
    padding: 4px 8px !important;
    font-size: 12px !important;
    border: 1px solid #c3e6cb !important;
}

.avanzi-cell-variante {
    background-color: #28a745 !important;
    color: white !important;
    font-weight: 600 !important;
    text-align: left !important;
    padding: 4px 8px !important;
    font-size: 12px !important;
}

.avanzi-separator {
    background-color: transparent !important;
    border: none !important;
}

.avanzi-separator td {
    border: none !important;
    padding: 0 !important;
}

