/* Όλα scoped μέσα στο .tefteri-wrapper για να μην πειράζουμε άλλα modules */

:root {
    /* Ενιαίο max width για όλα τα modules (desktop). */
    --it-module-max-width: 1200px;
}

.tefteri-wrapper {
    font-size: 0.875rem;
}

/* Κουμπιά – πιο μικρά, σαν το παλιό Tefteri */
.tefteri-wrapper .btn,
.tefteri-wrapper .input-group .btn {
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
    padding: 0.25rem 0.5rem !important;
    border-radius: 0.25rem !important;
    min-height: auto !important;
    max-height: 34px !important;
}

/* Input / select – compact */
.tefteri-wrapper .form-control,
.tefteri-wrapper .form-select,
.tefteri-wrapper input[type="month"],
.tefteri-wrapper input[type="date"],
.tefteri-wrapper input[type="number"],
.tefteri-wrapper textarea {
    font-size: 0.875rem !important;
    padding: 0.25rem 0.5rem !important;
    height: auto !important;
    min-height: 32px !important;
    border-radius: 0.25rem !important;
}

/* Switches τύπου Bootstrap */
.tefteri-wrapper .form-check.form-switch .form-check-input {
    width: 2.5em !important;
    height: 1.3em !important;
    margin-top: 0.15rem !important;
    cursor: pointer;
}

.tefteri-wrapper .form-check.form-switch .form-check-input:focus {
    box-shadow: 0 0 0 0.15rem rgba(13,110,253,.25);
}

/* Πίνακας όπως στο παλιό: nowrap + οριζόντιο scroll στα κελιά αν χρειάζεται 
.tefteri-wrapper table.table tbody td {
    white-space: nowrap;
    overflow-x: auto;
    max-width: 150px;
}
*/
/* Τα td να μην κάνουν scroll. Το scroll θα το κάνει το εσωτερικό span */
.tefteri-wrapper #mainTable td {
  white-space: nowrap;
}

/* Το “έξυπνο” όριο: μικρό όταν είναι μικρό, μέχρι 170 όταν μεγαλώνει, μετά scroll */
.tefteri-wrapper #mainTable td .cell-scroll {
  display: inline-block;        /* σημαντικό: δεν γεμίζει άδικα τη στήλη */
  max-width: 120px !important;             /* το όριο που θες */
  white-space: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  vertical-align: middle;
  -webkit-overflow-scrolling: touch;
}

/* Προαιρετικό: για να μη σου κρατάει χώρο άσκοπα το scrollbar */
.tefteri-wrapper #mainTable td .cell-scroll::-webkit-scrollbar {
  height: 6px;
}

.tefteri-wrapper th.sortable[data-field="aa"] {
    white-space: nowrap;
}

/* Μπάρα φίλτρων / κουμπιών πάνω – mobile first */
.tefteri-wrapper .btn-group-mobile {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

@media (max-width: 900px) {
    .tefteri-wrapper .btn-group-mobile {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .tefteri-wrapper .btn-group-mobile > * {
        width: 100% !important;
        margin-right: 0 !important;
    }

    .tefteri-wrapper .btn-group-mobile .input-group {
        width: 100% !important;
    }

    .tefteri-wrapper .btn-group-mobile .ms-auto {
        margin-left: 0 !important;
        justify-content: flex-start !important;
    }
}

/* Χρώματα γραμμών (εισόδων/εξόδων) */
.tefteri-wrapper .row-income td {
    color: #2e7d32 !important;
}

.tefteri-wrapper .row-expense td {
    color: #c62828 !important;
}


/* Modal φόρμες – compact */
.tefteri-wrapper .modal .form-control,
.tefteri-wrapper .modal .form-select,
.tefteri-wrapper .modal .btn {
    font-size: 0.875rem !important;
    padding: 0.25rem 0.5rem !important;
    height: auto !important;
    min-height: 32px !important;
}
#header-area {
    margin-bottom: 4px !important;
}

.containerOLD.my-4 {
    margin-top: 0 !important;
    margin-bottom: 0.75rem;
}

/* Βάση – για όλες τις οθόνες */
.tefteri-wrapper {
    width: 100%;
    margin: 0;
    padding-left: 10px;
    padding-right: 10px;
}

/* -------------------------------------------------------
   Sidebar-aware layout (tenants)
   - Στο app.* οι οθόνες έχουν ήδη .main-content wrapper
   - Στα tenant modules (tefteri-wrapper) χρειαζόμαστε offset
   ------------------------------------------------------- */

/* Desktop: υπολογίζουμε χώρο για sidebar */
@media (min-width: 1200px) {
    /* Default (sidebar ανοικτό) */
    .tefteri-wrapper {
        max-width: none;
        padding-left: 270px;  /* ίδιο με .main-content */
        padding-right: 12px;
        transition: all ease 0.5s;
    }

    /* Collapsed sidebar */
    [sidebar-data-theme="sidebar-hide"] .tefteri-wrapper {
        padding-left: 72px;
    }

    .tefteri-wrapper .containerOLD {
        max-width: none;
    }

    /* -------------------------------------------------------
       Ενιαία διάσταση περιεχομένου για όλα τα modules
       - Πολλά modules χρησιμοποιούν .container / .container-fluid
       - Άλλα χρησιμοποιούν .page-card (π.χ. διαχείριση κατηγοριών)
       ------------------------------------------------------- */

    /* Full width — ΟΛΑ τα modules πιάνουν όλο τον διαθέσιμο χώρο */
    .tefteri-wrapper > .container,
    .tefteri-wrapper > .container-fluid {
        max-width: none !important;
    }

    .tefteri-wrapper .page-card,
    .tefteri-wrapper .activity-card {
        max-width: none !important;
    }

    /* Και το top bar να μη «κάθεται» κάτω από sidebar */
    .global-topbar {
        padding-left: 270px;
        transition: all ease 0.5s;
    }
    [sidebar-data-theme="sidebar-hide"] .global-topbar {
        padding-left: 72px;
    }
}

/* Tablet/Mobile: το sidebar δουλεύει off-canvas, άρα χωρίς offset */
@media (max-width: 1199px) {
    .tefteri-wrapper {
        padding-left: 10px;
        padding-right: 10px;
    }
    .global-topbar {
        padding-left: 0;
    }
}

/* -------------------------------------------------------
   AI status button – "working" animation (color shift only).
   ΠΡΟΣΟΧΗ: ΜΟΝΟ background/border-color. ΟΧΙ transform/scale/opacity —
   αυτά είχαν προκαλέσει πρόβλημα στο scroll σε προηγούμενη προσπάθεια.
   ------------------------------------------------------- */
@keyframes ai-status-color-shift {
    0%, 100% {
        background-color: var(--bs-warning);
        border-color: var(--bs-warning);
    }
    50% {
        background-color: var(--bs-info);
        border-color: var(--bs-info);
    }
}

#btnAiStatus.ai-working {
    animation: ai-status-color-shift 0.8s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    #btnAiStatus.ai-working { animation: none; }
}

