/*
 * GetLink WORLD — ΕΝΙΑΙΟ ΥΠΟΒΑΘΡΟ ΣΧΕΔΙΑΣΜΟΥ (2.93.0).
 *
 * ΓΙΑΤΙ ΞΕΧΩΡΙΣΤΟ ΑΡΧΕΙΟ: το `world-mobile.css` είναι το mobile-first στρώμα της «Φάσης 2» και
 * το `world-font.css` φιλοξενεί τη γραμματοσειρά. Εδώ μπαίνουν οι ΚΟΙΝΟΙ ΚΑΝΟΝΕΣ που πρέπει να
 * ισχύουν σε ΚΑΘΕ σελίδα διαχείρισης, ώστε να μη χρειάζεται κάθε view να τους επαναλαμβάνει με
 * `!important` — που είναι ακριβώς ο λόγος που η εμφάνιση απέκλινε σελίδα με σελίδα.
 *
 * ΤΡΕΙΣ ΔΙΟΡΘΩΣΕΙΣ, ΜΕΤΡΗΜΕΝΕΣ ΣΤΟ ΖΩΝΤΑΝΟ:
 *  1. ΓΡΑΜΜΑΤΟΣΕΙΡΑ. Το CSS επέβαλλε `font-family:Ubuntu !important` αλλά το αρχείο φορτωνόταν μόνο
 *     σε 7 views. Στο `/world/account/`, `/world/card/<slug>/`, `/world/blocks/` και τη δημόσια
 *     κάρτα έπεφτε σε Arial, με αρνητικό letter-spacing και τεχνητά «έντονα» βάρη → κολλημένα,
 *     στριμωγμένα ελληνικά. Τώρα η Ubuntu είναι τοπική (`world-font.css`) και φορτώνεται παντού.
 *  2. ΤΥΠΟΓΡΑΦΙΑ. Μηδενισμός του αρνητικού tracking, όριο στα βάρη που υπάρχουν πραγματικά (400/500/700
 *     — η Ubuntu δεν έχει 800/900, άρα ο browser τα «παχύνει» μόνος του), και οι τίτλοι δεν παίρνουν
 *     πια τη γραμματοσειρά του θέματος (η `Cardo` εμφανιζόταν σε h1..h6 των σελίδων μας).
 *  3. ΠΛΕΓΜΑ ΥΠΗΡΕΣΙΩΝ. Το markup τύπωνε `glm-idx-grid` αλλά ΚΑΝΕΝΑΣ κανόνας δεν το όριζε: οι 22
 *     υπηρεσίες στοιβάζονταν μία ανά σειρά και η σελίδα λογαριασμού έφτανε τα 6.211px.
 *
 * ΠΡΟΣΟΧΗ ΣΤΗΝ ΠΡΟΕΠΙΣΚΟΠΗΣΗ: όλοι οι κανόνες εξαιρούν το `[data-gl-preview-scope]`, γιατί μέσα εκεί
 * ζει η κάρτα η ίδια — και πρέπει να αποδίδεται ΑΚΡΙΒΩΣ όπως στη δημόσια σελίδα (έλεγχος ισοτιμίας
 * `scripts/preview-parity.mjs`).
 */

/* ── 1. ΓΡΑΜΜΑΤΟΣΕΙΡΑ & ΤΥΠΟΓΡΑΦΙΑ ─────────────────────────────────────────────────────────── */
body.glm-body,
body.getlink-account-panel,
body.getlink-card-panel,
body.getlink-vnext-v2-studio,
body.getlink-vnext-v2-usercp,
body.glm-body button,
body.glm-body input,
body.glm-body select,
body.glm-body textarea {
    font-family: 'Ubuntu', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif !important;
}

/* Τα βάρη 800/900 δεν υπάρχουν στην Ubuntu: ο browser τα «παχύνει» τεχνητά και τα γράμματα
   κολλάνε. Ζητάμε ό,τι υπάρχει και απαγορεύουμε τη σύνθεση — ΕΞΩ από την προεπισκόπηση, ώστε η
   κάρτα να συνεχίσει να αποδίδεται όπως στη δημόσια σελίδα της. */
