@import url("https://fonts.googleapis.com/css2?family=Commissioner:wght@400;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");

/* ==========================================================================
   SMARTHOST — WHMCS Client Area
   Child theme του Twenty-One (Bootstrap 4.5.3, jQuery 1.12.4,
   Font Awesome 5.10.1).

   Ίδια παλέτα και ίδιες γραμματοσειρές με το smarthost.gr, ώστε ο πελάτης
   που πατά «Σύνδεση πελάτη» να μη νιώθει ότι άλλαξε εταιρεία.

   ΠΡΟΣΟΧΗ ΣΤΗ ΓΡΑΜΜΑΤΟΣΕΙΡΑ: το IBM Plex Mono ΔΕΝ έχει ελληνικό subset.
   Δεν χρησιμοποιείται πουθενά· τα στοιχισμένα ψηφία σε ποσά και τιμολόγια
   βγαίνουν με font-variant-numeric: tabular-nums πάνω στο IBM Plex Sans.
   ========================================================================== */

:root {
  /* --- Grounds -------------------------------------------------------- */
  --sh-navy-900: #03071E;   /* topbar, navbar, footer                     */
  --sh-navy-800: #080D24;   /* σώμα σελίδας                                */
  --sh-navy-700: #101733;   /* ανασηκωμένη επιφάνεια                       */

  /* --- Κείμενο -------------------------------------------------------- */
  /* Καθαρό λευκό παντού. Κανένα γκρι μπροστά από σκούρο φόντο — ούτε στα
     δευτερεύοντα. Και τα δύο tokens δίνουν 19,9:1 πάνω στο navy-900,
     και πουθενά στο θέμα δεν πέφτουν κάτω από 17,4:1.

     Το `--sh-ink-muted` ΔΕΝ καταργήθηκε, γιατί το χρησιμοποιούν 29 σημεία
     και το @media print το ξαναδηλώνει σκούρο για το χαρτί. Αν κάποτε
     θελήσεις πάλι διαβάθμιση, αλλάζεις μόνο αυτή τη μία γραμμή. */
  --sh-ink:       #FFFFFF;
  --sh-ink-muted: #FFFFFF;

  /* --- Ενέργεια. Ονομάζεται κατά ρόλο, όχι κατά απόχρωση -------------- */
  --sh-primary:       #03A880;  /* 6,6:1 σε navy                           */
  --sh-primary-hover: #04C294;  /* 8,7:1 σε navy                           */
  --sh-primary-ink:   #027053;  /* 6,1:1 σε λευκό — για print/light        */

  /* --- Έμφαση, με μέτρο ----------------------------------------------- */
  --sh-accent: #FAA307;     /* 9,8:1 σε navy                               */

  /* --- Επιφάνειες & περιγράμματα -------------------------------------- */
  --sh-card:   rgba(255, 255, 255, 0.05);
  --sh-border: rgba(255, 255, 255, 0.09);
  --sh-hover:  rgba(255, 255, 255, 0.03);

  /* Περίγραμμα για ΕΝΕΡΓΑ στοιχεία (κουμπιά, πεδία). Το --sh-border είναι
     διακοσμητικό και δίνει 1,3:1 — το WCAG 1.4.11 θέλει 3:1 για ό,τι πατιέται.
     Αυτό δίνει 3,5:1 πάνω στο navy. */
  --sh-border-strong: rgba(255, 255, 255, 0.38);

  /* --- Σημασιολογικά, στις εκδοχές για ΣΚΟΥΡΟ φόντο ------------------- */
  --sh-ok:    #12B76A;      /* 7,6:1 */
  --sh-warn:  #F79009;      /* 8,5:1 */
  --sh-error: #FF8A8A;      /* 8,8:1 */
  --sh-info:  #6FE8C8;      /* 13,4:1 */

  /* --- Γεωμετρία & τυπογραφία ----------------------------------------- */
  --sh-radius:    12px;
  --sh-radius-sm:  8px;
  --sh-font-display: "Commissioner", "Helvetica Neue", Arial, sans-serif;
  --sh-font-body:    "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --sh-ease: cubic-bezier(.4, 0, .2, 1);
}

/* --------------------------------------------------------------------------
   ΑΝ ΠΡΟΤΙΜΗΣΕΙΣ ΦΩΤΕΙΝΟ ΘΕΜΑ
   Ένα πάνελ χρεώσεων είναι γεμάτο πίνακες, τιμολόγια και σελίδες από modules
   τρίτων που υποθέτουν λευκό φόντο. Αν το σκούρο σου δημιουργήσει προβλήματα,
   αντικατέστησε το :root παραπάνω με αυτό εδώ και δεν χρειάζεται τίποτα άλλο:

   --sh-navy-900: #FFFFFF;  --sh-navy-800: #F4F6FA;  --sh-navy-700: #FFFFFF;
   --sh-ink: #0B1020;       --sh-ink-muted: #5A6478;
   --sh-primary: #027053;   --sh-primary-hover: #03A880;
   --sh-card: #FFFFFF;      --sh-border: #DCE2EC;
   --sh-hover: rgba(3,168,128,.05);
   --sh-error: #B3261E;     --sh-ok: #0E8F52;  --sh-info: #027053;
   -------------------------------------------------------------------------- */


/* ==========================================================================
   1. ΒΑΣΕΙΣ
   ========================================================================== */

body,
body.primary-bg-color {
  background-color: var(--sh-navy-800);
  color: var(--sh-ink);
  font-family: var(--sh-font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.card-title, .h1, .h2, .h3, .h4, .h5 {
  font-family: var(--sh-font-display);
  color: #FFFFFF;
  letter-spacing: -.01em;
}

a { color: var(--sh-primary); }
a:hover, a:focus { color: var(--sh-primary-hover); }

hr { border-top-color: var(--sh-border); }

/* Οτιδήποτε με ποσά, ημερομηνίες ή αριθμούς τιμολογίων στοιχίζεται σωστά */
.table, .amount, .price, .invoice-amount, .tile .stat, .stat {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Ορατό focus — απαραίτητο σε πάνελ που χειρίζεται χρήματα */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.btn:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--sh-primary);
  outline-offset: 2px;
  box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}


/* ==========================================================================
   2. TOPBAR & NAVBAR
   ========================================================================== */

.topbar {
  background-color: var(--sh-navy-900);
  border-bottom: 1px solid var(--sh-border);
  color: var(--sh-ink-muted);
}

.topbar a,
.topbar .btn {
  color: var(--sh-ink-muted);
}

.topbar a:hover,
.topbar .btn:hover {
  color: var(--sh-primary);
}

.navbar,
.navbar-light,
.main-navbar-wrapper {
  background-color: var(--sh-navy-900);
  border-bottom: 1px solid var(--sh-border);
}

.navbar-brand { padding: 6px 0; }

.navbar-brand .logo-img {
  max-height: 42px;
  width: auto;
}

/* Τα κύρια στοιχεία του μενού: καθαρό λευκό, όπως και τα υπομενού */
.navbar-light .navbar-nav .nav-link,
.navbar .nav-link,
.navbar .navbar-nav > li > a {
  color: #FFFFFF;          /* 19,9:1 πάνω στο navy-900 */
  font-weight: 500;
  transition: color .2s var(--sh-ease);
}

/* Το βελάκι του dropdown δίπλα στο «Κατάστημα» */
.navbar .nav-link .caret,
.navbar .dropdown-toggle::after { color: #FFFFFF; }

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.active {
  color: var(--sh-primary);
}

.navbar-light .navbar-toggler {
  border-color: var(--sh-border);
  color: var(--sh-ink);
}

/* Το μετρητή καλαθιού στην μπάρα */
.cart-btn .badge,
.badge-info {
  background-color: var(--sh-primary);
  color: var(--sh-navy-900);
}

/* Αναζήτηση στην μπάρα */
.input-group.search .form-control,
.input-group .form-control {
  background-color: var(--sh-card);
  border-color: var(--sh-border);
  color: var(--sh-ink);
}

.input-group-text {
  background-color: var(--sh-card);
  border-color: var(--sh-border);
  color: var(--sh-ink-muted);
}

/* Dropdowns */
.dropdown-menu {
  background-color: var(--sh-navy-700);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-sm);
  box-shadow: 0 12px 32px -12px rgba(0, 0, 0, .6);
}

/* Τα στοιχεία του μενού είναι ΛΕΥΚΑ. Το Bootstrap τα δηλώνει `#212529` —
   σκούρο γκρι, φτιαγμένο για λευκό dropdown. Πάνω στο navy έβγαινε 1,6:1,
   δηλαδή πρακτικά αόρατο. Χρειάζεται !important γιατί το `.dropdown-item`
   του Bootstrap έχει ίδια specificity και το `<li class="dropdown-item">`
   που τυλίγει το `<a class="dropdown-item">` μπερδεύει τη σειρά. */
.dropdown-menu .dropdown-item,
.dropdown-menu li.dropdown-item > a,
.navbar .dropdown-menu a,
.navbar-nav .dropdown-menu .dropdown-item,
.dropdown-item {
  color: #FFFFFF !important;   /* 17,6:1 πάνω στο navy-700 */
  font-weight: 500;
}

.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus,
.dropdown-menu li.dropdown-item > a:hover,
.navbar .dropdown-menu a:hover,
.navbar .dropdown-menu a:focus,
.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--sh-hover) !important;
  color: var(--sh-primary-hover) !important;  /* 7,7:1 */
}

/* Η τρέχουσα επιλογή: το Bootstrap τη βάφει `#369` (μπλε) */
.dropdown-menu .dropdown-item.active,
.dropdown-menu .dropdown-item:active,
.dropdown-item.active,
.dropdown-item:active {
  background-color: var(--sh-primary) !important;
  color: var(--sh-navy-900) !important;       /* 6,6:1 */
}

.dropdown-divider,
.nav-divider {
  border-top-color: var(--sh-border);
}

.dropdown-header {
  color: var(--sh-ink-muted);
}


/* ==========================================================================
   3. BREADCRUMB & ΣΩΜΑ
   ========================================================================== */

.master-breadcrumb {
  background-color: var(--sh-navy-900);
  border-bottom: 1px solid var(--sh-border);
}

