/* ============================================================================
   Ενιαίο ύφος για ΟΛΑ τα πλέγματα (.be-dxgrid) — 51 σελίδες.

   Χρώμα = το μπλε της εφαρμογής (#0d6efd, ίδιο με το FormTitleBanner). Επίπεδο,
   χωρίς gradient: οι λίστες είναι εργαλείο εργασίας, όχι βιτρίνα.

   ⚠ ΣΕΙΡΑ ΦΟΡΤΩΣΗΣ: πρέπει να έρχεται ΜΕΤΑ το θέμα του DevExpress στο App.razor,
   αλλιώς το θέμα υπερισχύει και τίποτε εδώ δεν φαίνεται.

   ⚠ ΚΑΜΙΑ ΑΝΑΦΟΡΑ ΣΕ ΣΥΓΚΕΚΡΙΜΕΝΗ ΣΤΗΛΗ: οι στήλες παράγονται από GRIDVIEWS και
   διαφέρουν ανά πελάτη. Ό,τι υπάρχει εδώ δουλεύει με οποιονδήποτε συνδυασμό.
   Το ύψος (height) το ορίζει η κάθε σελίδα — δεν το πειράζουμε.
   ============================================================================ */

.be-dxgrid {
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid #d2d2d2;

    /* Ένα κλικ πάνω από το προεπιλεγμένο 0.875rem του θέματος. Μέσω της μεταβλητής
       του DevExpress ώστε να ακολουθήσουν και pager/editors/checkboxes μέσα στο
       πλέγμα — αλλιώς μεγαλώνουν μόνο τα κελιά και χαλάει η στοίχιση. */
    --dxbl-grid-font-size: 1rem;
}

/* ── Επικεφαλίδα: επίπεδο μπλε ── */
.be-dxgrid .dxbl-grid-header-content,
.be-dxgrid thead tr:first-child th {
    background: #0d6efd !important;
    color: #fff !important;
    font-weight: 600;
}

.be-dxgrid thead tr:first-child th a,
.be-dxgrid thead tr:first-child th .dxbl-text,
.be-dxgrid thead tr:first-child th .dxbl-grid-header-caption {
    color: #fff !important;
}

/* Τα εικονίδια ταξινόμησης/φίλτρου να μη χάνονται στο μπλε φόντο */
.be-dxgrid thead tr:first-child th .dxbl-grid-sort-indicator,
.be-dxgrid thead tr:first-child th i {
    color: rgba(255, 255, 255, .85) !important;
}

/* ── Χωρίς πλαίσιο σε κάθε κελί ──
   Το θέμα ζωγραφίζει border-top + border-left σε ΚΑΘΕ κελί, δηλαδή πλήρες
   καρέ. Σβήνουμε τις κάθετες γραμμές και κρατάμε μια πολύ ανοιχτή οριζόντια:
   χωρίς αυτήν, σε λίστες με πολλές γραμμές χάνεται το μάτι.
   !important γιατί κανόνες του θέματος για fixed/indent κελιά έχουν
   μεγαλύτερη ειδικότητα και θα ξαναέβαζαν τις κάθετες. */
.be-dxgrid td,
.be-dxgrid th {
    border-left-width: 0 !important;
    border-right-width: 0 !important;
}

.be-dxgrid tbody td { border-top-color: #edf0f5; }

/* ── Γραμμές ── */
.be-dxgrid tbody tr:nth-child(even) { background: #f7f9fc; }
.be-dxgrid tbody tr:hover { background: rgba(13, 110, 253, .08) !important; }

.be-dxgrid tbody tr.dxbl-grid-selected-row,
.be-dxgrid tbody tr[aria-selected="true"] {
    background: rgba(13, 110, 253, .14) !important;
}

.be-dxgrid tbody td {
    padding-top: .34rem;
    padding-bottom: .34rem;
}

/* Τα ποσά ευθυγραμμίζονται κάθετα μόνο με tabular αριθμούς */
.be-dxgrid td { font-variant-numeric: tabular-nums; }

/* ── Σύνολα ── */
.be-dxgrid .dxbl-grid-footer-content,
.be-dxgrid tfoot td {
    background: #eef4ff !important;
    font-weight: 700;
    color: #0a58ca;
}

/* ============================================================================
   ID ως badge-σύνδεσμος — φαίνεται ότι πατιέται, χωρίς υπογράμμιση.
   Χρησιμοποιείται όπου η λίστα ανοίγει εγγραφή (παραστατικά κ.λπ.).
   ============================================================================ */
.be-id-badge {
    display: inline-block;
    min-width: 3.2rem;
    text-align: center;
    padding: .12rem .5rem;
    border-radius: 999px;
    background: #0d6efd;
    color: #fff !important;
    font-size: .85rem;
    font-weight: 700;
    font-family: var(--bs-font-monospace);
    text-decoration: none !important;
    line-height: 1.35;
    transition: background-color .12s;
}

.be-id-badge:hover { background: #0a58ca; }

/* ── SelectionActionBar — αληθινό overlay (λύση A), ΜΗΔΕΝ layout shift ──
   Η μπάρα κάθεται absolute πάνω από την κάρτα (καλύπτει το search-box του grid
   όσο διαρκεί η επιλογή) — ΔΕΝ αλλάζει το ύψος τίποτα γύρω της, άρα οι γραμμές
   του πλέγματος ΔΕΝ μετακινούνται ποτέ. Καμία αντιστάθμιση (padding-top) εδώ:
   ό,τι πρόσθετο ύψος έχει η μπάρα, «πατάει» πάνω σε ό,τι υπάρχει ήδη εκεί. */
.be-grid-with-selbar {
    position: relative;
}

.be-grid-with-selbar .selbar {
    background: #eef4ff;
    border-color: #cfe0ff;
}

.be-grid-with-selbar .selbar-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 20;
    margin: 0;
    border-radius: .625rem .625rem 0 0;
    border-left: 0;
    border-right: 0;
    border-top: 0;
    box-shadow: 0 4px 10px rgba(27, 132, 255, .16);
    animation: be-selbar-fade .15s ease;
}

.be-grid-with-selbar .selbar-overlay .vr {
    background: #b5d4ff;
    opacity: 1;
}

@keyframes be-selbar-fade {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: none; }
}

/* Default κάρτα grid (λίστες χωρίς custom shell) */
.be-grid-with-selbar:not(.par-list-grid-shell) {
    background: #fff;
    border: 1px solid #f1f1f4;
    border-radius: .625rem;
    box-shadow: 0 3px 4px rgba(0, 0, 0, .03);
    overflow: hidden;
}

.be-grid-with-selbar:not(.par-list-grid-shell) .be-dxgrid {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Legacy inline bar (χωρίς GridContent) */
.selbar:not(.selbar-overlay) {
    background: #eef4ff;
    border: 1px solid #cfe0ff;
}

/* ── Σκούρο θέμα ── */
@media (prefers-color-scheme: dark) {
    .be-dxgrid { border-color: #334155; }
    .be-dxgrid tbody tr:nth-child(even) { background: rgba(13, 110, 253, .05); }
    .be-dxgrid .dxbl-grid-footer-content,
    .be-dxgrid tfoot td { background: rgba(13, 110, 253, .15) !important; color: #9ec5fe; }
}