body.glm-body { font-synthesis-weight: none; }
body.glm-body [data-gl-preview-scope] { font-synthesis-weight: auto; }

body.glm-body :is(h1, h2, h3, h4, h5, h6):not([data-gl-preview-scope] *),
body.glm-body :is(.glm-title strong, .glm-areatag, .glm-idx-head, .ap-head h1, .cp-head h1,
    .glm-tile strong, .glm-btn, .glm-bottomnav a, .ap-button, .ap-label, .cp-tile-arrow):not([data-gl-preview-scope] *) {
    font-family: 'Ubuntu', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
    letter-spacing: normal;   /* τέλος το -.05em που έσφιγγε τα ελληνικά */
}

body.glm-body :is(h1, h2, h3, h4, h5, h6):not([data-gl-preview-scope] *) {
    font-weight: 700;
    line-height: 1.28;
    text-wrap: balance;
}

body.glm-body :is(.glm-title strong, .glm-areatag, .glm-idx-head, .glm-tile strong,
    .glm-btn, .ap-button, .cp-tile-arrow, .glm-bottomnav a):not([data-gl-preview-scope] *) {
    font-weight: 700;
}

/* Τα πολύ μικρά μεγέθη (9–9.5px) ήταν κάτω από το όριο αναγνωσιμότητας. Ρητά μεγέθη — ένα
   `max(11px,1em)` θα κληρονομούσε το μέγεθος του γονέα και θα άλλαζε τη ροή των πλακιδίων. */
body.glm-body :is(.ap-label, .ap-status):not([data-gl-preview-scope] *) { font-size: 11px; }
body.glm-body .glm-bottomnav a:not([data-gl-preview-scope] *) { font-size: 11px; }
body.glm-body :is(.cp-stage-bar span, .cp-stage-bar b):not([data-gl-preview-scope] *) { font-size: 11px; }
body.glm-body .glm-idx-hint:not([data-gl-preview-scope] *),
body.glm-body .glm-tile small:not([data-gl-preview-scope] *) {
    font-size: 12px;
    line-height: 1.5;
    color: var(--glm-muted);
}

/* ── 2. ΠΛΕΓΜΑ ΥΠΗΡΕΣΙΩΝ: εικονίδια δίπλα-δίπλα, σελίδα σύντομη ─────────────────────────────── */
body.glm-body .glm-idx { margin: 14px 0; }
body.glm-body .glm-idx-head {
    margin: 0 0 4px;
    font-size: 13px;
    font-weight: 700;
    color: var(--glm-area);
}
body.glm-body .glm-idx-hint { margin: 0 0 10px; }
body.glm-body .glm-idx-grid,
body.glm-body .glm-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
    align-items: stretch;
}
body.glm-body .glm-idx-grid .glm-tile {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: 3px 10px;
    min-height: 0;
    padding: 11px 12px;
    border-radius: 12px;
}
body.glm-body .glm-idx-grid .glm-tile .glm-tile-ico {
    grid-row: 1 / span 2;
    width: 34px;
    height: 34px;
    border-radius: 10px;
}
body.glm-body .glm-idx-grid .glm-tile .glm-i { width: 20px !important; height: 20px !important; }
body.glm-body .glm-idx-grid .glm-tile strong { grid-column: 2; grid-row: 1; font-size: 13px; }
body.glm-body .glm-idx-grid .glm-tile small { grid-column: 2; grid-row: 2; font-size: 11.5px; }

/* Οι δύο «φύσεις» (ρυθμίσεις / δημόσια σελίδα) ήταν ατύπωτες παράγραφοι. */
body.glm-body .ap-nature { margin: 18px 0 6px; }
body.glm-body .ap-nature-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 3px;
    font-size: 14px;
    font-weight: 700;
    color: var(--glm-ink);
}
body.glm-body .ap-nature-head .glm-i { width: 22px !important; height: 22px !important; }
body.glm-body .ap-nature > p { margin: 0; font-size: 12px; line-height: 1.5; color: var(--glm-muted); }
body.glm-body .glm-idx-wrap { display: block; }