.master-breadcrumb .breadcrumb {
  background: transparent;
  margin-bottom: 0;
}

.breadcrumb-item,
.breadcrumb-item a {
  color: var(--sh-ink-muted);
}

.breadcrumb-item a:hover { color: var(--sh-primary); }
.breadcrumb-item.active { color: var(--sh-ink); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--sh-ink-muted); }

#main-body {
  background-color: var(--sh-navy-800);
  padding-top: 32px;
  padding-bottom: 56px;
  min-height: 60vh;
}

.primary-content { color: var(--sh-ink); }

.section-title,
.page-header {
  border-bottom-color: var(--sh-border);
  color: #FFFFFF;
}


/* ==========================================================================
   4. SIDEBAR
   ========================================================================== */

.sidebar .list-group,
.sidebar .card,
.sidebar .panel {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
  overflow: hidden;
}

.sidebar .list-group-item {
  background-color: transparent;
  border-color: var(--sh-border);
  color: var(--sh-ink);
}

.sidebar .list-group-item:hover {
  background-color: var(--sh-hover);
  color: var(--sh-primary);
}

.sidebar .list-group-item.active,
.sidebar .list-group-item.active:hover {
  background-color: var(--sh-primary);
  border-color: var(--sh-primary);
  color: var(--sh-navy-900);
  font-weight: 600;
}

.sidebar .card-header,
.sidebar .panel-heading {
  background-color: var(--sh-navy-700);
  border-bottom: 1px solid var(--sh-border);
  color: #FFFFFF;
  font-family: var(--sh-font-display);
  font-weight: 600;
}


/* ==========================================================================
   5. ΚΑΡΤΕΣ
   ========================================================================== */

.card,
.panel {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
  color: var(--sh-ink);
}

.card-header,
.panel-heading {
  background-color: rgba(255, 255, 255, .03);
  border-bottom: 1px solid var(--sh-border);
  color: #FFFFFF;
}

.card-header .card-title {
  font-size: 17px;
  font-weight: 600;
  margin: 0;
}

.card-footer,
.panel-footer {
  background-color: rgba(255, 255, 255, .03);
  border-top: 1px solid var(--sh-border);
  color: var(--sh-ink-muted);
}

/* Οι έγχρωμες λωρίδες των καρτών της αρχικής, στα δικά μας χρώματα */
.card-accent-blue   { border-top: 3px solid var(--sh-primary); }
.card-accent-green  { border-top: 3px solid var(--sh-ok); }
.card-accent-red    { border-top: 3px solid var(--sh-error); }
.card-accent-gold   { border-top: 3px solid var(--sh-accent); }
.card-accent-orange { border-top: 3px solid var(--sh-warn); }


/* ==========================================================================
   6. TILES — τα τέσσερα πλακίδια στατιστικών της αρχικής
   ========================================================================== */

.tiles .tile,
.tile {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
  color: var(--sh-ink);
  transition: border-color .25s var(--sh-ease), transform .25s var(--sh-ease);
}

.tiles .tile:hover {
  border-color: rgba(3, 168, 128, .35);
  transform: translateY(-2px);
}

.tile .stat {
  font-family: var(--sh-font-display);
  font-weight: 700;
  color: #FFFFFF;
}

.tile .title {
  color: var(--sh-ink-muted);
  font-size: 13px;
  letter-spacing: .02em;
}

.tile.highlight,
.tile .highlight { color: var(--sh-primary); }

/* Το Twenty-One χρωματίζει τα πλακίδια με ονόματα χρωμάτων. Τα ξαναδένουμε
   στην παλέτα, ώστε να μη μένουν μπλε και χρυσά μέσα σε πράσινο brand. */
.bg-color-blue   { background-color: var(--sh-primary) !important;
                   color: var(--sh-navy-900) !important; }
.bg-color-green  { background-color: var(--sh-ok) !important;
                   color: var(--sh-navy-900) !important; }
.bg-color-red    { background-color: var(--sh-error) !important;
                   color: var(--sh-navy-900) !important; }
.bg-color-gold   { background-color: var(--sh-accent) !important;
                   color: var(--sh-navy-900) !important; }
.bg-color-orange { background-color: var(--sh-warn) !important;
                   color: var(--sh-navy-900) !important; }


/* ==========================================================================
   7. LIST GROUPS
   ========================================================================== */

.list-group-item {
  background-color: transparent;
  border-color: var(--sh-border);
  color: var(--sh-ink);
}

.list-group-item-action:hover,
.list-group-item-action:focus {
  background-color: var(--sh-hover);
  color: var(--sh-primary);
}

.list-group-item.active {
  background-color: var(--sh-primary);
  border-color: var(--sh-primary);
  color: var(--sh-navy-900);
}


/* ==========================================================================
   8. ΚΟΥΜΠΙΑ
   Το κείμενο στο κύριο κουμπί είναι NAVY, όχι λευκό: λευκό πάνω στο #03A880
   δίνει 3,0:1 και κόβεται από το AA. Το navy δίνει 6,6:1.
   ========================================================================== */

.btn {
  font-family: var(--sh-font-body);
  font-weight: 600;
  border-radius: var(--sh-radius-sm);
  transition: background-color .2s var(--sh-ease), transform .2s var(--sh-ease);
}

.btn:hover { transform: translateY(-1px); }

.btn-primary,
.btn-info {
  background-color: var(--sh-primary);
  border-color: var(--sh-primary);
  color: var(--sh-navy-900);
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-info:hover, .btn-info:focus, .btn-info:active,
.btn-primary:not(:disabled):not(.disabled):active,
.show > .btn-primary.dropdown-toggle {
  background-color: var(--sh-primary-hover);
  border-color: var(--sh-primary-hover);
  color: var(--sh-navy-900);
}

.btn-default,
.btn-secondary,
.btn-outline-secondary {
  background-color: transparent;
  border-color: var(--sh-border-strong);  /* 3,5:1 — περίγραμμα κουμπιού */
  color: var(--sh-ink);
}

.btn-default:hover,
.btn-secondary:hover,
.btn-outline-secondary:hover {
  background-color: var(--sh-hover);
  border-color: var(--sh-primary);
  color: var(--sh-primary);
}

.btn-success { background-color: var(--sh-ok);    border-color: var(--sh-ok);    color: var(--sh-navy-900); }
.btn-warning { background-color: var(--sh-warn);  border-color: var(--sh-warn);  color: var(--sh-navy-900); }
.btn-danger  { background-color: var(--sh-error); border-color: var(--sh-error); color: var(--sh-navy-900); }

.btn-link { color: var(--sh-primary); }
.btn-link:hover { color: var(--sh-primary-hover); }


/* ==========================================================================
   9. ΦΟΡΜΕΣ
   ========================================================================== */

.form-control,
.custom-select,
select.form-control,
textarea.form-control {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border-strong);
  border-radius: var(--sh-radius-sm);
  color: var(--sh-ink);
  /* Κάτω από 16px, το iOS Safari κάνει zoom σε κάθε πεδίο */
  font-size: 16px;
}

.form-control:focus,
.custom-select:focus {
  background-color: var(--sh-card);
  border-color: var(--sh-primary);
  box-shadow: 0 0 0 3px rgba(3, 168, 128, .18);
  color: var(--sh-ink);
}

.form-control::placeholder { color: var(--sh-ink-muted); opacity: 1; }

.form-control:disabled,
.form-control[readonly] {
  background-color: rgba(255, 255, 255, .02);
  color: var(--sh-ink-muted);
}

label,
.control-label,
.col-form-label { color: var(--sh-ink); font-weight: 500; }

.form-text,
.help-block,
small.text-muted,
.text-muted { color: var(--sh-ink-muted) !important; }

/* Το select του Bootstrap 4 φέρνει δικό του βελάκι σε σκούρο SVG */
.custom-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 5'%3E%3Cpath fill='%23FFFFFF' d='M0 0h8L4 5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  background-size: 8px 5px;
}

.custom-control-label::before {
  background-color: var(--sh-card);
  border-color: var(--sh-border);
}

.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--sh-primary);
  border-color: var(--sh-primary);
}

.invalid-feedback,
.has-error .help-block { color: var(--sh-error); }

.is-invalid,
.has-error .form-control { border-color: var(--sh-error); }


/* ==========================================================================
   10. ΠΙΝΑΚΕΣ — υπηρεσίες, τιμολόγια, αιτήματα
   ========================================================================== */

.table {
  color: var(--sh-ink);
}

.table thead th {
  background-color: rgba(255, 255, 255, .03);
  border-bottom: 1px solid var(--sh-border);
  border-top: 0;
  color: var(--sh-ink-muted);
  font-family: var(--sh-font-body);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: none; /* τα ελληνικά κεφαλαία κρατούν τους τόνους */
}

.table td,
.table th {
  border-top-color: var(--sh-border);
  vertical-align: middle;
}

.table-hover tbody tr:hover {
  background-color: var(--sh-hover);
  color: var(--sh-ink);
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, .02);
}

.table-bordered,
.table-bordered td,
.table-bordered th { border-color: var(--sh-border); }

/* Οι πίνακες να μη σπρώχνουν τη σελίδα πλάγια στο κινητό */
.table-responsive { -webkit-overflow-scrolling: touch; }

/* DataTables, που χρησιμοποιεί το Twenty-One σε λίστες */
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter { color: var(--sh-ink-muted); }

.dataTables_wrapper .dataTables_paginate .paginate_button {
  color: var(--sh-ink) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: var(--sh-primary) !important;
  border-color: var(--sh-primary) !important;
  color: var(--sh-navy-900) !important;
}


/* ==========================================================================
   11. ΕΙΔΟΠΟΙΗΣΕΙΣ & ΕΤΙΚΕΤΕΣ
   ========================================================================== */

.alert {
  border-radius: var(--sh-radius);
  border-width: 1px;
}

.alert-info    { background-color: rgba(3, 168, 128, .10); border-color: rgba(3, 168, 128, .35); color: var(--sh-info); }
.alert-success { background-color: rgba(18, 183, 106, .10); border-color: rgba(18, 183, 106, .35); color: var(--sh-ok); }
.alert-warning { background-color: rgba(247, 144, 9, .10);  border-color: rgba(247, 144, 9, .35);  color: var(--sh-warn); }
.alert-danger  { background-color: rgba(255, 138, 138, .10); border-color: rgba(255, 138, 138, .35); color: var(--sh-error); }

