/* PDF Viewer - Unified Toolbar */
.pdf-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 8px;
    background: #f6f6f6;
    border-bottom: 1px solid #e0e0e0;
    gap: 8px;
    flex-wrap: wrap;
    min-height: 44px;
    box-sizing: border-box;
    /* ΜΗΝ το συρρικνώνει ο γονέας: το .k-window-content είναι flex column (βλ. κανόνα
       .printing-modal παρακάτω), οπότε το toolbar έπαιρνε flex-shrink:1 και κολλούσε στα
       44px του min-height ακόμη κι όταν wrap-άριζε σε δεύτερη σειρά — το περιεχόμενο
       ήθελε 76px, το γκρι φόντο έδινε 44 και η δεύτερη σειρά κουμπιών ξεχείλιζε ΕΞΩ από
       το toolbar, πάνω στο PDF (μετρημένο: scrollHeight 76 vs clientHeight 43). */
    flex-shrink: 0;
    /* Καρφιτσωμένο στην κορυφή ώστε να μένει πάντα ορατό ακόμη κι όταν
       εμφανιστεί εξωτερικό scroll στο .k-window-content (το calc-ύψος του
       container + το toolbar ξεπερνά το ύψος του modal σε κάποια μεγέθη). */
    position: sticky;
    top: 0;
    z-index: 10;
}

.pdf-toolbar-group {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pdf-toolbar-nav {
    flex: 1;
    justify-content: center;
}

.pdf-toolbar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 4px;
    color: #424242;
    cursor: pointer;
    font-size: 13px;
    transition: background-color 0.15s, color 0.15s;
    padding: 0;
}

.pdf-toolbar-btn:hover:not(:disabled) {
    background: #e8e8e8;
    color: #222;
}

.pdf-toolbar-btn:active:not(:disabled) {
    background: #d8d8d8;
}

.pdf-toolbar-btn:disabled {
    opacity: 0.38;
    cursor: default;
}

.pdf-toolbar-btn.active {
    background: #ddeaf8;
    color: #2a72c3;
}

.pdf-page-info {
    font-size: 13px;
    color: #424242;
    text-align: center;
    padding: 0 4px;
    user-select: none;
}

.pdf-page-input {
    width: 48px;
    height: 28px;
    border: 1px solid #c8c8c8;
    border-radius: 4px;
    padding: 0 4px;
    font-size: 13px;
    text-align: center;
    outline: none;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
    -moz-appearance: textfield;
}

.pdf-page-input:focus {
    border-color: #4a90d9;
    box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.2);
}

.pdf-page-input::-webkit-outer-spin-button,
.pdf-page-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.pdf-zoom-level {
    font-size: 13px;
    color: #424242;
    min-width: 46px;
    text-align: center;
    padding: 0 4px;
    user-select: none;
}

.pdf-toolbar-label {
    font-size: 13px;
    color: #424242;
    white-space: nowrap;
    user-select: none;
}

.pdf-toolbar-sep {
    display: inline-block;
    width: 1px;
    height: 22px;
    background: #d6d6d6;
    margin: 0 4px;
    flex-shrink: 0;
}

.pdf-viewer-container {
    overflow-y: auto;
    background: #525659;
    height: calc(100vh - 200px);
    text-align: center;
    padding: 12px 8px;
    box-sizing: border-box;
}

/* ── PrintPreview modal: ύψος από τον πραγματικό διαθέσιμο χώρο ───────────────────────
   Το height: calc(100vh - 200px) παραπάνω είναι magic number που υποθέτει toolbar ΜΙΑΣ
   σειράς. Σε στενό παράθυρο το .pdf-toolbar wrap-άρει (46px → 86px), οπότε ο viewer
   ξεπερνά το κάτω άκρο του modal (TelerikWindow Height="90%") και ο οριζόντιος scrollbar
   — τα κάτω 15px του — βγαίνει εκτός ορατής περιοχής: το scroll δουλεύει αλλά δεν
   φαίνεται και δεν πιάνεται. Μετρημένο στα 900px πλάτος (viewer 29px κάτω από το modal,
   canvas 892px σε container 764px). Το bug ενεργοποιείται ακριβώς στο πλάτος όπου
   χρειάζεσαι τον scrollbar.

   Flex chain από το .k-window-content ως τον viewer, ώστε το ύψος να προκύπτει από τον
   χώρο που πραγματικά απομένει — σε κάθε πλάτος και για οποιονδήποτε αριθμό σειρών
   toolbar. ⚠️ Ο ΑΞΟΝΑΣ ΤΟΥ .d-flex ΜΕΝΕΙ row: είναι το side-by-side «viewer 70% / φίλτρα
   30%» του PrintPreview.razor — column εκεί στοιβάζει τα φίλτρα κάτω από το PDF.
   Column γίνονται μόνο το .k-window-content (ένα παιδί) και οι δύο στήλες του. */