/* ── 3. ΠΑΝΕΛ ΚΑΡΤΑΣ: ενότητες αριστερά, ζωντανό render δεξιά ──────────────────────────────── */
@media (min-width: 1000px) {
    body.getlink-card-panel .cp-wrap {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(304px, 372px);
        column-gap: 24px;
        align-items: start;
        max-width: 1180px !important;
    }
    /* ΡΗΤΗ ΤΟΠΟΘΕΤΗΣΗ — Η ΔΙΟΡΘΩΣΗ ΤΗΣ 2.93.0.
       Με σκέτη `grid-row: 1/-1` στο render, η αυτόματη τοποθέτηση έστελνε ΚΑΘΕ ΔΕΥΤΕΡΟ παιδί
       (stats, μία ομάδα ανά δύο) στη ΔΕΞΙΑ στήλη: μετρήθηκε «card 1024px, .cp-grid2 right=1337».
       Τώρα: όλα τα παιδιά κάτω από την ΑΡΙΣΤΕΡΗ στήλη, ρητά· μόνο το render δεξιά, και πιάνει όλο
       το ύψος του πλέγματος ώστε να «κολλάει» όσο κυλάει ο κάτοχος. */
    body.getlink-card-panel .cp-wrap > * { grid-column: 1; min-width: 0; }
    body.getlink-card-panel .cp-wrap > .cp-stage {
        grid-column: 2;
        grid-row: 1 / span 30;
        align-self: start;
        position: sticky !important;
        top: 16px !important;
        margin: 0 !important;
        z-index: 1;
    }
    body.getlink-card-panel .cp-preview-frame { max-height: calc(100vh - 190px); }
}
@media (max-width: 999px) {
    body.getlink-card-panel .cp-wrap { display: flex; flex-direction: column; }
    body.getlink-card-panel .cp-head { order: 1; }
    body.getlink-card-panel .cp-stage { order: 2; position: static !important; }
    body.getlink-card-panel .cp-where { order: 3; }
    body.getlink-card-panel .cp-stats { order: 4; }
    body.getlink-card-panel .cp-group,
    body.getlink-card-panel .cp-analytics { order: 5; }
    body.getlink-card-panel .cp-analytics-tile { order: 6; }
}

/* ── 3β. ΤΑ ΔΙΠΛΑ ΠΕΔΙΑ ΔΕΝ ΣΠΑΝΕ ΤΟ ΠΛΑΙΣΙΟ (768px) ────────────────────────────────────────── */
/* Τα `.cp-grid2` χρησιμοποιούσαν `1fr 1fr`: το `1fr` σημαίνει `minmax(auto,1fr)`, και το `auto`
   κρατά το ελάχιστο πλάτος ενός πεδίου (~241px). Σε στενότερο γονέα (tablet, 768px) τα δύο πεδία
   βγαίνουν έξω από την οθόνη — μετρήθηκε «card 768px, .cp-grid2 right=901 σε viewport 768» (και
   υπήρχε ήδη στη 2.92.0, με τα ίδια 7 ευρήματα). Με `minmax(0,1fr)` οι στήλες συρρικνώνονται. */
body.glm-body :is(.cp-grid2, .cp-form, .cp-group, .cp-savebar, .cp-block, .cp-social-list) { min-width: 0; }
body.glm-body .cp-grid2 > * { min-width: 0; }
/* ΜΟΝΟ πάνω από το δικό τους breakpoint των 620px: κάτω από αυτό τα πεδία είναι ΜΙΑ στήλη και
   πρέπει να μείνουν έτσι (μια πρώτη έκδοση χωρίς media query τα έβαζε δύο στήλες στα 375px). */