.alert a { color: inherit; text-decoration: underline; }

.badge-primary { background-color: var(--sh-primary); color: var(--sh-navy-900); }
.badge-success { background-color: var(--sh-ok);      color: var(--sh-navy-900); }
.badge-warning { background-color: var(--sh-warn);    color: var(--sh-navy-900); }
.badge-danger  { background-color: var(--sh-error);   color: var(--sh-navy-900); }
.badge-secondary,
.badge-default { background-color: var(--sh-border);  color: var(--sh-ink); }

/* Καταστάσεις υπηρεσιών και τιμολογίων */
.status,
.label {
  border-radius: 999px;
  font-weight: 600;
  padding: .3em .8em;
}


/* ==========================================================================
   12. MODALS, TABS, PAGINATION
   ========================================================================== */

.modal-content {
  background-color: var(--sh-navy-700);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
  color: var(--sh-ink);
}

.modal-header,
.modal-footer { border-color: var(--sh-border); }

.close { color: var(--sh-ink); opacity: 1; text-shadow: none; }
.close:hover { color: var(--sh-primary); opacity: 1; }

.nav-tabs { border-bottom-color: var(--sh-border); }

.nav-tabs .nav-link {
  border-color: transparent;
  color: var(--sh-ink-muted);
}

.nav-tabs .nav-link:hover { border-color: transparent; color: var(--sh-primary); }

.nav-tabs .nav-link.active {
  background-color: transparent;
  border-color: transparent transparent var(--sh-primary);
  border-bottom-width: 2px;
  color: var(--sh-primary);
}

.page-link {
  background-color: var(--sh-card);
  border-color: var(--sh-border);
  color: var(--sh-ink);
}

.page-link:hover { background-color: var(--sh-hover); color: var(--sh-primary); }

.page-item.active .page-link {
  background-color: var(--sh-primary);
  border-color: var(--sh-primary);
  color: var(--sh-navy-900);
}

.page-item.disabled .page-link {
  background-color: transparent;
  border-color: var(--sh-border);
  color: var(--sh-ink-muted);
}


/* ==========================================================================
   13. ΣΥΝΔΕΣΗ, ΕΓΓΡΑΦΗ, ΕΠΑΝΑΦΟΡΑ ΚΩΔΙΚΟΥ
   ========================================================================== */

body.login-page,
.login-box,
#loginfrm {
  background-color: var(--sh-navy-900);
}

.login-box .card,
#login .card {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
}

.logincontainer,
.login-container {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
}


/* ==========================================================================
   14. ΠΑΡΑΓΓΕΛΙΑ — store / cart

   ΠΡΟΣΟΧΗ ΣΤΗ ΣΕΙΡΑ ΦΟΡΤΩΣΗΣ: η φόρμα παραγγελίας φορτώνει το δικό της
   `templates/orderforms/standard_cart/css/all.min.css` **μέσα στο <body>**,
   δηλαδή ΜΕΤΑ το custom.css. Οι κανόνες της:

     #order-standard_cart .products .product        { background:#fff }   (1,2,0)
     #order-standard_cart .products .product header { background:#f8f8f8 }

   Η δική μου `#order-standard_cart .product` είναι (1,1,0) ΚΑΙ δηλώνεται
   νωρίτερα — έχανε και στα δύο κριτήρια. Γι' αυτό οι κάρτες προϊόντων
   έμεναν λευκές, με το ανοιχτό κείμενο του θέματος πάνω τους (1,4:1).

   Εδώ αντιγράφω την ίδια specificity και προσθέτω !important, που κερδίζει
   ανεξάρτητα από σειρά.
   ========================================================================== */

#order-standard_cart .products .product,
#order-standard_cart .product,
.product-card {
  background: var(--sh-card) !important;
  border: 1px solid var(--sh-border) !important;
  border-radius: var(--sh-radius) !important;
  color: var(--sh-ink);
  overflow: hidden;
}

#order-standard_cart .cart-body,
.cart-body {
  background-color: transparent;
  color: var(--sh-ink);
}

/* Η γκρίζα κεφαλίδα της κάρτας */
#order-standard_cart .products .product header {
  background: transparent !important;
  border-bottom: 1px solid var(--sh-border);
  margin: 0 !important;
  padding: 14px 20px !important;
}

#order-standard_cart .products .product header span,
#order-standard_cart .product h3,
.product-card h3 {
  color: #FFFFFF !important;       /* 17,4:1 */
  font-family: var(--sh-font-display);
  font-weight: 600;
}

/* Η περιγραφή έβγαινε στο ανοιχτό χρώμα του θέματος πάνω σε λευκό.
   Ανεβάζω και λίγο το μέγεθος: το .8em του parent είναι ~11px. */
#order-standard_cart .products .product .product-desc,
#order-standard_cart .products .product .product-desc p,
#order-standard_cart .products .product .product-desc li {
  color: var(--sh-ink) !important;  /* λευκό, 16,1:1 */
  font-size: .92em;
  line-height: 1.6;
}

/* Το <footer> της κάρτας — δες και το σχόλιο στην ενότητα 15 */
#order-standard_cart .products .product footer {
  background: transparent !important;
  border: 0 !important;
  color: var(--sh-ink);
}

#order-standard_cart .products .product .price,
#order-standard_cart .product .price,
.product-card .price,
.product-pricing {
  color: var(--sh-primary) !important;   /* 5,7:1 */
  font-family: var(--sh-font-display);
  font-weight: 700;
}

/* Η γκρίζα λωρίδα πάνω από τη σελίδα διαμόρφωσης προϊόντος */
#order-standard_cart .product-info {
  background-color: var(--sh-navy-700) !important;
  border-top: 1px solid var(--sh-border) !important;
  border-bottom: 1px solid var(--sh-border) !important;
  border-radius: var(--sh-radius);
  color: var(--sh-ink);
}

#order-standard_cart .product-info .product-title { color: #FFFFFF; }

/* Το modal «Added to Cart». Έρχεται με λευκά κουτιά και λαχανί κουμπιά
   (#9abb3a) από την προεπιλογή του standard_cart. */
.product-recommendations { border-color: var(--sh-border) !important; }

.product-recommendations .product-recommendation {
  background-color: var(--sh-card) !important;
  border: 1px dashed var(--sh-border) !important;
  border-bottom: 4px solid var(--sh-primary) !important;
}

.product-recommendations .product-recommendation .body {
  background-color: var(--sh-navy-700) !important;
  border-top: 10px solid var(--sh-border) !important;
  color: var(--sh-ink);
}

.product-recommendations .product-recommendation .price { color: var(--sh-primary) !important; }

.product-recommendations .product-recommendation .btn-add,
.product-recommendations .product-recommendation .arrow {
  background-color: var(--sh-primary) !important;
  color: var(--sh-navy-900) !important;   /* 6,6:1 */
}

.product-recommendations .product-recommendation .expander { color: var(--sh-primary) !important; }

.summary-container,
#order-standard_cart .summary-container {
  background-color: var(--sh-navy-700);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
}


/* ==========================================================================
   15. FOOTER
   ========================================================================== */

/* ΠΡΟΣΟΧΗ: ΟΧΙ σκέτο `footer`. Το `<footer>` είναι στοιχείο HTML5 και το
   χρησιμοποιεί και κάθε κάρτα προϊόντος στο κατάστημα — ένα σκέτο `footer`
   ζωγράφιζε μαύρο κουτί μέσα στις κάρτες. Μόνο ο υποσέλιδος της σελίδας. */
#footer,
body > footer,
.footer {
  background-color: var(--sh-navy-900);
  border-top: 1px solid var(--sh-border);
  color: var(--sh-ink-muted);
}

#footer a,
body > footer a,
.footer a { color: var(--sh-ink-muted); }

#footer a:hover,
body > footer a:hover,
.footer a:hover { color: var(--sh-primary); }


/* ==========================================================================
   16. ΕΚΤΥΠΩΣΗ
   Ένα τιμολόγιο που τυπώνεται σε σκούρο φόντο ή καίει τόνερ ή βγαίνει κενό,
   γιατί οι περισσότεροι browsers δεν τυπώνουν φόντα εξ ορισμού και μένει
   ανοιχτόχρωμο κείμενο σε λευκό χαρτί. Εδώ επιβάλλουμε φωτεινό.
   ========================================================================== */

