/* ============================================================================
   Πύλη Μεταπωλητών (/reseller) — αυτοτελές στυλ, ανεξάρτητο από το κέλυφος
   του ERP. Ίδια παλέτα Metronic (#1B84FF) για συνέπεια μάρκας.
   ============================================================================ */
.rs-shell { min-height: 100vh; background: #f7f9fc; display: flex; flex-direction: column; }

.rs-topbar {
    display: flex; align-items: center; justify-content: space-between;
    padding: .65rem 1.25rem; background: #052767; color: #fff;
    position: sticky; top: 0; z-index: 10;
}
.rs-brand { display: flex; align-items: center; gap: .5rem; color: #fff; text-decoration: none; font-weight: 600; }
.rs-brand-sub {
    font-size: .7rem; font-weight: 500; text-transform: uppercase; letter-spacing: .06em;
    background: rgba(255,255,255,.16); padding: .12rem .45rem; border-radius: 999px;
}
.rs-topbar-right { display: flex; align-items: center; gap: .75rem; }
.rs-user { font-size: .8125rem; opacity: .9; }

.rs-main { flex: 1; padding: 1.25rem; }
.rs-page { max-width: 1200px; margin: 0 auto; }
.rs-page-head { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.rs-page-head h1 { font-size: 1.25rem; font-weight: 600; margin: 0; color: #1e2129; }
.rs-count {
    background: #1B84FF; color: #fff; border-radius: 999px;
    font-size: .75rem; font-weight: 600; padding: .1rem .5rem;
}

/* ── Αναζήτηση ── */
.rs-search { display: flex; gap: .5rem; margin-bottom: 1rem; max-width: 620px; }
.rs-search .form-control { min-height: 2.5rem; border-radius: .5rem; border-color: #d8e2ee; }
.rs-search .form-control:focus { border-color: #1B84FF; box-shadow: 0 0 0 .2rem rgba(27,132,255,.18); }
.rs-search .btn { min-height: 2.5rem; border-radius: .5rem; white-space: nowrap; }

/* ── Λίστα εγκαταστάσεων (μία γραμμή ανά πελάτη, όχι πλακίδια) ── */
.rs-list { display: flex; flex-direction: column; gap: .5rem; }
.rs-row {
    background: #fff; border: 1px solid #e4ecf5; border-radius: .75rem;
    padding: .85rem 1rem; display: flex; align-items: center; gap: 1.5rem;
    transition: box-shadow .15s ease, border-color .15s ease;
}
.rs-row:hover { box-shadow: 0 4px 14px rgba(15,34,66,.07); border-color: #cfe0f5; }
.rs-row-main { flex: 1; min-width: 0; }
.rs-row-title {
    font-weight: 600; color: #1e2129; display: flex; align-items: center; gap: .4rem;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rs-row-meta {
    display: flex; flex-wrap: wrap; gap: .85rem; margin-top: .15rem;
    font-size: .8125rem; color: #78829d;
}
.rs-row-db { font-family: ui-monospace, Consolas, monospace; }

/* Αριθμός εγκατάστασης (registry id) — το μόνο σίγουρα μοναδικό αναγνωριστικό. */
.rs-id {
    font-family: ui-monospace, Consolas, monospace; font-weight: 600;
    color: #4b5675; background: #eef2f7; border-radius: .25rem; padding: 0 .35rem;
}
/* SN εγκατάστασης. Η «αδύναμη» παραλλαγή = DBVER.CODE (υπάρχει αλλά δεν είναι μοναδικός). */
.rs-sn {
    font-family: ui-monospace, Consolas, monospace;
    color: #1b6dc1; background: #eef4fb; border: 1px solid #d6e6f8;
    border-radius: .25rem; padding: 0 .35rem;
}
.rs-sn-weak { color: #7c6a3c; background: #fdf7e7; border-color: #f0e2bd; }
.rs-sn-err  { color: #a4404b; background: #fdeef0; border-color: #f6d3d8; }
.rs-row-note {
    margin-top: .3rem; font-size: .8125rem; color: #4b5675;
    background: #f7f9fc; border-left: 3px solid #cfe0f5;
    border-radius: .25rem; padding: .2rem .5rem; display: inline-block;
}
.rs-row-stats { display: flex; gap: 1.35rem; flex: none; }
.rs-row-stats > div { text-align: right; min-width: 86px; }

/* Ετικέτα ΠΑΝΩ από την τιμή, σε δική της γραμμή. Χωρίς αυτό οι δύο spans είναι
   inline και κολλάνε («Τελ. σύνδεσηπριν 0′»). Ισχύει και για τη σελίδα στοιχείων. */
.rs-stat-label,
.rs-stat-val { display: block; }
.rs-stat-label {
    font-size: .6875rem; line-height: 1.3; color: #99a1b7;
    text-transform: uppercase; letter-spacing: .02em; white-space: nowrap;
}
.rs-stat-val { font-size: .9375rem; line-height: 1.35; font-weight: 600; color: #1e2129; }

/* Σελίδα «Στοιχεία επικοινωνίας»: τα ίδια νούμερα σε τρεις στήλες με αέρα. */
.rs-stats {
    display: flex; gap: 1.35rem; flex-wrap: wrap;
    border-top: 1px solid #eef2f7; padding-top: .85rem;
}
.rs-stats > div { min-width: 96px; }
.rs-row-actions { display: flex; gap: .4rem; flex: none; }
.rs-row-actions .btn { border-radius: .5rem; }

/* Σε στενή οθόνη η γραμμή γίνεται στοίβα — τα στατιστικά δεν συνθλίβουν τον τίτλο. */
@media (max-width: 860px) {
    .rs-row { flex-wrap: wrap; }
    .rs-row-main { flex: 1 0 100%; }
    .rs-row-stats { flex: 1; justify-content: flex-start; }
    .rs-row-stats > div { text-align: left; }
}

/* Το κουμπί ανανέωσης σπρώχνεται δεξιά, μακριά από τον μετρητή. */
.rs-head-actions { margin-left: auto; }

/* ── Συμβόλαιο ── */
/* Στη λίστα: η ημερομηνία λήξης χρωματίζεται ανά κατάσταση. */
.rs-contract-ok      { color: #17795e; }
.rs-contract-soon    { color: #a07b1e; }
.rs-contract-expired { color: #b32d3c; }
.rs-contract-unknown { color: #99a1b7; font-weight: 500; }

/* Στη σελίδα εγκατάστασης: αυτοτελής κάρτα. */
.rs-contract-card {
    border: 1px solid #e4ecf5; border-radius: .625rem; padding: .85rem 1rem; background: #fbfdff;
}
.rs-contract-card-empty { color: #78829d; font-size: .8125rem; background: #f9fafc; }
.rs-contract-head {
    display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
    padding-bottom: .6rem; margin-bottom: .75rem; border-bottom: 1px solid #eef2f7;
}
.rs-contract-title { font-weight: 600; color: #1e2129; }
.rs-contract-badge {
    margin-left: auto; display: inline-flex; align-items: center; gap: .4rem;
    font-weight: 600; font-size: .8125rem; border-radius: .375rem; padding: .15rem .5rem;
    background: #eef2f7;
}
.rs-contract-badge.rs-contract-ok      { background: #e7f6f1; color: #17795e; }
.rs-contract-badge.rs-contract-soon    { background: #fdf6e3; color: #8a6714; }
.rs-contract-badge.rs-contract-expired { background: #fdeef0; color: #a4404b; }
.rs-contract-days { font-weight: 500; opacity: .75; }

/* Ζεύγη ετικέτα/τιμή σε δύο-τρεις στήλες ανάλογα με το πλάτος. */
.rs-kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .5rem .9rem; }
.rs-kv > div { display: flex; flex-direction: column; min-width: 0; }
.rs-kv span {
    font-size: .6875rem; text-transform: uppercase; letter-spacing: .02em; color: #99a1b7;
}
.rs-kv b { font-weight: 600; color: #1e2129; font-size: .875rem; overflow-wrap: anywhere; }

/* Modules: μαζεμένα — ο μεταπωλητής σπάνια τα χρειάζεται. */
.rs-modules { margin-top: .85rem; }
.rs-modules summary {
    cursor: pointer; font-size: .8125rem; font-weight: 600; color: #1b6dc1;
}
.rs-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .6rem; }
.rs-chip {
    font-size: .75rem; color: #4b5675; background: #eef2f7;
    border-radius: 999px; padding: .1rem .55rem;
}
.rs-contract-foot { margin-top: .75rem; font-size: .6875rem; color: #99a1b7; }

/* ── Κενή κατάσταση ── */
.rs-empty { text-align: center; padding: 3rem 1rem; color: #78829d; }
.rs-empty i { font-size: 2rem; display: block; margin-bottom: .6rem; opacity: .5; }
.rs-empty p { margin-bottom: .5rem; }

/* ── Login ── */
.rs-login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.25rem; }
.rs-login-card {
    background: #fff; border: 1px solid #e4ecf5; border-radius: .875rem;
    box-shadow: 0 18px 48px rgba(15,34,66,.12); padding: 1.75rem; width: 100%; max-width: 380px;
}
.rs-login-head { display: flex; align-items: center; gap: .7rem; margin-bottom: 1.5rem; }
.rs-login-title { font-size: 1.1rem; font-weight: 700; color: #1e2129; line-height: 1.1; }
.rs-login-sub { font-size: .8125rem; color: #78829d; }
.rs-login-card .form-control { min-height: 2.6rem; border-radius: .5rem; border-color: #d8e2ee; }
.rs-login-card .form-control:focus { border-color: #1B84FF; box-shadow: 0 0 0 .2rem rgba(27,132,255,.18); }
.rs-login-card .btn-primary { min-height: 2.6rem; border-radius: .5rem; font-weight: 500; }
.rs-login-foot { margin-top: 1.25rem; font-size: .75rem; color: #99a1b7; text-align: center; }

/* ── Ενδιάμεση σελίδα εισόδου στην εφαρμογή του πελάτη ── */
.rs-open-wrap { display: flex; justify-content: center; padding-top: 1.5rem; }
.rs-open-card {
    background: #fff; border: 1px solid #e4ecf5; border-radius: .875rem;
    box-shadow: 0 14px 40px rgba(15,34,66,.10); padding: 1.5rem; width: 100%; max-width: 420px;
}
.rs-open-back { font-size: .8125rem; color: #78829d; text-decoration: none; }
.rs-open-back:hover { color: #1B84FF; }
.rs-open-head { display: flex; gap: .85rem; align-items: flex-start; margin: 1rem 0 1.25rem; }
.rs-open-app {
    width: 44px; height: 44px; border-radius: .65rem; flex: none;
    display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem;
}
.rs-open-app.pos { background: #E9F3FF; color: #1B84FF; }
.rs-open-app.tablet { background: #F1F1F4; color: #4b5675; }
.rs-open-title { font-weight: 600; color: #1e2129; }
.rs-open-cust { font-size: .9375rem; color: #4b5675; }
.rs-open-db { font-size: .75rem; color: #99a1b7; font-family: ui-monospace, Consolas, monospace; }
.rs-open-card .form-control { min-height: 2.6rem; border-radius: .5rem; border-color: #d8e2ee; }
.rs-open-card .form-control:focus { border-color: #1B84FF; box-shadow: 0 0 0 .2rem rgba(27,132,255,.18); }
.rs-open-card .btn-primary { min-height: 2.6rem; border-radius: .5rem; font-weight: 500; }
.rs-open-note { font-size: .75rem; color: #99a1b7; }