.printing-modal .k-window-content {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* min-height:0 παντού: χωρίς αυτό ένα flex item δεν συρρικνώνεται κάτω από το
   περιεχόμενό του (min-height:auto) και η αλυσίδα ξεχειλίζει ξανά. */
.printing-modal .k-window-content > .d-flex {
    flex: 1 1 auto;
    min-height: 0;
}

.printing-modal .k-window-content > .d-flex > div {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.printing-modal .pdf-viewer-container {
    height: auto;
    flex: 1 1 auto;
    min-height: 0;
}

/* Search bar */
.pdf-search-input {
    height: 28px;
    border: 1px solid #c8c8c8;
    border-radius: 4px;
    padding: 0 8px;
    font-size: 13px;
    width: 160px;
    outline: none;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}

.pdf-search-input:focus {
    border-color: #4a90d9;
    box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.2);
}

.pdf-search-input.no-match {
    border-color: #e74c3c;
    background: #fff8f8;
}

.pdf-search-count {
    font-size: 12px;
    color: #666;
    white-space: nowrap;
    padding: 0 4px;
    user-select: none;
}

.pdf-search-count.no-match {
    color: #c0392b;
}

/* PDF.js text layer */
.pdfTextLayer {
    position: absolute;
    left: 0;
    top: 0;
    overflow: hidden;
    line-height: 1;
    z-index: 2;
}

.pdfTextLayer span,
.pdfTextLayer br {
    color: transparent;
    position: absolute;
    white-space: pre;
    cursor: text;
    transform-origin: 0% 0%;
}

/* Search highlights */
mark.pdf-search-hl {
    background: rgba(255, 220, 0, 0.55);
    color: transparent;
    border-radius: 2px;
    padding: 0;
}

mark.pdf-search-hl.pdf-search-hl-current {
    background: rgba(255, 140, 0, 0.75);
    outline: 1px solid rgba(200, 100, 0, 0.6);
}

/* ── Telerik controls μέσα στο toolbar: ευθυγράμμιση με τον 32px ρυθμό ───────────────
   Το .pdf-toolbar αναμειγνύει native κουμπιά (.pdf-toolbar-btn, 32px) με Telerik
   components (SplitButton εκτυπωτικού, Εκτύπωση, Εξαγωγή, Φίλτρα). Τα Telerik έρχονται
   ~38px λόγω inner padding (βλ. UI_RULES.md §6 «Γιατί 31px»), οπότε χωρίς ρητό ύψος η
   τρίτη ομάδα του toolbar κάθεται ψηλότερα από τις άλλες και τα κουμπιά δείχνουν
   υπερμεγέθη δίπλα στα εικονίδια του viewer. Ρυθμίζουμε ύψος/padding/font σε ΟΛΑ τα
   k-button του toolbar ώστε να πέφτουν σε μία ευθεία. */
.pdf-toolbar .k-button {
    height: 32px;
    min-height: 32px;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 13px;
    line-height: 1;
    /* Ενιαίο κενό εικονιδίου–κειμένου: πριν, μόνο το «Εκτύπωση» είχε απόσταση
       (μέσω .pdf-print-main .fa) — «Εξαγωγή»/«Φίλτρα» κολλούσαν το εικονίδιο
       στη λέξη. Το .k-button είναι inline-flex, οπότε το gap αρκεί. */
    gap: 6px;
}

/* Το SplitButton της επιλογής εκτυπωτικού δεν είχε κανένα width constraint: με μεγάλο
   τίτλο («Μηνιαία Έκθεση Αποτελεσμάτων Εκτέλεσης Προϋπολογισμού (ΠΔ 54/2018)») τεντώνεται
   πάνω από τον μισό διαθέσιμο χώρο και σπρώχνει Εκτύπωση/Εξαγωγή/Φίλτρα εκτός σειράς.
   Κόβουμε με ellipsis· ο πλήρης τίτλος παραμένει διαθέσιμος στο άνοιγμα του dropdown.

   ⚠️ Το ellipsis μπαίνει στο ΙΔΙΟ το k-button, ΟΧΙ σε εσωτερικό wrapper: στην Telerik
   13.3 το .k-button-text υπάρχει μόνο σε Gantt-specific κανόνες — το περιεχόμενο του
   SplitButtonContent είναι απευθείας παιδί του .k-button (inline-flex, white-space:nowrap).
   Χρειάζεται min-width:0 γιατί ένα flex item δεν συρρικνώνεται κάτω από το περιεχόμενό του. */
.pdf-toolbar .k-split-button > .k-button:not(.k-split-button-arrow) {
    /* 260px, όχι 320: με 320 οι τρεις ομάδες ήθελαν 1156px και σε πλάτος 1150 έλειπαν 22px,
       οπότε η ομάδα ενεργειών έπεφτε ΟΛΟΚΛΗΡΗ σε δεύτερη σειρά. ⚠️ Το flex-shrink ΔΕΝ το
       λύνει: το flex-wrap σπάει τη γραμμή ΠΡΙΝ προλάβει να συρρικνώσει (μετρημένο — με
       flex-basis 320px το κουμπί έμενε 320px σε κάθε πλάτος). Άρα το κατώφλι ορίζεται από
       το max-width· τα 260px το κατεβάζουν στα ~1100px. */
    flex: 0 1 260px;
    width: 100%;
    max-width: 260px;
    min-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    justify-content: flex-start;
}

/* Η αλυσίδα συρρίκνωσης πρέπει να είναι ΠΛΗΡΗΣ: ομάδα → .k-split-button → κουμπί.
   Αρκεί ένας κρίκος με min-width:auto (η προεπιλογή) για να μη συρρικνωθεί κανένας —
   γι' αυτό το flex-basis στο κουμπί μόνο του δεν έκανε τίποτα (μετρημένο: έμενε 320px
   σε κάθε πλάτος και η σειρά έσπαγε στα 1150px). */
.pdf-toolbar .pdf-toolbar-group,
.pdf-toolbar .k-split-button {
    min-width: 0;
}

.pdf-toolbar .k-split-button {
    flex: 0 1 auto;
}

/* Η μεσαία ομάδα (πλοήγηση σελίδων) έχει flex:1 και κρατούσε 355px κενού χώρου γύρω από
   «1 / 4». Ας δίνει αυτή τον χώρο πρώτη, αντί να τον πληρώνει η σειρά με wrap. */
.pdf-toolbar .pdf-toolbar-nav {
    flex: 0 1 auto;
}

/* Print split-button + options popup */
.pdf-print-split {
    position: relative;
    display: inline-flex;
    align-items: stretch;
}

.pdf-print-main.k-button {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.pdf-print-main .fa-solid {
    margin-right: 6px;
}

.pdf-print-caret.k-button {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-left: 1px solid rgba(255, 255, 255, .35);
    padding-left: 8px;
    padding-right: 8px;
}

.pdf-print-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1000;
}

.pdf-print-popup {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 1001;
    min-width: 380px;
    max-width: calc(100vw - 16px);
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pdf-print-popup-label {
    font-size: .8rem;
    font-weight: 600;
    margin: 4px 0 0;
}

.pdf-print-popup-label:first-child {
    margin-top: 0;
}

.pdf-print-popup-sep {
    border-top: 1px solid #eee;
    margin: 4px 0;
}

.pdf-print-popup-item {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    padding: 6px 4px;
    cursor: pointer;
    text-align: left;
    width: 100%;
    border-radius: 4px;
    font-size: .875rem;
}

.pdf-print-popup-item:hover {
    background: #f2f2f2;
}

.pdf-print-nopr {
    font-size: .8rem;
    color: #a00;
    padding: 4px 0;
}

.pdf-print-nopr-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .8rem;
    padding: 2px 0 4px;
    text-decoration: none;
}

.pdf-print-nopr-link:hover {
    text-decoration: underline;
}

/* Printer dropdown: πλατύτερο ανοιχτό popup ώστε να χωρούν ολόκληρα τα ονόματα εκτυπωτών
   (Width="auto" στο DropDownListPopupSettings). Cap στο viewport + horizontal scroll αν
   κάποιο όνομα είναι υπερβολικά μακρύ, αντί να ξεχειλίσει ή να κοπεί. */
.pdf-printer-popup {
    max-width: calc(100vw - 24px);
}

.pdf-printer-popup .k-list-content {
    overflow-x: auto;
}

.pdf-printer-popup .k-list-item {
    white-space: nowrap;
}