@media print {
  :root {
    --sh-navy-900: #FFFFFF;
    --sh-navy-800: #FFFFFF;
    --sh-navy-700: #FFFFFF;
    --sh-ink: #000000;
    --sh-ink-muted: #444444;
    --sh-card: #FFFFFF;
    --sh-border: #CCCCCC;
    --sh-border-strong: #888888;
    --sh-hover: transparent;
    --sh-primary: #027053;
  }

  body,
  body.primary-bg-color,
  #main-body,
  .card, .panel, .tile, .table {
    background: #FFFFFF !important;
    color: #000000 !important;
  }

  h1, h2, h3, h4, h5, h6,
  .card-title,
  .table td, .table th { color: #000000 !important; }

  .table thead th {
    background: #F0F0F0 !important;
    color: #000000 !important;
  }

  .table, .table td, .table th { border-color: #CCCCCC !important; }

  /* Ό,τι δεν έχει νόημα στο χαρτί */
  .topbar, .navbar, .master-breadcrumb, .sidebar,
  #footer, footer, .btn, .no-print { display: none !important; }

  a { color: #000000 !important; text-decoration: none; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 10px; }
}


/* ==========================================================================
   17. Η ΑΝΑΖΗΤΗΣΗ DOMAIN
   Το Twenty-One τυλίγει την περιοχή σε `.home-domain-search.bg-white`. Το
   `.bg-white` του Bootstrap είναι utility ΜΕ !important, γι' αυτό περνούσε
   πάνω από τα πάντα και έμενε ένα λευκό μπλοκ μέσα στο σκούρο θέμα.

   Το χτυπάμε με μεγαλύτερη specificity ΚΑΙ !important — ανάμεσα σε δύο
   !important κερδίζει το πιο ειδικό (0,2,0 έναντι 0,1,0).
   ========================================================================== */

.home-domain-search,
.home-domain-search.bg-white {
  background-color: var(--sh-navy-900) !important;
  color: var(--sh-ink);
}

/* Το ίδιο και όπου αλλού εμφανιστεί λευκό κουτί: σε σκούρο θέμα ξενίζει. */
.bg-white {
  background-color: var(--sh-card) !important;
  color: var(--sh-ink);
}

.bg-light {
  background-color: var(--sh-navy-700) !important;
  color: var(--sh-ink);
}

.home-domain-search .input-group-wrapper,
.home-domain-search .input-group {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
}

/* ΤΟ ΛΕΥΚΟ ΚΟΥΤΙ. Το πεδίο αναζήτησης είναι ένα ΓΥΜΝΟ <textarea id="message">
   — χωρίς `form-control`, χωρίς καμία κλάση. Οι κανόνες μου έπιαναν μόνο
   `.form-control`, οπότε το textarea έμενε στο προεπιλεγμένο του browser:
   λευκό φόντο, μαύρο κείμενο. Δεν έφταιγε ούτε το Bootstrap ούτε το
   Twenty-One — δικό μου κενό ήταν.

   Τα δύο κουμπιά είναι απόλυτα τοποθετημένα ΠΑΝΩ στο textarea, γι' αυτό η
   «Μεταφορά» με ανοιχτό κείμενο εξαφανιζόταν στο λευκό. */
.home-domain-search textarea,
.home-domain-search input[type="text"],
.home-domain-search .form-control,
.home-domain-search textarea.form-control,
#frmDomainHomepage textarea,
#frmDomainHomepage #message {
  background-color: transparent !important;
  background-image: none;
  border: 0;
  color: var(--sh-ink) !important;   /* λευκό, 17,0:1 στο φόντο του πλαισίου */
  box-shadow: none;
  resize: none;
}

.home-domain-search textarea::placeholder,
.home-domain-search .form-control::placeholder,
#frmDomainHomepage textarea::placeholder {
  color: var(--sh-ink-muted) !important;  /* λευκό — δες σημείωση για τα placeholders */
  opacity: 1;
}

/* Το autofill του Chrome ζωγραφίζει δικό του φόντο που δεν πιάνεται με
   background-color — μόνο με inset shadow. */
.home-domain-search textarea:-webkit-autofill,
.home-domain-search input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--sh-navy-900) inset;
  -webkit-text-fill-color: var(--sh-ink);
}

/* Δύο πράσινα κουμπιά δίπλα-δίπλα δεν λένε ποιο είναι η κύρια ενέργεια.
   Η «Αναζήτηση» μένει γεμάτη, η «Μεταφορά» γίνεται περιγραμμένη. */
#btnTransfer,
#btnTransfer2,
.home-domain-search .btn-success {
  background-color: transparent;
  border: 1px solid var(--sh-border-strong);  /* 3,5:1 — φαίνεται ότι είναι κουμπί */
  color: var(--sh-ink);
}

#btnTransfer:hover,
#btnTransfer2:hover,
.home-domain-search .btn-success:hover {
  background-color: var(--sh-hover);
  border-color: var(--sh-primary);
  color: var(--sh-primary);
}

/* Τα δευτερεύοντα χειριστήρια κάτω από το πεδίο */
.home-domain-search .btn-link,
.home-domain-search .multiselect {
  color: var(--sh-ink-muted);
}

/* Το «Safe Search» έβγαινε πιο θαμπό από τα διπλανά του: είναι <label> που
   περιέχει το checkbox, και το έπιανε ο muted κανόνας. Είναι ισότιμο
   χειριστήριο — παίρνει το κανονικό χρώμα κειμένου. */
.home-domain-search label {
  color: var(--sh-ink);
  font-weight: 500;
  margin-bottom: 0;
}

/* Το checkbox έμενε στο προεπιλεγμένο μπλε του browser, μέσα σε πράσινο brand */
.home-domain-search input[type="checkbox"],
.home-domain-search .no-icheck {
  accent-color: var(--sh-primary);
  margin-right: .4rem;
  vertical-align: middle;
}

.home-domain-search .btn-link:hover { color: var(--sh-primary); }

.tld-logos,
.tld-logos img { opacity: .85; }


/* ==========================================================================
   18. ΟΙ ΚΑΡΤΕΣ ΠΡΟΪΟΝΤΩΝ ΤΗΣ ΑΡΧΙΚΗΣ
   `.card-columns.home` με `.card-title.pricing-card-title` και κουμπιά
   `.btn-outline-primary` — variant που δεν κάλυπτα, γι' αυτό έμεναν μπλε.
   ========================================================================== */

.card-columns.home .card {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
  transition: border-color .25s var(--sh-ease), transform .25s var(--sh-ease);
}

.card-columns.home .card:hover {
  border-color: rgba(3, 168, 128, .35);
  transform: translateY(-2px);
}

.card-title,
.pricing-card-title {
  color: #FFFFFF;
  font-family: var(--sh-font-display);
}

.card-columns.home .card-body p,
.card-columns.home .card-body { color: var(--sh-ink-muted); }


/* ==========================================================================
   19. OUTLINE BUTTONS
   Το Bootstrap 4 έχει ξεχωριστά .btn-outline-*. Χωρίς αυτά, τα «Browse
   Products» έμεναν στο προεπιλεγμένο μπλε του framework.
   ========================================================================== */

.btn-outline-primary,
.btn-outline-info {
  background-color: transparent;
  border-color: var(--sh-primary);
  color: var(--sh-primary);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-info:hover,
.btn-outline-info:focus {
  background-color: var(--sh-primary);
  border-color: var(--sh-primary);
  color: var(--sh-navy-900);
}

.btn-outline-success { border-color: var(--sh-ok);    color: var(--sh-ok); }
.btn-outline-warning { border-color: var(--sh-warn);  color: var(--sh-warn); }
.btn-outline-danger  { border-color: var(--sh-error); color: var(--sh-error); }

.btn-outline-success:hover { background-color: var(--sh-ok);    border-color: var(--sh-ok);    color: var(--sh-navy-900); }
.btn-outline-warning:hover { background-color: var(--sh-warn);  border-color: var(--sh-warn);  color: var(--sh-navy-900); }
.btn-outline-danger:hover  { background-color: var(--sh-error); border-color: var(--sh-error); color: var(--sh-navy-900); }

.btn-outline-light,
.btn-outline-dark,
.btn-outline-secondary {
  background-color: transparent;
  border-color: var(--sh-border);
  color: var(--sh-ink);
}

.btn-outline-light:hover,
.btn-outline-dark:hover,
.btn-outline-secondary:hover {
  background-color: var(--sh-hover);
  border-color: var(--sh-primary);
  color: var(--sh-primary);
}


/* ==========================================================================
   20. ΤΕΛΕΥΤΑΙΕΣ ΛΕΠΤΟΜΕΡΕΙΕΣ
   ========================================================================== */

/* Χωρίς αυτό μένει λευκή λωρίδα στην άκρη όταν η σελίδα είναι κοντή, και
   λευκό overscroll στο κινητό. */
html { background-color: var(--sh-navy-800); }

/* Οι utility κλάσεις κειμένου του Bootstrap υποθέτουν φωτεινό φόντο */
.text-dark,
.text-body,
.text-black-50 { color: var(--sh-ink) !important; }

.text-secondary { color: var(--sh-ink-muted) !important; }

.text-primary { color: var(--sh-primary) !important; }
.text-success { color: var(--sh-ok) !important; }
.text-warning { color: var(--sh-warn) !important; }
.text-danger  { color: var(--sh-error) !important; }
.text-info    { color: var(--sh-info) !important; }

/* Το IP του επισκέπτη και άλλα ψιλά που το Twenty-One τυπώνει κάτω-αριστερά */
.client-ip,
.ip-address,
small { color: var(--sh-ink-muted); }

.border,
.border-top, .border-bottom, .border-left, .border-right {
  border-color: var(--sh-border) !important;
}


/* ==========================================================================
   21. ΔΙΧΤΥ ΑΣΦΑΛΕΙΑΣ ΓΙΑ MODULES ΤΡΙΤΩΝ
   Σελίδες από addons που δεν ξέρουν για το θέμα σου συχνά τυπώνουν λευκό
   φόντο με inline style. Εκεί το κείμενο πρέπει να μείνει σκούρο, αλλιώς
   χάνεται. Στοχεύουμε ΜΟΝΟ inline styles — όχι κλάσεις, γιατί τις κλάσεις
   τις έχουμε ήδη γυρίσει σε σκούρο παραπάνω.
   ========================================================================== */

[style*="background:#fff"],
[style*="background-color:#fff"],
[style*="background: #fff"],
[style*="background-color: #fff"],
[style*="background:#FFF"],
[style*="background-color:#FFF"],
[style*="background:white"],
[style*="background-color:white"] {
  color: #0B1020;
}

[style*="background:#fff"] a,
[style*="background-color:#fff"] a,
[style*="background:white"] a,
[style*="background-color:white"] a {
  color: var(--sh-primary-ink);
}


/* ==========================================================================
   22. ΓΥΜΝΑ ΠΕΔΙΑ ΦΟΡΜΑΣ — το κενό που έφερε το λευκό κουτί

   Η ενότητα 9 έπιανε μόνο `.form-control`. Το WHMCS όμως τυπώνει σε αρκετά
   σημεία `<input>` και `<textarea>` ΧΩΡΙΣ καμία κλάση — και τότε ισχύει το
   προεπιλεγμένο του browser: λευκό φόντο, μαύρο κείμενο. Μέσα σε σκούρο
   θέμα αυτό βγαίνει σαν λευκή τρύπα.

   Το πιάνουμε μία φορά, για όλη τη σελίδα, ώστε να μην ξαναεμφανιστεί σε
   άλλη σελίδα με άλλη μορφή. Εξαιρούνται τα κουμπιά και τα checkbox/radio,
   που έχουν δικούς τους κανόνες.
   ========================================================================== */

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="file"]):not([type="range"]):not([type="color"]),
textarea,
select {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border-strong);
  border-radius: var(--sh-radius-sm);
  color: var(--sh-ink);
  font-family: inherit;
}