@media (min-width: 621px) {
    body.glm-body .cp-grid2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Ίδια αιτία, άλλο σημείο: το δικό τους `@media(max-width:820px)` γυρίζει τις στήλες της ομάδας σε
   `1fr 1fr`, που ΔΕΝ συρρικνώνεται (minmax(auto,1fr)) — στα 768px ένα πεδίο 241px έβγαινε έξω από
   την οθόνη (right=822 σε viewport 768). Επαναφέρεται η συρρίκνωση ΜΟΝΟ στο εύρος που το κάνουν
   διπλό, ώστε κάτω από τα 560px να μείνει μία στήλη όπως πρέπει. */
@media (min-width: 561px) and (max-width: 820px) {
    body.glm-body .cp-group { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
/* Κάθε στοιχείο του πάνελ επιτρέπεται να συρρικνωθεί: το `min-width:auto` των grid/flex παιδιών
   είναι η γενική αιτία υπερχείλισης σε στενά πλάτη. Η κάρτα (προεπισκόπηση) εξαιρείται ρητά. */
body.glm-body .cp-wrap :not([data-gl-preview-scope] *):not([data-gl-preview-scope]) { min-width: 0; }

/* ── 4. ΓΡΑΦΗΜΑΤΑ ΑΝΑΛΥΤΙΚΩΝ (η ενότητα Analytics, με πραγματικά δεδομένα) ─────────────────── */
body.glm-body .cp-analytics {
    margin: 16px 0 0;
    padding: 14px;
    border: 1px solid #dbe3f0;
    border-radius: 14px;
    background: #fff;
}
body.glm-body .cp-analytics-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
    margin-bottom: 12px;
}
body.glm-body .cp-analytics-head strong { font-size: 14px; }
body.glm-body .cp-analytics-head small { color: var(--glm-muted); font-size: 11.5px; }
body.glm-body .cp-analytics-head a { margin-left: auto; font-size: 11.5px; color: var(--glm-blue); text-decoration: none; }
body.glm-body .cp-chart { display: grid; gap: 8px; }
body.glm-body .cp-chart-row {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    font-size: 11.5px;
}
body.glm-body .cp-chart-row > b { font-weight: 500; color: var(--glm-muted); }
body.glm-body .cp-chart-bars { display: flex; align-items: flex-end; gap: 2px; height: 34px; }
body.glm-body .cp-chart-bars i {
    flex: 1;
    min-height: 2px;
    border-radius: 2px 2px 0 0;
    background: color-mix(in srgb, var(--bar-color) 82%, #fff);
}
body.glm-body .cp-chart-row > strong { font-size: 13px; min-width: 34px; text-align: right; }
body.glm-body .cp-analytics-nums {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #eef1f7;
}
body.glm-body .cp-analytics-nums div { display: grid; gap: 2px; }
body.glm-body .cp-analytics-nums strong { font-size: 19px; line-height: 1; }
body.glm-body .cp-analytics-nums small { color: var(--glm-muted); font-size: 10.5px; }
body.glm-body .cp-analytics-empty {
    padding: 12px;
    border-radius: 11px;
    background: #f6f8fc;
    font-size: 12px;
    line-height: 1.5;
    color: var(--glm-muted);
}

/* ── 5. ΠΛΟΗΓΗΣΗ ΠΑΝΤΟΥ (το «tablet κενό» 820–1200px) ─────────────────────────────────────── */
/* Το κάτω μενού κρύβεται από τα 820px και το κουμπί του μενού εμφανίζεται μόνο κάτω από τα 900px.
   Άρα από 900 έως 1200px οι σελίδες διαχείρισης δεν είχαν ΚΑΝΕΝΑΝ τρόπο πλοήγησης — μετρημένο
   ζωντανά («hidden rail with no visible toggle» στο /world/nfc/ και /world/blocks/ στα 1024px).
   Διορθώνεται εδώ: το κάτω μενού μένει διαθέσιμο σε όλο το tablet εύρος.
   ΣΗΜΕΙΩΣΗ: το Studio τύπωνε δύο μπάρες (topbar περιοχής + δική του κεφαλίδα) — η ενοποίηση του
   δικού του shell ανήκει στο επόμενο κύμα, γι' αυτό ΔΕΝ κόβεται εδώ καμία μπάρα. */
@media (min-width: 820px) and (max-width: 1200px) {
    body.glm-body .glm-bottomnav { display: flex; }
    body.glm-body.glm-shell-pad, body.glm-body { padding-bottom: 0; }
}

/* ── 6. STUDIO: ΜΙΑ ΜΠΑΡΑ, ΤΟ RENDER ΔΕΞΙΑ, ΤΑ ΠΕΔΙΑ ΠΟΥ ΕΛΕΙΠΑΝ (2.95.0) ──────────────────── */
/* ΠΡΙΝ: τρεις στήλες (φόρμα | render | aside) και ΔΥΟ μπάρες η μία πάνω στην άλλη (το topbar
   περιοχής + η δική του κεφαλίδα). ΤΩΡΑ: δύο στήλες με το render ΔΕΞΙΑ και sticky — σε ΚΑΘΕ
   ενότητα — και μία μπάρα στο desktop (η δική του κεφαλίδα, που έχει και τον δρόμο προς τον
   χώρο εργασίας· το topbar περιοχής μένει για κινητό, όπως στον Λογαριασμό). */
@media (min-width: 901px) {
    /* 3.1.29: το ΕΝΙΑΙΟ banner (glm-topbar) είναι πλέον το ΜΟΝΟ banner και στο Studio. */
    body.getlink-vnext-v2-studio .glm-topbar { display: flex !important; }
}
@media (min-width: 1001px) {
    body.getlink-vnext-v2-studio .studio-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(320px, 404px);
        gap: 18px;
        align-items: start;
    }
    body.getlink-vnext-v2-studio .studio-layout > .studio-panel { grid-column: 1; min-width: 0; }
    body.getlink-vnext-v2-studio .studio-preview-wrap {
        grid-column: 2;
        grid-row: 1 / span 8;
        align-self: start;
        position: sticky !important;
        top: 14px;
    }
}
/* Τα πεδία του Studio ήταν στα 9.5px — κάτω από το όριο αναγνωσιμότητας. */
body.glm-body .qr-design-field:not([data-gl-preview-scope] *) { font-size: 11px; }
body.glm-body .studio-panel h2:not([data-gl-preview-scope] *) { font-size: 17px; }
body.glm-body .studio-panel > p:not([data-gl-preview-scope] *) { font-size: 12.5px; line-height: 1.55; color: var(--glm-muted); }

/* Η φόρμα προφίλ του Studio: δύο στήλες σε desktop, μία σε κινητό. */
body.glm-body .studio-profile-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
    margin: 12px 0;
}
body.glm-body .studio-profile-grid > label { min-width: 0; }
body.glm-body .studio-profile-grid textarea { grid-column: 1 / -1; }
body.glm-body .studio-profile-grid > label:has(textarea) { grid-column: 1 / -1; }
body.glm-body .studio-profile-grid input,
body.glm-body .studio-profile-grid textarea {
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #cbd3cd;
    border-radius: 9px;
    font: inherit;
    color: var(--glm-ink);
    background: #fff;
    width: 100%;
}
body.glm-body .studio-profile-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* ── 7. BLOCKS: Η ΣΕΛΙΔΑ ΔΕΝ ΕΙΧΕ ΚΑΝΕΝΑ BREAKPOINT (2.95.0) ─────────────────────────────── */
body.glm-body .blk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
body.glm-body .blk-grid > * { min-width: 0; }
@media (max-width: 640px) {
    body.glm-body .blk-grid { grid-template-columns: minmax(0,1fr); }
    body.glm-body .blk-shell { padding-left: 12px; padding-right: 12px; }
}

/* ── 8. ΚΑΤΑΣΤΑΣΗ ΥΠΗΡΕΣΙΑΣ ΣΤΟ ΠΛΑΚΙΔΙΟ (2.98.0) ───────────────────────────────────────────── */
/* Ο κάτοχος βλέπει με μια ματιά τι είναι ΕΝΕΡΓΟ. Πράσινο κείμενο με επαρκή αντίθεση στο λευκό
   πλακίδιο (ο έλεγχος WCAG μετρά κάθε χρώμα κειμένου απέναντι στα canvas που χρησιμοποιείται). */
body.glm-body .glm-idx-grid .glm-tile .glm-tile-state {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #0b6b48;
    font-weight: 700;
}
/* 3.9.38 — ενιαία ιεραρχία με το landing */
body.glm-body :is(h1):not([data-gl-preview-scope] *){font-weight:800!important;letter-spacing:-.04em!important}