input::placeholder,
textarea::placeholder { color: var(--sh-ink-muted); opacity: 1; }

input:focus,
textarea:focus,
select:focus {
  border-color: var(--sh-primary);
  box-shadow: 0 0 0 3px rgba(3, 168, 128, .18);
  color: var(--sh-ink);
  /* ΟΧΙ outline: none εδώ — θα ακύρωνε το :focus-visible της ενότητας 1,
     που έχει την ίδια specificity και δηλώνεται νωρίτερα. */
}

/* Οι επιλογές του dropdown ακολουθούν το select σε Windows/Linux */
select option { background-color: var(--sh-navy-700); color: var(--sh-ink); }

/* Καθολικά: κάθε checkbox/radio στο χρώμα του brand αντί για το μπλε του browser */
input[type="checkbox"],
input[type="radio"] { accent-color: var(--sh-primary); }

/* Autofill — δες το σχόλιο στην ενότητα 17 */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--sh-navy-700) inset;
  -webkit-text-fill-color: var(--sh-ink);
  caret-color: var(--sh-ink);
}

/* Ο κέρσορας — αλλιώς μένει μαύρος και δεν φαίνεται σε σκούρο πεδίο */
input, textarea { caret-color: var(--sh-primary); }

/* ΕΞΑΙΡΕΣΗ: αν κάποιο module τρίτου ζωγραφίζει λευκό κουτί με inline style
   (ενότητα 21), τα πεδία μέσα του πρέπει να μείνουν φωτεινά, όχι σκούρα. */
[style*="background:#fff"] input,
[style*="background-color:#fff"] input,
[style*="background:white"] input,
[style*="background-color:white"] input,
[style*="background:#fff"] textarea,
[style*="background-color:#fff"] textarea,
[style*="background:#fff"] select,
[style*="background-color:#fff"] select {
  background-color: #FFFFFF;
  border-color: #CCCCCC;
  color: #0B1020;
}


/* ==========================================================================
   23. ΠΑΡΑΓΓΕΛΙΑ — premium_comparison (οι στήλες τιμών)

   Δεύτερη φόρμα παραγγελίας, με δικό της
   `templates/orderforms/premium_comparison/css/style.css` που φορτώνει ΜΕΤΑ
   το custom.css. Είναι φύλλο του 2015 και φέρνει:

     .price-table            background:#ffffff
     .top-head               μπλε gradient #006699 → #004c66
     .price-area             color:#ffffbf (ανοιχτό κίτρινο)
     .order-button           μπλε gradient, λευκό κείμενο
     .price-table ul li      color:#333, border-bottom:#d9d9d9
     .popular-plan           color:#a3d900 (λαχανί)

   Οι selectors του φτάνουν έως (1,4,1), οπότε τους αντιγράφω ακριβώς. Το
   `!important` μπαίνει μόνο εκεί που η σειρά φόρτωσης θα με έριχνε.
   ========================================================================== */

#order-premium_comparison { color: var(--sh-ink); }

#order-premium_comparison h3,
#order-premium_comparison h4 { color: #FFFFFF; font-family: var(--sh-font-display); }
#order-premium_comparison h5 { color: var(--sh-ink-muted); }

/* Το `li` που κρατά κάθε στήλη έχει σκιά-εικόνα από κάτω (shadow-btm.png),
   φτιαγμένη για λευκή σελίδα. Σε σκούρο βγαίνει μουτζούρα. */
#order-premium_comparison .price-table-container ul li {
  background: none !important;
  vertical-align: top;   /* αλλιώς οι στήλες στοιχίζονται στη βάση του κειμένου */
}

#order-premium_comparison .price-table-container .price-table {
  background: var(--sh-card) !important;
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius) !important;
  box-shadow: 0 18px 40px -24px rgba(0, 0, 0, .8) !important;
  overflow: hidden;
}

/* Η κεφαλίδα: αντί για το μπλε gradient, διακριτική πράσινη απόχρωση.
   Τέσσερις γεμάτες πράσινες μπάρες δίπλα-δίπλα θα ούρλιαζαν. */
#order-premium_comparison .price-table-container .price-table .top-head {
  background: linear-gradient(180deg,
              rgba(3, 168, 128, .16) 0%,
              rgba(3, 168, 128, .04) 100%) !important;
  filter: none;
  border-bottom: 1px solid var(--sh-border);
  border-radius: 0 !important;
}

#order-premium_comparison .price-table-container .price-table .top-head .top-area {
  border-bottom: 1px solid var(--sh-border);
  /* Το text-shadow ήταν για λευκά γράμματα πάνω σε έγχρωμη μπάρα */
  text-shadow: none;
}

#order-premium_comparison .price-table-container .price-table .top-head .top-area h4 {
  color: #FFFFFF;         /* 17,4:1 */
  font-weight: 600;
}

#order-premium_comparison .price-table-container .price-table .top-head .top-area p {
  color: var(--sh-ink-muted);
}

#order-premium_comparison .price-table-container .price-table .top-head .price-area {
  border-top: 1px solid var(--sh-border);
  text-shadow: none;
  color: var(--sh-primary);   /* ήταν #ffffbf, ξεκρέμαστο κίτρινο */
}

#order-premium_comparison .price-table-container .price-table .top-head .price-area .price {
  color: var(--sh-primary);   /* 5,7:1 */
  font-family: var(--sh-font-display);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
}

/* Το κουμπί παραγγελίας: γεμάτο πράσινο με NAVY κείμενο. Λευκό πάνω στο
   #03A880 δίνει 3,0:1 — ίδια απόφαση με όλο το υπόλοιπο θέμα. */
#order-premium_comparison .price-table-container .order-button,
#order-premium_comparison .price-table-container .order-button:link,
#order-premium_comparison .price-table-container .order-button:visited {
  background: var(--sh-primary) !important;
  filter: none;
  border-radius: var(--sh-radius-sm) !important;
  color: var(--sh-navy-900) !important;   /* 6,6:1 */
  font-weight: 600;
  text-shadow: none !important;
  box-shadow: none !important;
}

#order-premium_comparison .price-table-container .order-button:hover,
#order-premium_comparison .price-table-container .order-button:active {
  background: var(--sh-primary-hover) !important;
  color: var(--sh-navy-900) !important;
  filter: none;
}

#order-premium_comparison .price-table-container .order-button.unavailable,
#order-premium_comparison .price-table-container .order-button.unavailable:hover {
  background: var(--sh-hover) !important;
  border: 1px solid var(--sh-border-strong);
  color: var(--sh-ink-muted) !important;
  filter: none;
}

/* Η περιγραφή. Στοιχίζεται ΑΡΙΣΤΕΡΑ: το προεπιλεγμένο κεντράρισμα φτιάχτηκε
   για λίστες χαρακτηριστικών δύο-τριών λέξεων, όχι για παραγράφους. */
#order-premium_comparison .price-table-container .price-table ul li {
  color: var(--sh-ink);        /* λευκό, 16,1:1 */
  border-bottom: 1px solid var(--sh-border);
  text-align: left;
  line-height: 1.65;
  padding: 16px 8px;
}

#order-premium_comparison .price-table-container .price-table ul li a { color: var(--sh-primary); }

#order-premium_comparison .price-table-container .price-table .popular-plan {
  background: rgba(3, 168, 128, .18);
  border-bottom: 1px solid var(--sh-border);
  color: var(--sh-primary-hover);   /* ήταν #a3d900 */
  font-weight: 600;
  letter-spacing: .04em;
}

/* Η ενότητα «τι περιλαμβάνεται»: εικόνες-φόντο για λευκή σελίδα */
#order-premium_comparison .includes-features .head-area {
  background: none !important;
  border-bottom: 1px solid var(--sh-border);
}

#order-premium_comparison .main-container.price-01 .includes-features .head-area span {
  background: var(--sh-navy-800) !important;
  color: #FFFFFF;
}

#order-premium_comparison .includes-features ul.list-features li {
  background: none !important;
  color: var(--sh-ink);
  position: relative;
}

/* Το tick.png αντικαθίσταται με σημάδι σε πράσινο */
#order-premium_comparison .includes-features ul.list-features li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--sh-primary);
  font-weight: 700;
}

#order-premium_comparison .alert { color: inherit; }


/* ==========================================================================
   24. ΤΑ ΕΠΙΘΕΜΑΤΑ ΠΟΥ ΔΕΝ ΦΑΙΝΟΝΤΑΙ ΑΠΟ ΤΗΝ ΑΡΧΙΚΗ

   Βρέθηκαν διαβάζοντας το view-source της σελίδας «Κατασκευή Ιστοσελίδας»:
   στοιχεία που το WHMCS τυπώνει σε ΚΑΘΕ σελίδα αλλά τα βλέπεις μόνο όταν
   ανοίξεις κάτι — modals γλώσσας/νομίσματος, δημιουργία κωδικού, και η
   μπάρα «Return to admin area» όταν είσαι συνδεδεμένος ως διαχειριστής.
   ========================================================================== */

/* Τα utility φόντα του Bootstrap. Έχουν !important, οπότε θέλουν !important. */
.bg-primary { background-color: var(--sh-primary) !important; }
.bg-info    { background-color: var(--sh-primary) !important; }
.bg-success { background-color: var(--sh-ok) !important; }
.bg-warning { background-color: var(--sh-warn) !important; }
.bg-danger  { background-color: var(--sh-error) !important; }
.bg-secondary { background-color: var(--sh-navy-700) !important; }
.bg-dark    { background-color: var(--sh-navy-900) !important; }

/* Πάνω σε αυτά τα χρώματα το κείμενο είναι NAVY, όχι λευκό — το λευκό πάνω
   στο #03A880 δίνει 3,0:1. Το WHMCS γράφει `class="bg-primary text-white"`,
   οπότε πρέπει να νικήσω και το `.text-white` (που έχει δικό του !important:
   κερδίζω με μεγαλύτερη specificity). */
.bg-primary, .bg-info, .bg-success, .bg-warning, .bg-danger,
.bg-primary .text-white, .bg-info .text-white,
.bg-success .text-white, .bg-warning .text-white, .bg-danger .text-white,
.bg-primary.text-white, .bg-info.text-white,
.bg-success.text-white, .bg-warning.text-white, .bg-danger.text-white {
  color: var(--sh-navy-900) !important;   /* 6,6:1 στο πράσινο */
}

.bg-primary h1, .bg-primary h2, .bg-primary h3, .bg-primary h4, .bg-primary h5,
.bg-info h1, .bg-info h2, .bg-info h3, .bg-info h4, .bg-info h5,
.bg-success h4, .bg-warning h4, .bg-danger h4 {
  color: var(--sh-navy-900);
}

.bg-primary .close, .bg-info .close,
.bg-success .close, .bg-warning .close, .bg-danger .close {
  color: var(--sh-navy-900);
}

.bg-secondary, .bg-dark { color: var(--sh-ink) !important; }

/* Η καρτέλα «Return to admin area» στο δεξί περιθώριο */
.btn-return-to-admin {
  background-color: var(--sh-navy-700) !important;
  border: 1px solid var(--sh-border-strong) !important;
  color: var(--sh-ink) !important;
}

.btn-return-to-admin:hover {
  background-color: var(--sh-primary) !important;
  border-color: var(--sh-primary) !important;
  color: var(--sh-navy-900) !important;
}

/* Το modal επιλογής γλώσσας / νομίσματος */
.modal-localisation .modal-content { background-color: var(--sh-navy-700); }

.modal-localisation .item-selector .item {
  color: var(--sh-ink);
  border: 1px solid transparent;
  border-radius: var(--sh-radius-sm);
  display: block;
  padding: 6px 10px;
  text-decoration: none;
  transition: background-color .2s var(--sh-ease), border-color .2s var(--sh-ease);
}

.modal-localisation .item-selector .item:hover,
.modal-localisation .item-selector .item:focus {
  background-color: var(--sh-hover);
  border-color: var(--sh-primary);
  color: var(--sh-primary-hover);
}

.modal-localisation .item-selector .item.active,
.modal-localisation .item-selector .item[data-current] {
  background-color: var(--sh-primary);
  color: var(--sh-navy-900);
}

/* Το εικονίδιο αντιγραφής είναι σκούρο SVG, φτιαγμένο για λευκό φόντο */
.copy-to-clipboard img { filter: invert(1) brightness(1.6); }

/* Το modal δημιουργίας κωδικού: το πεδίο εξόδου */
#inputGeneratePasswordOutput {
  font-variant-numeric: tabular-nums;
  letter-spacing: .04em;
}

/* Τα κείμενα του modal προτάσεων δεν είχαν δικό τους χρώμα — κληρονομούσαν
   από το λευκό κουτί του parent, που πλέον είναι σκούρο. */
.product-recommendations .product-recommendation .headline,
.product-recommendations .product-recommendation .tagline,
.product-recommendations .product-recommendation .text {
  color: var(--sh-ink);
}

.product-recommendations .product-recommendation .setup-fee { color: var(--sh-ink-muted); }


/* ==========================================================================
   25. ΤΙΜΟΚΑΤΑΛΟΓΟΣ DOMAIN (index.php?rp=/domain/pricing)

   Το Twenty-One ΔΕΝ δηλώνει τίποτα για `.domain-pricing`, `.tld-filters`,
   `.table-container` και `.table-list` — το επιβεβαίωσα και στα δύο φύλλα
   του. Δηλαδή η σελίδα δεν ήταν «χαλασμένη», ήταν **αστόλιστη**: γυμνός
   πίνακας πάνω στο φόντο, με τα φίλτρα σαν ξεθωριασμένες ετικέτες.

   Τα χειριστήρια της λίστας έρχονται από το DataTables, στην έκδοση
   ενσωμάτωσης για Bootstrap 4 — άρα η σελιδοποίηση είναι `ul.pagination`
   και την καλύπτει ήδη η ενότητα 12.
   ========================================================================== */

.domain-pricing h4 {
  color: #FFFFFF;
  font-family: var(--sh-font-display);
  font-size: 20px;
  margin: 0 0 14px;
}

/* Τα φίλτρα κατηγορίας είναι ΚΟΥΜΠΙΑ, όχι ετικέτες: πατιούνται και φιλτράρουν
   τον πίνακα. Ως `badge-secondary` έμοιαζαν με παθητικό σήμα. */
.tld-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.tld-filters a,
.tld-filters a.badge,
.tld-filters a.badge-secondary {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border-strong);   /* 3,5:1 */
  border-radius: 999px;
  color: var(--sh-ink);
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  padding: .45em 1em;
  text-decoration: none;
  transition: border-color .2s var(--sh-ease), background-color .2s var(--sh-ease);
}

.tld-filters a:hover,
.tld-filters a.badge-secondary:hover {
  background-color: var(--sh-hover);
  border-color: var(--sh-primary);
  color: var(--sh-primary-hover);
}

/* Το ενεργό φίλτρο: το JS του WHMCS προσθέτει `badge-success` */
.tld-filters a.badge-success,
.tld-filters a.badge-success:hover {
  background-color: var(--sh-primary);
  border-color: var(--sh-primary);
  color: var(--sh-navy-900);   /* 6,6:1 */
}

/* Ο πίνακας μέσα σε κάρτα, όπως κάθε άλλη επιφάνεια του θέματος */
.domain-pricing .table-container {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
  padding: 6px 14px 14px;
}

.domain-pricing .table-list { margin-bottom: 0; }

.domain-pricing .table-list td,
.domain-pricing .table-list th { border-color: var(--sh-border); }

/* Η πρώτη στήλη είναι το TLD — αξίζει να ξεχωρίζει */
.domain-pricing .table-list tbody td:first-child {
  color: #FFFFFF;
  font-weight: 600;
}

/* Το «2 Έτη» κάτω από κάθε τιμή */
.domain-pricing .table-list td small {
  display: inline-block;
  font-size: 12px;
  opacity: .85;
}

/* Τα χειριστήρια του DataTables */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border-strong);
  border-radius: var(--sh-radius-sm);
  color: var(--sh-ink);
}

.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus {
  border-color: var(--sh-primary);
  box-shadow: 0 0 0 3px rgba(3, 168, 128, .18);
}

.dataTables_wrapper .dataTables_filter label,
.dataTables_wrapper .dataTables_length label { color: var(--sh-ink); }

table.dataTable td.dataTables_empty { color: var(--sh-ink); padding: 28px 0; }

#tableLoading { color: var(--sh-ink); }

.listtable { margin-bottom: 10px; }


/* ==========================================================================
   26. ΤΟ ΚΑΛΑΘΙ ΚΑΙ ΟΙ ΛΙΣΤΕΣ — τα λευκά που έμεναν

   Τρία screenshots, μία ρίζα: επιφάνειες που ζωγραφίζονται λευκές από φύλλα
   που φορτώνουν ΜΕΤΑ το custom.css, με το λευκό κείμενο του θέματος από πάνω.
   Το χειρότερο ήταν το «Σύνολο Παραγγελίας»: λευκά ποσά σε λευκό κουτί —
   ο πελάτης δεν έβλεπε τι πληρώνει.
   ========================================================================== */

/* --- 26.1 DataTables ------------------------------------------------------
   Ο πυρήνας του DataTables δηλώνει `table.dataTable tbody tr{background:#fff}`
   με specificity (0,2,3). Το δικό μου `.table` είναι (0,1,0) — έχανε, όχι
   λόγω σειράς αλλά λόγω βάρους. Γι' αυτό ο τιμοκατάλογος domain έβγαινε
   λευκός και η μοναδική γραμμή του «εξαφανιζόταν» (λευκό σε λευκό).
   Ισχύει για ΚΑΘΕ λίστα του WHMCS, όχι μόνο για τα domain.
   -------------------------------------------------------------------------- */

table.dataTable,
table.dataTable thead tr,
table.dataTable tbody tr,
table.dataTable tbody tr.odd,
table.dataTable tbody tr.even,
table.dataTable.stripe tbody tr.odd,
table.dataTable.display tbody tr.odd,
table.dataTable tbody tr > .sorting_1,
table.dataTable tbody tr > .sorting_2,
table.dataTable tbody tr > .sorting_3,
.table-list,
.table-list thead tr,
.table-list tbody tr {
  background-color: transparent !important;
}

table.dataTable thead th,
table.dataTable thead td,
.table-list thead th {
  background-color: rgba(255, 255, 255, .04) !important;
  border-bottom: 1px solid var(--sh-border) !important;
  color: #FFFFFF !important;
}

table.dataTable tbody th,
table.dataTable tbody td,
.table-list tbody td,
.table-list tbody th {
  border-color: var(--sh-border) !important;
  color: var(--sh-ink) !important;
}

table.dataTable tbody tr:hover,
table.dataTable.hover tbody tr:hover,
.table-list tbody tr:hover { background-color: var(--sh-hover) !important; }

/* --- 26.2 «Επιλέξτε ένα domain…» -----------------------------------------
   Οι τρεις επιλογές είναι `.option{background-color:#f8f8f8}`. Πάνω τους το
   λευκό κείμενο του θέματος γινόταν άφαντο — και μαζί του το πεδίο
   αναζήτησης, που είναι πάλι γυμνό <textarea>.
   -------------------------------------------------------------------------- */

#order-standard_cart { color: var(--sh-ink); }

#order-standard_cart .domain-selection-options .option {
  background-color: var(--sh-card) !important;
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
  color: var(--sh-ink);
  padding: 14px 20px;
}

#order-standard_cart .domain-selection-options .option-selected {
  background-color: var(--sh-hover) !important;
  border-color: var(--sh-primary);
}

#order-standard_cart .domain-selection-options .option label { color: var(--sh-ink); }

/* --- 26.3 «Ανασκόπηση & Πληρωμή» ----------------------------------------- */

/* Η μπλε κεφαλίδα του πίνακα: #058 */
#order-standard_cart .view-cart-items-header {
  background-color: var(--sh-navy-700) !important;
  border-bottom: 2px solid var(--sh-primary);
  border-radius: var(--sh-radius) var(--sh-radius) 0 0;
  color: #FFFFFF !important;   /* 17,6:1 */
}

#order-standard_cart .view-cart-items { border-bottom-color: var(--sh-primary) !important; }

#order-standard_cart .view-cart-items .item-domain { color: var(--sh-primary) !important; }

#order-standard_cart .view-cart-items .item-price span { color: #FFFFFF; }

/* «Άδειασμα καλαθιού» — ήταν μπλε γεμάτο κουμπί, εξίσου έντονο με το
   «Ολοκλήρωση». Είναι καταστροφική ενέργεια: γίνεται διακριτική, και
   κοκκινίζει μόνο στο hover ώστε να μη πατηθεί κατά λάθος. */
#order-standard_cart .empty-cart .btn {
  background-color: transparent !important;
  border: 1px solid var(--sh-border-strong) !important;
  color: var(--sh-ink) !important;
}

#order-standard_cart .empty-cart .btn:hover {
  background-color: rgba(255, 138, 138, .10) !important;
  border-color: var(--sh-error) !important;
  color: var(--sh-error) !important;
}

/* ΤΟ ΣΗΜΑΝΤΙΚΟΤΕΡΟ: το «Σύνολο Παραγγελίας».
   `.order-summary{background:#666}` και `.summary-container{background:#f8f8f8}`
   — γκρι κεφαλίδα και λευκό σώμα, με λευκά ποσά επάνω του. */
#order-standard_cart .order-summary {
  background-color: var(--sh-navy-700) !important;
  border-bottom: 3px solid var(--sh-primary) !important;
  border-radius: var(--sh-radius) !important;
  overflow: hidden;
}

#order-standard_cart .order-summary h2 {
  color: #FFFFFF !important;
  font-family: var(--sh-font-display);
}

#order-standard_cart .summary-container {
  background-color: var(--sh-navy-700) !important;
  color: var(--sh-ink) !important;
  font-size: .9em;
}

#order-standard_cart .order-summary .subtotal,
#order-standard_cart .order-summary .bordered-totals { border-bottom-color: var(--sh-border) !important; }

#order-standard_cart .order-summary .summary-totals {
  border-top-color: var(--sh-border) !important;
  border-bottom-color: var(--sh-border) !important;
}

#order-standard_cart .order-summary .total-due-today,
#order-standard_cart .order-summary .total-due-today span { color: #FFFFFF; }

#order-standard_cart .order-summary .total-due-today .amt {
  color: var(--sh-primary);   /* 5,8:1 — το ποσό είναι το ζητούμενο της σελίδας */
  font-family: var(--sh-font-display);
  font-weight: 700;
}

/* Οι καρτέλες «Εφαρμογή Κωδικού Προσφοράς» / «Εκτίμηση Φόρων» */
#order-standard_cart .view-cart-tabs .nav-tabs a[aria-expanded="true"],
#order-standard_cart .view-cart-tabs .nav-tabs a[aria-selected="true"] {
  background-color: transparent !important;
  border-color: transparent transparent var(--sh-primary) !important;
  border-bottom-width: 2px !important;
  color: var(--sh-primary) !important;
}

#order-standard_cart .view-cart-tabs .nav-tabs a { color: var(--sh-ink); }

#order-standard_cart .view-cart-tabs .tab-content {
  background-color: var(--sh-card) !important;
  border: 1px solid var(--sh-border);
  border-radius: 0 var(--sh-radius) var(--sh-radius) var(--sh-radius);
  color: var(--sh-ink);
}

#order-standard_cart .view-cart-promotion-code {
  background-color: var(--sh-card) !important;
  border: 1px dashed var(--sh-border-strong) !important;
  border-radius: var(--sh-radius);
  color: var(--sh-ink);
}

/* Οι προσφορές, με το ίδιο λαχανί #9abb3a του modal προτάσεων */
#order-standard_cart .mc-promo {
  background-color: var(--sh-card) !important;
  border: 1px dashed var(--sh-border) !important;
  border-bottom: 4px solid var(--sh-primary) !important;
  color: var(--sh-ink);
}

#order-standard_cart .mc-promo .price { color: var(--sh-primary) !important; }

/* Τα πρόσθετα (addons) στη σελίδα διαμόρφωσης */
#order-standard_cart .panel-addon .panel-body {
  background-color: var(--sh-card);
  border: 1px solid var(--sh-border);
  color: var(--sh-ink);
}

#order-standard_cart .panel-addon .panel-price {
  background-color: var(--sh-navy-700) !important;
  color: var(--sh-ink);
}

#order-standard_cart .panel-addon .panel-add {
  background-color: var(--sh-primary) !important;
  color: var(--sh-navy-900) !important;   /* 6,6:1, ήταν λευκό σε #5cb85c */
}

/* --- 26.4 Εκτύπωση --------------------------------------------------------
   Τα παραπάνω χρησιμοποιούν tokens, οπότε γυρίζουν μόνα τους σε φωτεινά στο
   χαρτί. Εξαίρεση οι δύο κυριολεκτικές τιμές rgba παραπάνω. */
@media print {
  table.dataTable thead th,
  table.dataTable thead td,
  .table-list thead th {
    background-color: #F0F0F0 !important;
    color: #000000 !important;
  }

  table.dataTable tbody td,
  .table-list tbody td { color: #000000 !important; }
}


/* ==========================================================================
   27. ΤΟ ΠΛΗΡΕΣ ΞΕΣΚΑΡΤΑΡΙΣΜΑ ΤΩΝ ΛΕΥΚΩΝ

   Σταμάτησα να κυνηγάω ένα-ένα τα λευκά κουτιά. Ζήτησα από τα δύο φύλλα
   (`twenty-one/all.min.css` και `orderforms/standard_cart/all.min.css`)
   **όλους** τους κανόνες που βάφουν λευκό ή σχεδόν λευκό, και τους
   αντιμετωπίζω μαζεμένους εδώ. Αν εμφανιστεί κι άλλο, θα είναι από module
   τρίτου — όχι από το ίδιο το WHMCS.
   ========================================================================== */

/* --- 27.1 ΤΑ ΠΕΔΙΑ ΤΟΥ CHECKOUT — η αιτία της «Ολοκλήρωσης»

   #order-standard_cart .field,
   #order-standard_cart .form-control { background-color:#fff; color:#626262 }

   Specificity (1,1,0), δηλωμένο ΜΕΤΑ το δικό μου `.form-control` (0,1,0).
   Έχανε και στα δύο. Γι' αυτό όλα τα πεδία («Όνομα», «Επώνυμο», «Διεύθυνση
   Email»…) έμεναν λευκά με λευκό κείμενο μέσα τους — και φαίνονταν μόνο τα
   δύο που είχε συμπληρώσει ο browser, επειδή εκείνα τα έπιανε ο κανόνας
   autofill της ενότητας 22.
   -------------------------------------------------------------------------- */

#order-standard_cart .field,
#order-standard_cart .form-control,
#order-standard_cart textarea.field,
#order-standard_cart select.form-control,
#order-standard_cart .custom-select {
  background-color: var(--sh-card) !important;
  border: 1px solid var(--sh-border-strong) !important;
  border-radius: var(--sh-radius-sm) !important;
  color: var(--sh-ink) !important;
}

#order-standard_cart .field:focus,
#order-standard_cart .form-control:focus {
  border-color: var(--sh-primary) !important;
  box-shadow: 0 0 0 3px rgba(3, 168, 128, .18) !important;
  color: var(--sh-ink) !important;
}

#order-standard_cart .field::placeholder,
#order-standard_cart .form-control::placeholder { color: var(--sh-ink-muted) !important; }

#order-standard_cart .field[disabled],
#order-standard_cart .field[readonly],
#order-standard_cart .form-control[disabled],
#order-standard_cart .form-control[readonly] {
  background-color: rgba(255, 255, 255, .02) !important;
  color: var(--sh-ink-muted) !important;
}

/* Το εικονίδιο μπροστά από κάθε πεδίο */
#order-standard_cart .prepend-icon i,
#order-standard_cart .prepend-icon .icon-append,
#order-standard_cart .prepend-icon .icon-prepend { color: var(--sh-ink-muted); }

/* --- 27.2 ΤΟ ΚΑΛΑΘΙ ------------------------------------------------------- */

#order-standard_cart .view-cart-items {
  background-color: var(--sh-card) !important;
  border-radius: 0 0 var(--sh-radius) var(--sh-radius);
  color: var(--sh-ink);
}

#order-standard_cart .view-cart-items .item { color: var(--sh-ink); }

#order-standard_cart .view-cart-items .item:nth-child(even) {
  background-color: rgba(255, 255, 255, .03) !important;
}

#order-standard_cart .cc-input-container,
#order-standard_cart .apply-credit-container,
#order-standard_cart .default-captcha {
  background-color: var(--sh-navy-700) !important;
  border-radius: var(--sh-radius);
  color: var(--sh-ink);
}

#order-standard_cart .mc-promo .body {
  background-color: var(--sh-navy-700) !important;
  color: var(--sh-ink);
}

/* Η επιλογή λογαριασμού, όταν ο πελάτης έχει περισσότερους από έναν */
#order-standard_cart .account-select-container div.account {
  background: var(--sh-card) !important;
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-sm);
  color: var(--sh-ink);
}

#order-standard_cart .account-select-container div.account.active {
  background: var(--sh-hover) !important;
  border-color: var(--sh-primary);
}

/* --- 27.3 ΑΝΑΖΗΤΗΣΗ ΚΑΙ ΠΡΟΤΑΣΕΙΣ DOMAIN --------------------------------- */

.domain-checker-container .input-group-box {
  background-color: var(--sh-card) !important;
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius);
}

.spotlight-tld {
  background-color: var(--sh-card) !important;
  border: 1px solid var(--sh-border);
  color: var(--sh-ink);
}

.spotlight-tlds,
.suggested-domains .domain-lookup-suggestions-loader,
.suggested-domains .domain-lookup-suggestions-message {
  background-color: var(--sh-navy-700) !important;
  color: var(--sh-ink);
}

/* --- 27.4 ΑΝΑΝΕΩΣΕΙΣ ------------------------------------------------------ */

.domain-renewals,
.service-renewals {
  background-color: var(--sh-navy-700) !important;
  border-radius: var(--sh-radius);
  color: var(--sh-ink);
}

.addon-renewals .service-renewal:nth-child(even),
.domain-renewals .domain-renewal:nth-child(even),
.service-renewals .service-renewal:nth-child(even) {
  background-color: rgba(255, 255, 255, .03) !important;
}

/* Το φίλτρο έχει λευκό ΜΕΣΑ σε shorthand `background` με !important, μαζί με
   την εικόνα του φακού — άρα πρέπει να ξαναγραφτεί ολόκληρο. */
.form-control.domain-renewals-filter,
.form-control.service-renewals-filter {
  background-color: var(--sh-card) !important;
  background-image: none !important;
  border: 1px solid var(--sh-border-strong) !important;
  color: var(--sh-ink) !important;
  padding: 7px 10px !important;
}

/* --- 27.5 ΤΟ ΥΠΟΛΟΙΠΟ ΤΟΥ TWENTY-ONE -------------------------------------- */

/* Η λίστα χωρών του τηλεφώνου — λευκή, με μαύρα ονόματα */
.intl-tel-input .country-list {
  background-color: var(--sh-navy-700) !important;
  border: 1px solid var(--sh-border);
  color: var(--sh-ink);
}

.intl-tel-input .country-list .country { color: var(--sh-ink); }
.intl-tel-input .country-list .country.highlight { background-color: var(--sh-hover); }
.intl-tel-input .country-list .divider { border-bottom-color: var(--sh-border); }
.intl-tel-input .country-list .dial-code { color: var(--sh-ink-muted); }

/* Ο markdown editor των αιτημάτων υποστήριξης */
.md-editor > .md-preview,
.md-editor > textarea,
.md-editor > textarea:focus {
  background: var(--sh-card) !important;
  color: var(--sh-ink) !important;
}

.md-editor { border-color: var(--sh-border) !important; }

.md-editor.md-fullscreen-mode .md-input,
.md-editor.md-fullscreen-mode .md-preview,
.md-editor.md-fullscreen-mode .md-input:focus,
.md-editor.md-fullscreen-mode .md-input:hover {
  background: var(--sh-navy-800) !important;
  color: var(--sh-ink) !important;
}

/* Το modal που ανοίγει το DataTables σε στενή οθόνη */
div.dtr-modal div.dtr-modal-display {
  background-color: var(--sh-navy-700) !important;
  border: 1px solid var(--sh-border);
  color: var(--sh-ink);
}

div.dtr-modal div.dtr-modal-close {
  background-color: var(--sh-card) !important;
  border-color: var(--sh-border) !important;
  color: var(--sh-ink);
}

div.dtr-modal div.dtr-modal-close:hover { background-color: var(--sh-hover) !important; }

.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary,
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary {
  background-color: var(--sh-navy-700) !important;
  color: var(--sh-ink);
}

/* --- 27.6 ΟΙ ΠΙΝΑΚΕΣ, ΤΩΡΑ ΜΕΧΡΙ ΤΟ ΚΕΛΙ --------------------------------
   Στην έκδοση 8 στόχευσα `tbody tr`. Το λευκό όμως κρατιόταν — άρα δεν
   κάθεται στη γραμμή αλλά στο `<tbody>` ή στο ίδιο το κελί. Εδώ τα πιάνω
   και τα τρία, ώστε να μη μείνει σημείο να το κρύψει.
   -------------------------------------------------------------------------- */

table.dataTable,
table.dataTable > thead,
table.dataTable > tbody,
table.dataTable > tfoot,
table.dataTable > tbody > tr,
table.dataTable > tbody > tr > td,
table.dataTable > tbody > tr > th,
.table-list,
.table-list > thead,
.table-list > tbody,
.table-list > tfoot,
.table-list > tbody > tr,
.table-list > tbody > tr > td,
.table-list > tbody > tr > th,
.table-container > table,
.table-container > table > tbody,
.table-container > table > tbody > tr,
.table-container > table > tbody > tr > td {
  background-color: transparent !important;
  background-image: none !important;
}

table.dataTable > tbody > tr > td,
.table-list > tbody > tr > td,
.table-container > table > tbody > tr > td {
  color: var(--sh-ink) !important;
}

@media print {
  table.dataTable > tbody > tr > td,
  .table-list > tbody > tr > td,
  .table-container > table > tbody > tr > td { color: #000000 !important; }
}


/* ==========================================================================
   28. ΟΙ ΓΡΑΜΜΕΣ ΤΟΥ ΚΑΛΑΘΙΟΥ, ΑΠΟ ΤΟ MARKUP

   Το λευκό φόντο του `.view-cart-items` το έπιασε η ενότητα 27. Εδώ είναι
   ό,τι δείχνει το markup της γραμμής και δεν είχε δικό του χρώμα: ο τίτλος,
   η κατηγορία, το κουμπί «Ανανέωση» και το × της αφαίρεσης.
   ========================================================================== */

#order-standard_cart .view-cart-items .item {
  border-bottom: 1px solid var(--sh-border);
}

#order-standard_cart .view-cart-items .item:last-child { border-bottom: 0; }

/* ΜΟΝΟ χρώμα και γραμματοσειρά εδώ. Τα μεγέθη τα ορίζει το standard_cart με
   ίδια specificity και δηλώνεται αργότερα — ό,τι font-size γράψω εδώ χωρίς
   !important είναι νεκρό γράμμα. Η δική του ιεραρχία (τίτλος 1,6em, ομάδα
   1,2em) είναι ούτως ή άλλως σωστή. */
#order-standard_cart .view-cart-items .item-title {
  color: #FFFFFF;
  font-family: var(--sh-font-display);
  font-weight: 600;
}

#order-standard_cart .view-cart-items .item-group { color: var(--sh-ink); }

/* Το «Ανανέωση» δίπλα στην ποσότητα είναι σκέτο `.btn.btn-xs` — το `btn-xs`
   είναι υπόλειμμα του Bootstrap 3 και δεν υπάρχει στο 4, οπότε έμενε χωρίς
   καμία εμφάνιση. */
#order-standard_cart .btn-xs {
  border-radius: var(--sh-radius-sm);
  font-size: 12px;
  line-height: 1.4;
  padding: .3rem .7rem;
}

#order-standard_cart .item-qty .btn-xs {
  background-color: transparent;
  border: 1px solid var(--sh-border-strong);
  color: var(--sh-ink);
  margin-top: 6px;
}

#order-standard_cart .item-qty .btn-xs:hover {
  background-color: var(--sh-hover);
  border-color: var(--sh-primary);
  color: var(--sh-primary);
}

/* Το × της αφαίρεσης: είναι `btn-link`, οπότε έβγαινε πράσινο σαν σύνδεσμος.
   Η αφαίρεση δεν είναι ενέργεια που θέλουμε να προσκαλεί — λευκό διακριτικό,
   και κόκκινο μόνο όταν το ακουμπήσεις. */
#order-standard_cart .btn-remove-from-cart,
#order-standard_cart .btn-remove-from-cart:link {
  color: var(--sh-ink);
  opacity: .75;
}

#order-standard_cart .btn-remove-from-cart:hover,
#order-standard_cart .btn-remove-from-cart:focus {
  color: var(--sh-error);
  opacity: 1;
}

/* Η κεφαλίδα των στηλών να δένει οπτικά με τον πίνακα από κάτω */
#order-standard_cart .view-cart-items-header { font-weight: 600; }


/* ==========================================================================
   29. ΤΟ ΛΕΥΚΟ ΤΗΣ ΓΡΑΜΜΗΣ — η τελευταία εκδοχή του ίδιου λάθους

   Επιβεβαίωσα ότι το v10 ήταν ανεβασμένο και ότι ο κανόνας μου για το
   `.view-cart-items` δούλευε. Το λευκό δεν ήταν εκεί. Ζήτησα ΚΑΘΕ κανόνα με
   `.item` στον selector και βγήκε:

     #order-standard_cart .view-cart-items .item { background-color:#fff }

   Έβαφα τον ΓΟΝΕΑ και το παιδί ζωγράφιζε από πάνω. Μαζί βγήκε και:

     #order-standard_cart .btn-remove-from-cart { color:#444 }   (1,1,0)

   που εξηγεί το γκρι × — η ενότητα 28 το έγραφε λευκό, αλλά χωρίς
   !important, και το standard_cart δηλώνεται αργότερα.

   Το μάθημα: όταν το φύλλο του άλλου φορτώνει μετά το δικό μου, η ίδια
   specificity ΔΕΝ αρκεί. Θέλει είτε !important είτε ένα βήμα παραπάνω.
   ========================================================================== */

#order-standard_cart .view-cart-items .item {
  background-color: transparent !important;
  padding: 14px 15px !important;
}

#order-standard_cart .view-cart-items .item:nth-child(even) {
  background-color: rgba(255, 255, 255, .03) !important;
}

#order-standard_cart .view-cart-items .item .row,
#order-standard_cart .view-cart-items .item [class*="col-"] {
  background-color: transparent !important;
}

/* Το × της αφαίρεσης — τώρα με το βάρος που χρειάζεται */
#order-standard_cart .btn-remove-from-cart {
  color: var(--sh-ink) !important;
  opacity: .75;
}

#order-standard_cart .btn-remove-from-cart:hover,
#order-standard_cart .btn-remove-from-cart:focus {
  color: var(--sh-error) !important;   /* ήταν #c00 — αόρατο σε navy */
  opacity: 1;
  text-decoration: none;
}

/* Η ποσότητα και το «Ανανέωση», με τα σωστά βάρη */
#order-standard_cart .view-cart-items .item-qty input {
  background-color: var(--sh-card) !important;
  border: 1px solid var(--sh-border-strong) !important;
  color: var(--sh-ink) !important;
}

#order-standard_cart .view-cart-items .item-qty button {
  background-color: transparent !important;
  border: 1px solid var(--sh-border-strong) !important;
  color: var(--sh-ink) !important;
}

#order-standard_cart .view-cart-items .item-qty button:hover {
  border-color: var(--sh-primary) !important;
  color: var(--sh-primary) !important;
}

#order-standard_cart .view-cart-items .item-price span { color: #FFFFFF !important; }
#order-standard_cart .view-cart-items .item-price .cycle { color: var(--sh-ink) !important; }
#order-standard_cart .view-cart-items .item-domain { color: var(--sh-primary) !important; }