/* ============================================================
   Averto Office — UI
   Mobile-first. Τα χρώματα ορίζονται ΜΙΑ φορά, στο :root της γραμμής 815.
   ============================================================ */

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
}

a { color: var(--accent-strong); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3 { line-height: 1.25; margin: 0 0 .5rem; }
h1 { font-size: var(--fs-2xl); }
h2 { font-size: var(--fs-lg); }
h3 { font-size: var(--fs-md); }

/* --- Αριθμοί / ποσά: κανονική γραμματοσειρά, στοιχισμένα ψηφία --- */
.num {
  font-variant-numeric: tabular-nums lining-nums;
  text-align: right;
  white-space: nowrap;
}
.num-strong { font-weight: var(--fw-medium); }
.pos { color: var(--ok); }
.neg { color: var(--danger); }

/* ============ Επάνω μπάρα ============ */
.topbar {
  background: var(--surface);
  border-bottom: 1px solid var(--hairline);
  position: sticky;
  top: 0;
  z-index: 20;
}
.topbar-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 56px;
  flex-wrap: wrap;
}
.brand {
  font-weight: var(--fw-bold);
  font-size: var(--fs-lg);
  color: var(--text);
  padding: 8px 6px;
}
.brand:hover { text-decoration: none; }
.nav {
  display: flex;
  gap: 2px;
  overflow-x: auto;
  scrollbar-width: none;
  flex: 1;
}
.nav::-webkit-scrollbar { display: none; }
.nav a {
  padding: 16px 12px;
  color: var(--muted);
  font-weight: var(--fw-medium);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
}
.nav a:hover { color: var(--text); text-decoration: none; }
.nav a.active {
  color: var(--accent-strong);
  border-bottom-color: var(--accent);
}
.userbox {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  font-size: var(--fs-sm);
}
.username { color: var(--muted); display: none; }
.logout { color: var(--muted); padding: 8px 6px; }

@media (min-width: 700px) {
  .username { display: inline; }
}

/* ============ Δομή σελίδας ============ */
.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 16px 12px 64px;
}
@media (min-width: 700px) {
  .container { padding: 24px 20px 80px; }
}

.page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.page-head .sub { color: var(--muted); font-size: var(--fs-md); margin-top: 2px; }

.section { margin-top: 28px; }
.section > h2 { margin-bottom: 10px; }

/* ============ Κάρτες ============ */
.card {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  padding: 16px;
}
.form-card { max-width: 860px; }
@media (min-width: 700px) {
  .card { padding: 20px; }
}
.card + .card { margin-top: 12px; }
/* ...αλλά ΜΟΝΟ όταν είναι πραγματικά στοιβαγμένες. Μέσα σε grid/flex με
   gap, η κάρτα της διπλανής στήλης είναι κι αυτή «adjacent sibling» και
   κατέβαινε 12px χαμηλότερα από τη γειτονική της. Το κενό το ορίζει το
   gap του γονέα, όχι το margin. */
.home-main-grid > .card + .card,
.home-secondary-grid > .card + .card,
.income-page-grid > .card + .card,
.income-side-stack > .card + .card,
.salary-page-grid > .card + .card { margin-top: 0; }

/* Στατιστικά dashboard */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
@media (min-width: 900px) {
  .stat-grid { grid-template-columns: repeat(4, 1fr); gap: 12px; }
}
.stat .label { font-size: var(--fs-xs); color: var(--muted); margin-bottom: 4px; }
.stat .value {
  font-variant-numeric: tabular-nums lining-nums;
  font-weight: var(--fw-bold);
  font-size: 1.45rem;
  letter-spacing: -0.01em;
  text-align: left;
  white-space: nowrap;
}
@media (min-width: 700px) {
  .stat .value { font-size: 1.6rem; }
}
.stat .value.alert { color: var(--danger); }

/* ============ Πίνακες ============ */
.table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 -16px;
  padding: 0 16px;
}
table.table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-md);
}
.table th {
  text-align: left;
  font-size: var(--fs-xs);
  color: var(--muted);
  font-weight: var(--fw-medium);
  padding: 8px 10px;
  border-bottom: 1px solid var(--hairline);
  white-space: nowrap;
}
.table th.num { text-align: right; }
.table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--hairline);
  vertical-align: top;
}
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr.rowlink { cursor: pointer; }
.table tbody tr.rowlink:hover { background: var(--hover); }
.table .main-cell a { font-weight: var(--fw-medium); }
.table .sub-cell { font-size: var(--fs-sm); color: var(--muted); margin-top: 1px; }
.table tfoot td {
  border-top: 2px solid var(--border);
  border-bottom: 0;
  font-weight: var(--fw-medium);
  padding: 10px;
}

/* ============ Badges ============ */
.badge {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  padding: 3px 9px;
  border-radius: 99px;
  white-space: nowrap;
}
.badge-progress  { background: var(--accent-soft); color: var(--accent-strong); }
.badge-discussion { background: var(--warn-soft); color: var(--warn); }
.badge-signed    { background: var(--accent-soft); color: var(--accent-strong); }
.badge-completed { background: var(--ok-soft); color: var(--ok); }
.badge-cancelled { background: var(--bg); color: var(--muted); }
.badge-overdue   { background: var(--danger-soft); color: var(--danger); }
.badge-open      { background: var(--warn-soft); color: var(--warn); }
.badge-paid      { background: var(--ok-soft); color: var(--ok); }
.badge-uncollectible { background: var(--bg); color: var(--muted); text-decoration: line-through; }

/* Συστήνων και μη εισπράξιμο υπόλοιπο μέσα στο μπλοκ οφειλής */
.referrer-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  background: var(--bg);
  border-left: 3px solid var(--border);
}
.referrer-line .ex-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.referrer-line .ex-main span { font-size: var(--fs-sm); }
.referrer-line .ex-amount { display: flex; align-items: center; gap: 8px; font-variant-numeric: tabular-nums; }
/* Λωρίδα «Ανοιχτά από προηγούμενα έτη» πάνω από τη λίστα συμβολαίων */
.older-open {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 12px;
  margin-bottom: 16px;
  padding: 12px 16px;
  border-radius: var(--radius);
  background: var(--warn-soft);
  color: var(--warn);
  text-decoration: none;
  font-size: var(--fs-md);
}
.older-open strong { font-size: var(--fs-lg); margin-left: auto; }
.older-open:hover { filter: brightness(.97); }

.note-uncollectible {
  margin: 10px 0 0;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  background: var(--warn-soft);
  color: var(--warn);
  font-size: var(--fs-sm);
}

/* ============ Κουμπιά ============ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  padding: 10px 18px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  font-size: var(--fs-md);
  font-weight: var(--fw-medium);
  font-family: var(--sans);
  cursor: pointer;
  text-decoration: none;
}
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-strong); }
.btn-ghost {
  background: var(--surface);
  color: var(--text);
  border-color: var(--border);
}
.btn-ghost:hover { border-color: var(--muted); }
.btn-danger {
  background: var(--surface);
  color: var(--danger);
  border-color: var(--border);
}
.btn-danger:hover { border-color: var(--danger); }
.btn-sm { min-height: 36px; padding: 6px 12px; font-size: var(--fs-sm); border-radius: var(--radius-sm); }
.btn[disabled] { opacity: .6; cursor: default; }

.actions-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

/* ============ Φόρμες ============ */
.form-card { max-width: 640px; }
.field { margin-bottom: 14px; }
.field label {
  display: block;
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  margin-bottom: 5px;
}
.field .hint { font-size: var(--fs-xs); color: var(--muted); margin-top: 4px; }
/*
 * Ο ΕΝΑΣ ΚΑΙ ΜΟΝΑΔΙΚΟΣ βασικός κανόνας για τα πεδία φόρμας.
 *
 * Μέχρι τώρα υπήρχε δεύτερος, σχεδόν ίδιος, στο τέλος του αρχείου (στο
 * στρώμα «v2»). Με ίδια βαρύτητα και μεταγενέστερη θέση κέρδιζε πάντα, οπότε
 * αλλαγές εδώ δεν φαίνονταν πουθενά — και μια διόρθωση στη μπάρα αναζήτησης
 * ακυρωνόταν σιωπηλά. Ό,τι αφορά πεδία μπαίνει ΕΔΩ, όχι σε δεύτερο σημείο.
 *
 * Το «font: inherit» παίρνει τη γραμματοσειρά και το μέγεθος του body (15px
 * στο v2). Κάτω από 16px ο Safari κάνει zoom στο κινητό μόλις εστιάσεις σε
 * πεδίο — αν ενοχλήσει, ανεβαίνει ΕΔΩ, σε ένα σημείο.
 */
input[type=text], input[type=password], input[type=date], input[type=number],
input[type=email], input[type=tel], input[type=month], input[type=search],
input[type=file], select, textarea {
  width: 100%;
  min-height: 44px;
  padding: 11px 12px;
  font: inherit;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}
/* Μόνο το «search» χρειάζεται appearance:none — ο browser κρατάει αλλιώς το
   εγγενές στυλ του και αγνοεί padding και περίγραμμα. Στα select ΔΕΝ μπαίνει,
   γιατί θα έσβηνε το βελάκι του dropdown. */
input[type=search] { appearance: none; -webkit-appearance: none; }
input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
textarea { resize: vertical; }
input.amount, input.num-input { text-align: right; font-variant-numeric: tabular-nums; }
input:focus, select:focus, textarea:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(31,90,73,.1);
}
input[readonly] { background: var(--bg); color: var(--muted); }

.form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0 16px;
}
@media (min-width: 600px) {
  .form-grid.cols-2 { grid-template-columns: 1fr 1fr; }
  .form-grid .full { grid-column: 1 / -1; }
}

fieldset {
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  padding: 14px 16px 6px;
  margin: 0 0 18px;
}
legend {
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  padding: 0 6px;
  color: var(--muted);
}
.subform > .hint {
  font-size: var(--fs-sm);
  color: var(--muted);
  margin: 0 0 12px;
  line-height: 1.5;
}

/* --- Πολλαπλές καταχωρίσεις εσωτερικών πληρωμών --- */
.pp-entry legend { display: flex; align-items: center; gap: 10px; }
.btn-lite {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  color: var(--danger);
  cursor: pointer;
  text-decoration: underline;
}
.btn-lite:hover { color: var(--text); }
/* Τιμή που τη βγάζει η εφαρμογή, όχι ο χρήστης: μοιάζει με πεδίο αλλά
   διαβάζεται σαν απάντηση, γι' αυτό δεν έχει περίγραμμα εισαγωγής. */
.auto-value {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  background: var(--accent-soft);
  color: var(--text);
  font-size: var(--fs-sm);
  line-height: 1.45;
}

/* Ζωντανός υπολογισμός ΦΠΑ / συνόλου */
.calc-preview {
  background: var(--bg);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  margin-bottom: 14px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  font-size: var(--fs-md);
}
.calc-preview .cp-item .cp-label { color: var(--muted); font-size: var(--fs-xs); }
.calc-preview .cp-item .cp-value {
  font-weight: var(--fw-medium);
  font-variant-numeric: tabular-nums lining-nums;
}

/* --- Φόρμα υπόθεσης: προμήθειες και συστήνοντες --- */
.form-section-title { font-size: var(--fs-md); margin: 26px 0 4px; }
.form-section-note { margin: 0 0 14px; }

/*
 * Ο συστήνων ζει ΜΕΣΑ στο μπλοκ της προμήθειας που τον αφορά: το μερίδιό του
 * βγαίνει από αυτή την προμήθεια και από καμία άλλη. Η εσοχή το δείχνει.
 */
.referrer-box {
  margin-top: 4px;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  background: var(--bg);
  border-left: 3px solid var(--border);
}
.referrer-box .check-label { font-weight: var(--fw-medium); font-size: var(--fs-md); }
.referrer-box .rf-fields { margin-top: 12px; }
.referrer-box .field:last-child { margin-bottom: 0; }
.rf-result {
  margin: 4px 0 0;
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums;
}

/* --- Μικρά σύνολα σε πλέγμα, αντί για πίνακα-διάταξη --- */
/*
 * Τέσσερα-πέντε νούμερα με ετικέτα. Ήταν <table> με μία γραμμή δεδομένων, που
 * δεν αναδιπλώνεται ποτέ και γι' αυτό έβγαζε μπάρα κύλισης σε κινητό.
 */
.mini-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: 12px 18px;
}
.mini-stats .ms-label { font-size: var(--fs-xs); color: var(--muted); line-height: 1.35; }
.mini-stats .ms-value {
  font-weight: var(--fw-medium);
  font-size: var(--fs-md);
  font-variant-numeric: tabular-nums lining-nums;
}
.mini-stats .ms-note { font-size: var(--fs-xs); color: var(--muted); margin-top: 1px; }

/* --- Πίνακες που στοιβάζονται σε κινητό --- */
/*
 * Σε οθόνη μένουν πίνακες — για σύγκριση αριθμών δεν υπάρχει καλύτερο. Σε
 * στενό πλάτος κάθε γραμμή γίνεται μπλοκ και κάθε κελί δείχνει την ετικέτα του
 * από το data-label, ώστε να μη χρειάζεται οριζόντιο σκρολ που κρύβει τη
 * στήλη του ποσού.
 */
@media (max-width: 700px) {
  .table-stack thead { display: none; }
  .table-stack tbody tr,
  .table-stack tfoot tr {
    display: block;
    padding: 10px 0;
    border-bottom: 1px solid var(--hairline);
  }
  .table-stack tbody tr:last-child { border-bottom: 0; }
  .table-stack tfoot tr { border-top: 2px solid var(--border); border-bottom: 0; }
  .table-stack tbody td,
  .table-stack tfoot td {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    padding: 3px 0;
    border: 0;
    text-align: right;
    white-space: normal;
  }
  .table-stack td[data-label]::before {
    content: attr(data-label);
    flex: 0 0 auto;
    color: var(--muted);
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    text-align: left;
  }
  /* Το πρώτο κελί είναι ο τίτλος της γραμμής, όχι ζεύγος ετικέτα/τιμή. */
  .table-stack tbody td:first-child,
  .table-stack tfoot td:first-child {
    display: block;
    text-align: left;
    font-weight: var(--fw-medium);
    margin-bottom: 4px;
  }
  .table-stack .sub-cell { text-align: left; }
}

/* --- Μοιρασιά: μία γραμμή ανά δόση --- */
/*
 * Το μερίδιο μεγαλώνει με κάθε είσπραξη, οπότε μια γραμμή μπορεί να σπάσει σε
 * πολλές δόσεις με διαφορετικές ημερομηνίες. Κάρτες αντί για πίνακα: επτά
 * στήλες με πεδία μέσα δεν χωρούν σε κινητό χωρίς οριζόντιο σκρολ.
 */
.payout-line {
  border: 1px solid var(--hairline);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  margin-bottom: 10px;
}
.pol-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.pol-head .row-title { font-weight: var(--fw-medium); }
.pol-total { text-align: right; white-space: nowrap; }
.pol-total strong {
  display: block;
  font-variant-numeric: tabular-nums lining-nums;
}
.pol-total span { font-size: var(--fs-xs); color: var(--muted); }
.pol-part {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px dashed var(--hairline);
}
.pol-check {
  display: flex;
  align-items: center;
  gap: 7px;
  flex: 1 1 10rem;
  min-height: 44px;
  font-size: var(--fs-sm);
}
.pol-check input { width: auto; min-height: 0; }
.pol-field { display: flex; flex-direction: column; gap: 3px; }
.pol-field .pol-lab { font-size: var(--fs-xs); color: var(--muted); font-weight: var(--fw-medium); }
.pol-field input { width: 8.5rem; }
@media (max-width: 520px) {
  .pol-check { flex-basis: 100%; }
  .pol-field { flex: 1 1 8rem; }
  .pol-field input { width: 100%; }
}

/*
 * Η μπάρα συνόλων. Απαντά με ένα βλέμμα στις δύο ερωτήσεις που έκαναν τη
 * φόρμα δύσκολη: πόσο θα πάρουμε συνολικά και πόσο θα δώσουμε σε συστήνοντες.
 */
.case-totals {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px 22px;
  margin: 22px 0 20px;
  padding: 14px 16px;
  border-radius: var(--radius);
  background: var(--accent-soft);
}
.case-totals .ct-label { color: var(--muted); font-size: var(--fs-xs); }
.case-totals .ct-value {
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums lining-nums;
}
.case-totals .ct-note { color: var(--muted); font-size: var(--fs-xs); }
.case-totals .ct-strong .ct-value { color: var(--accent); font-size: var(--fs-xl); }
@media (min-width: 620px) {
  .case-totals { grid-template-columns: repeat(3, 1fr); }
}

/* Πάνελ πληροφοριών οφειλής στη φόρμα πληρωμής */
.debt-info {
  background: var(--accent-soft);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  margin-bottom: 16px;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.debt-info .di-item .di-label { font-size: var(--fs-xs); color: var(--accent-strong); }
.debt-info .di-item .di-value {
  font-weight: var(--fw-medium);
  font-variant-numeric: tabular-nums lining-nums;
  font-size: var(--fs-lg);
}

/* ============ Flash μηνύματα ============ */
.flash {
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  margin-bottom: 14px;
  font-size: var(--fs-md);
  border: 1px solid transparent;
}
.flash-success { background: var(--ok-soft); color: var(--ok); border-color: var(--ok-line); }
.flash-error   { background: var(--danger-soft); color: var(--danger); border-color: var(--danger-line); }
.flash-info    { background: var(--accent-soft); color: var(--accent-strong); border-color: var(--accent-line); }
.flash-warning { background: var(--warn-soft); color: var(--warn); border-color: var(--warn-line); }
.num-alert { color: var(--danger); font-weight: var(--fw-bold); }

/* ============ Κενές καταστάσεις ============ */
.empty {
  text-align: center;
  color: var(--muted);
  padding: 32px 16px;
  font-size: var(--fs-md);
}
.empty .btn { margin-top: 12px; }

/* ============ Λίστα key-value (καρτέλα υπόθεσης) ============ */
.kv {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px 24px;
  font-size: var(--fs-md);
}
@media (min-width: 600px) {
  .kv { grid-template-columns: 1fr 1fr; }
}
.kv .kv-item .kv-label { font-size: var(--fs-xs); color: var(--muted); }
.kv .kv-item .kv-value { font-weight: var(--fw-medium); }
.kv .kv-item .kv-value.num { text-align: left; }

/* ============ Χρονολόγιο ============ */
.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li {
  position: relative;
  padding: 0 0 14px 20px;
  border-left: 2px solid var(--hairline);
  margin-left: 6px;
}
.timeline li:last-child { padding-bottom: 2px; }
.timeline li::before {
  content: '';
  position: absolute;
  left: -6px;
  top: 5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--accent);
}
.timeline .tl-meta { font-size: var(--fs-xs); color: var(--muted); }

/* ============ Φίλτρα / αναζήτηση ============ */
.filter-bar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 14px;
  padding: 8px;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
}
.filter-bar input[type=text] { flex: 1; min-width: 180px; border-color: transparent; background: var(--bg); }
.filter-bar input[type=text]:focus { background: var(--surface); border-color: var(--border); }
.filter-bar select { width: auto; }

/* ============ Login ============ */
.auth-body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 16px;
}
.auth-container { width: 100%; max-width: 380px; }
.auth-card {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  padding: 28px 24px;
}
.auth-card h1 { text-align: center; margin-bottom: 20px; }
.auth-card .btn { width: 100%; margin-top: 6px; }

/* ============ Διάφορα ============ */
.subtle { color: var(--muted); font-size: var(--fs-sm); }
.mt { margin-top: 16px; }
.divider { border: 0; border-top: 1px solid var(--hairline); margin: 18px 0; }
.inline-form { display: inline; }
.strike { text-decoration: line-through; color: var(--muted); }

/* ============ Καρτέλες τύπου (Πωλήσεις / Ενοικιάσεις) ============ */
.tabs {
  display: flex;
  gap: 4px;
  background: var(--hairline);
  border-radius: var(--radius-sm);
  padding: 4px;
  width: fit-content;
  /* Με πέντε χρονιές η ράγα ξεπερνά το πλάτος του κινητού και σπρώχνει
     ΟΛΗ τη σελίδα οριζόντια. Κυλά μόνη της αντί να σέρνει τα πάντα.
     Το overflow-x στα .income-year-tabs/.year-tabs δεν αρκούσε: χωρίς
     max-width το ίδιο το στοιχείο μεγάλωνε και δεν έφτανε ποτέ σε
     κατάσταση κύλισης. */
  max-width: 100%;
  overflow-x: auto;
  margin-bottom: 14px;
}
.tabs a { flex: none; }
.tabs a {
  padding: 8px 20px;
  border-radius: var(--radius-sm);
  font-weight: var(--fw-medium);
  font-size: var(--fs-md);
  color: var(--muted);
  min-height: 38px;
  display: inline-flex;
  align-items: center;
}
.tabs a:hover { text-decoration: none; color: var(--text); }
.tabs a.active {
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 1px 2px rgba(20, 35, 50, .1);
}

/* Δεύτερη, ελαφρύτερη σειρά καρτελών (π.χ. Ενεργά/Αρχείο) — υπογράμμιση,
   όχι δεύτερη σειρά από ίδια «χάπια» που θα ανταγωνιζόταν τις κύριες. */
.tabs-sub { background: transparent; padding: 0; margin: -4px 0 16px; gap: 16px; }
.tabs-sub a {
  padding: 4px 2px; min-height: auto; border-radius: 0;
  border-bottom: 2px solid transparent;
}
.tabs-sub a:hover { color: var(--text); }
.tabs-sub a.active {
  background: transparent; box-shadow: none;
  color: var(--accent-strong); border-bottom-color: var(--accent);
}

/* ============ Επικεφαλίδες έτους ============ */
.year-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.year-totals { font-size: var(--fs-sm); }
.year-totals .num { font-weight: var(--fw-medium); }

/* ============ Λίστα υποθέσεων ============ */
/* .case-row, .cr-* : ενοποιημένος ορισμός πιο κάτω, στην ενότητα ΣΥΜΒΟΛΑΙΑ. */
.list-card { padding: 4px 0; }
.carry-card { border-left: 3px solid var(--danger); }

/* ============ Μπλοκ οφειλής (καρτέλα υπόθεσης) ============ */
.db-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.amount-line {
  display: flex;
  gap: 8px 28px;
  flex-wrap: wrap;
  padding: 12px 14px;
  background: var(--bg);
  border-radius: var(--radius-sm);
}
.amount-line .al-label { font-size: var(--fs-xs); color: var(--muted); }
.amount-line .al-value {
  font-size: var(--fs-md);
  font-weight: var(--fw-medium);
  text-align: left;
}
.amount-line .al-value.num-strong { font-weight: var(--fw-bold); }

/* Πληρωμές μέσα στο μπλοκ οφειλής */
.pay-list { margin-top: 12px; border-top: 1px solid var(--hairline); }
.pay-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 2px;
  border-bottom: 1px solid var(--hairline);
  font-size: var(--fs-md);
  flex-wrap: wrap;
}
.pay-row:last-child { border-bottom: 0; }
.pr-date { color: var(--muted); min-width: 84px; }
.pr-info { flex: 1; min-width: 140px; }
.pr-amount { font-weight: var(--fw-medium); color: var(--ok); }
.pr-actions { display: flex; gap: 6px; }

@media print {
  .topbar, .btn, .actions-row, .filter-bar { display: none !important; }
  body { background: #fff; }
  .card { border: 0; padding: 0; }
}

/* ============================================================
   v2 — ήρεμη, καθαρή εφαρμογή γραφείου
   ============================================================ */
:root {
  --bg: #f5f5f1;
  --surface: #ffffff;
  --surface-soft: #fafaf7;
  --surface-2: #fafaf7;
  --text: #1b2622;
  --muted: #68736e;
  --hairline: #e6e8e3;
  --border: #d7dbd4;
  --hover: #f4f5f2;            /* φόντο γραμμής στο πέρασμα του ποντικιού */

  /* Κάθε ρόλος έχει τρεις τόνους: βασικό (κείμενο), soft (φόντο), line
     (περίγραμμα πάνω στο soft). Μη γράφεις χρώμα που δεν είναι εδώ. */
  --accent: #1f5a49;
  --accent-strong: #163d32;
  --accent-soft: #e9f1ed;
  --accent-line: #cfe0d8;
  --danger: #b4453c;
  --danger-soft: #fbeceb;
  --danger-line: #f3c1bd;
  --warn: #9b641f;
  --warn-soft: #fbf2df;
  --warn-line: #ead39d;
  --ok: #287552;
  --ok-soft: #e8f4ed;
  --ok-line: #bfe3cc;
  --warm: #c8793e;             /* κεραμιδί: χρήματα που βγαίνουν από το γραφείο */
  --warm-strong: #9a542d;
  --warm-soft: #fbefe6;

  /* Σκούρα πλαϊνή μπάρα: τρία σκαλιά φωτεινότητας, όχι τρία χρώματα. */
  --on-dark-1: #bad0c8;        /* κύρια πλοήγηση */
  --on-dark-2: #a9c1b8;        /* δεύτερη γραμμή */
  --on-dark-3: #9fb8ae;        /* βοηθητικά εικονίδια */
  --brand-mark: #e5a06c;
  /* Τρεις γωνίες, όχι δεκατέσσερις. Κανείς δεν βλέπει τη διαφορά 9 από 11,
     αλλά το μάτι καταλαβαίνει ότι κάτι δεν κάθεται. */
  --radius-sm: 10px;           /* πλακίδια, πεδία, μικρά χειριστήρια */
  --radius: 14px;              /* κάρτες και πάνελ */
  --radius-lg: 19px;           /* μεγάλες κάρτες σύνοψης */
  --radius-bar: 3px;           /* λεπτές μπάρες προόδου */
  --shadow: 0 1px 2px rgba(24, 43, 35, .04), 0 8px 24px rgba(24, 43, 35, .035);
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

  /* Επτά μεγέθη κειμένου. Υπήρχαν 46, με εννιά από αυτά να χωράνε συνολικά σε
     1,4 pixel — ακρίβεια που κανένα μάτι δεν βλέπει. Τα ΜΕΓΑΛΑ νούμερα οθόνης
     (1.45rem και πάνω, και όλα τα clamp) μένουν έξω: είναι σκόπιμα, και ένα
     από αυτά — ο αριθμός χρονιάς — προστατεύεται ρητά από το §2.15. */
  --fs-2xs: .68rem;
  --fs-xs:  .76rem;
  --fs-sm:  .84rem;
  --fs-md:  .95rem;
  --fs-lg:  1.05rem;
  --fs-xl:  1.2rem;
  --fs-2xl: 1.35rem;

  /* Τρία βάρη. Υπήρχαν έντεκα, αλλά η οθόνη τα απέδιδε ως δύο: το 500 ως το
     620 έβγαιναν ίδια, και το 650 ως το 800 επίσης. Η αντιστοίχιση παρακάτω
     δεν αλλάζει τίποτα οπτικά — σταματά μόνο το αρχείο να λέει ψέματα. */
  --fw-normal: 400;
  --fw-medium: 600;
  --fw-bold:   700;
}

body {
  background: var(--bg);
  color: var(--text);
  font-size: 15px;
  /* Ίσο πλάτος ψηφίου παντού. Ήταν γραμμένο χειροκίνητα σε δεκαπέντε σημεία,
     οπότε κάθε νέο ποσό το ξεχνούσε και το 1.111 έπιανε άλλο πλάτος από το
     8.888 στη διπλανή γραμμή. Σε κατάστιχο, οι χιλιάδες πρέπει να πέφτουν
     κάτω από τις χιλιάδες. */
  font-variant-numeric: tabular-nums lining-nums;
}

a { color: var(--accent); }
h1 { font-size: clamp(1.65rem, 2.4vw, 2.2rem); letter-spacing: -.035em; }
h2 { font-size: var(--fs-lg); letter-spacing: -.015em; }

.app-shell { min-height: 100vh; }
.sidebar {
  display: none;
  width: 236px;
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 30;
  background: var(--accent-strong);
  color: #fff;
  padding: 22px 16px 16px;
}
.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  color: #fff;
  padding: 0 8px;
  margin-bottom: 26px;
}
.sidebar-brand:hover { text-decoration: none; }
.sidebar-brand > span:last-child { display: flex; flex-direction: column; line-height: 1.05; }
.sidebar-brand strong { font-size: var(--fs-lg); letter-spacing: .01em; }
.sidebar-brand small { color: var(--on-dark-2); margin-top: 4px; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .13em; }
.brand-mark {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-sm);
  display: inline-grid;
  place-items: center;
  background: var(--brand-mark);
  color: var(--accent-strong);
  font-weight: var(--fw-bold);
}
.sidebar-create {
  min-height: 43px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 2px 18px;
  border-radius: var(--radius-sm);
  background: #fff;
  color: var(--accent-strong);
  font-weight: var(--fw-bold);
}
.sidebar-create:hover { text-decoration: none; background: var(--hover); }
.sidebar-create span { font-size: var(--fs-xl); line-height: 1; }
.side-nav { display: flex; flex-direction: column; gap: 3px; }
.side-nav a {
  color: var(--on-dark-1);
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 43px;
  padding: 0 12px;
  border-radius: var(--radius-sm);
  font-weight: var(--fw-medium);
}
.side-nav a:hover { color: #fff; background: rgba(255,255,255,.07); text-decoration: none; }
.side-nav a.active { background: rgba(255,255,255,.12); color: #fff; }
.nav-icon { width: 22px; text-align: center; font-size: var(--fs-lg); }
.sidebar-user {
  position: absolute;
  inset: auto 16px 16px;
  padding: 13px 10px;
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex;
  align-items: center;
  gap: 9px;
}
.user-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,.14);
  display: grid;
  place-items: center;
  font-weight: var(--fw-bold);
}
.user-copy { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.user-copy strong { font-size: var(--fs-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-copy small { color: var(--on-dark-3); font-size: var(--fs-xs); }
/* Το avatar και το όνομα οδηγούν στις Ρυθμίσεις (§4.1). */
a.user-avatar, a.user-copy { color: inherit; }
a.user-avatar:hover, a.user-copy:hover { color: #fff; text-decoration: none; }
a.user-avatar:hover { background: rgba(255,255,255,.24); }
.logout-icon { color: var(--on-dark-3); font-size: var(--fs-xl); padding: 5px; }
.logout-icon:hover { color: #fff; text-decoration: none; }

.workspace { min-height: 100vh; }
.workspace-bar {
  height: 62px;
  position: sticky;
  top: 0;
  z-index: 24;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 16px;
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid var(--hairline);
  backdrop-filter: blur(12px);
}
.mobile-brand {
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: var(--fw-bold);
  white-space: nowrap;
}
.mobile-brand:hover { text-decoration: none; }
.mobile-brand .brand-mark { width: 30px; height: 30px; border-radius: var(--radius-sm); }
.global-search { flex: 1; display: none; position: relative; max-width: 520px; }
.global-search span {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  font-size: var(--fs-xl);
  /* Ο φακός είναι διακοσμητικός: το κλικ πρέπει να φτάνει στο πεδίο από κάτω. */
  pointer-events: none;
}
/*
 * ΠΡΟΣΟΧΗ: ο επιλογέας γράφεται με [type=search] επίτηδες.
 *
 * Πιο κάτω στο αρχείο υπάρχει ο γενικός κανόνας πεδίων που περιλαμβάνει και
 * τα input[type=search] με padding 11px 12px. Έχει ΙΔΙΑ βαρύτητα με ένα
 * σκέτο «.global-search input» και έρχεται αργότερα, οπότε κέρδιζε: το
 * αριστερό padding γινόταν 12px και το κείμενο έπεφτε πάνω στον φακό.
 * Το [type=search] ανεβάζει τη βαρύτητα και κλειδώνει τη διαφορά.
 */
.global-search input[type=search] {
  min-height: 39px;
  /* 13px του φακού + 18px πλάτος + κενό αναπνοής */
  padding: 8px 13px 8px 42px;
  background: var(--hover);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
}
.global-search input[type=search]:focus {
  background: #fff;
  border-color: var(--accent);
  box-shadow: none;
  outline: 3px solid rgba(31,90,73,.1);
}
.top-quick { display: none; margin-left: auto; font-weight: var(--fw-bold); white-space: nowrap; }
.top-quick:hover { text-decoration: none; }
.mobile-search-link { margin-left: auto; font-size: var(--fs-2xl); color: var(--text); padding: 6px; }
.mobile-search-link:hover { text-decoration: none; }
.mobile-account-link {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-weight: var(--fw-bold);
  font-size: var(--fs-xs);
}
.mobile-account-link:hover { text-decoration: none; }

.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 24px 14px 104px;
}
.mobile-nav {
  position: fixed;
  inset: auto 0 0;
  z-index: 25;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  background: rgba(255,255,255,.96);
  border-top: 1px solid var(--hairline);
  padding: 7px 3px max(7px, env(safe-area-inset-bottom));
  backdrop-filter: blur(12px);
}
.mobile-nav a {
  color: var(--muted);
  font-size: var(--fs-2xs);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  white-space: nowrap;
}
.mobile-nav a span { font-size: var(--fs-lg); line-height: 1.2; }
.mobile-nav a:hover { text-decoration: none; color: var(--accent); }
.mobile-nav a.active {
  color: var(--accent-strong);
  font-weight: var(--fw-bold);
}
.mobile-nav a.active span {
  color: var(--accent-strong);
}

.card {
  border-color: var(--hairline);
  box-shadow: var(--shadow);
  padding: 18px;
}
.page-head { align-items: center; margin-bottom: 22px; }
.page-head h1 { margin-bottom: 3px; }
.welcome-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.welcome-head h1 { margin-bottom: 4px; }
.welcome-head p { color: var(--muted); margin: 0; }
.eyebrow { color: var(--muted); font-size: var(--fs-xs); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 7px; }
.primary-actions, .actions-row { display: flex; gap: 8px; flex-wrap: wrap; }

.btn {
  border-radius: var(--radius-sm);
  min-height: 42px;
  padding: 9px 15px;
  font-weight: var(--fw-bold);
  border-color: var(--border);
}
.btn-primary { background: var(--accent); border-color: var(--accent); }
.btn-primary:hover { background: var(--accent-strong); }
.btn-soft { background: var(--accent-soft); border: 1px solid var(--accent-line); color: var(--accent-strong); }
.btn-soft:hover { background: var(--accent-soft); text-decoration: none; }
.btn-ghost { background: #fff; }
.btn-sm { min-height: 34px; border-radius: var(--radius-sm); padding: 6px 11px; }

.stat-grid { gap: 12px; }
.stat {
  position: relative;
  min-height: 144px;
  padding: 18px;
}
.stat-link { display: block; color: inherit; }
.stat-link:hover { text-decoration: none; border-color: var(--border); transform: translateY(-1px); }
.stat .label { margin-top: 22px; font-size: var(--fs-xs); }
.stat .value { font-size: clamp(1.35rem, 2.3vw, 1.75rem); }
.stat-note { color: var(--muted); font-size: var(--fs-xs); margin-top: 4px; }
.stat-icon {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-sm);
  color: var(--accent);
  background: var(--accent-soft);
  font-weight: var(--fw-bold);
}
.stat-icon-warn { color: var(--warn); background: var(--warn-soft); }
.stat-icon-good { color: var(--ok); background: var(--ok-soft); }

/* Αρχική: μία πλήρης κάρτα ανά γραμμή, με αρκετή πληροφορία ώστε να είναι
   προορισμός και όχι απλό πλακίδιο αριθμού. */
.home-card-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 15px;
}
.home-summary-card {
  --home-tone: var(--accent);
  --home-soft: var(--accent-soft);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px 24px;
  min-height: 188px;
  padding: 24px;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  box-shadow: 0 1px 2px rgba(24,43,35,.04), 0 12px 30px rgba(24,43,35,.045);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.home-summary-card:hover {
  color: var(--text);
  text-decoration: none;
  transform: translateY(-2px);
  border-color: var(--border);
  box-shadow: 0 2px 4px rgba(24,43,35,.05), 0 18px 38px rgba(24,43,35,.075);
}
.home-summary-card.card-overdue { --home-tone:var(--danger); --home-soft:var(--danger-soft); }
.home-summary-card.card-receipts { --home-tone:var(--ok); --home-soft:var(--ok-soft); }
.home-summary-card.card-payout { --home-tone:var(--warn); --home-soft:var(--warn-soft); }
.home-card-main { display:flex; flex-direction:column; min-width:0; }
.home-card-label { color:var(--home-tone); font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing:.035em; text-transform:uppercase; }
.home-card-value { margin-top:6px; font-size:clamp(1.75rem,4vw,2.35rem); line-height:1.05; letter-spacing:-.035em; font-variant-numeric:tabular-nums lining-nums; }
.home-card-value.is-alert { color:var(--danger); }
.home-card-status { margin-top:7px; color:var(--muted); font-size: var(--fs-sm); }
.home-card-icon {
  width:50px; height:50px; display:grid; place-items:center; border-radius: var(--radius);
  color:var(--home-tone); background:var(--home-soft);
}
.home-card-facts {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}
.home-card-facts > span { display:flex; flex-direction:column; gap:3px; padding:13px 16px 13px 0; min-width:0; }
.home-card-facts > span + span { padding-left:18px; border-left:1px solid var(--hairline); }
.home-card-facts small { color:var(--muted); font-size: var(--fs-xs); }
.home-card-facts strong { font-size: var(--fs-md); font-variant-numeric:tabular-nums; }
.home-card-cta { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; color:var(--home-tone); font-size: var(--fs-xs); font-weight: var(--fw-bold); }
.home-card-cta b { font-size: var(--fs-lg); }

@media (max-width: 620px) {
  .home-summary-card { min-height:0; padding:19px; gap:15px; }
  .home-card-icon { width:44px; height:44px; border-radius: var(--radius); }
  .home-card-facts > span { padding-top:11px; padding-bottom:11px; }
}

.section { margin-top: 30px; scroll-margin-top: 80px; }
.section-flat { min-width: 0; }
.section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 14px;
  margin-bottom: 10px;
}
.section-head h2 { margin: 0 0 2px; }
.section-head p { margin: 0; color: var(--muted); font-size: var(--fs-xs); }
.text-link { font-size: var(--fs-sm); font-weight: var(--fw-bold); white-space: nowrap; }

.attention-card { padding: 4px 18px; }
.attention-list, .simple-list, .movement-list { display: flex; flex-direction: column; }
.attention-row, .movement-row, .money-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 0;
  border-bottom: 1px solid var(--hairline);
}
.attention-row:last-child, .movement-row:last-child, .money-row:last-child { border-bottom: 0; }
.attention-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--warn); flex: 0 0 auto; }
.danger-dot { background: var(--danger); box-shadow: 0 0 0 4px var(--danger-soft); }
.attention-copy, .movement-copy, .money-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.attention-copy a, .row-title { color: var(--text); font-weight: var(--fw-bold); }
.attention-copy span, .movement-copy span, .row-meta { color: var(--muted); font-size: var(--fs-xs); }
.attention-amount { white-space: nowrap; color: var(--danger); font-variant-numeric: tabular-nums; }

.movement-sign {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: var(--fw-bold);
}
.movement-in { color: var(--ok); background: var(--ok-soft); }
.movement-out { color: var(--warm-strong); background: var(--warm-soft); }
.movement-amount, .money-amount { white-space: nowrap; font-variant-numeric: tabular-nums; }
.positive { color: var(--ok); }
.money-status { display: flex; align-items: center; gap: 6px; }
.money-amount { min-width: 110px; display: flex; flex-direction: column; text-align: right; }
.money-amount span { color: var(--muted); font-size: var(--fs-2xs); }

.case-subnav {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  margin: 0 0 14px;
  padding: 4px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,.7);
  scrollbar-width: none;
}
.case-subnav::-webkit-scrollbar { display: none; }
.case-subnav a {
  color: var(--muted);
  padding: 7px 10px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}
.case-subnav a:hover { text-decoration: none; color: var(--accent); background: #fff; }
.contact-links { margin-top: 5px; display: flex; gap: 9px; flex-wrap: wrap; font-size: var(--fs-xs); }
.distribution-preview {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 12px 0 18px;
  padding: 13px 15px;
  border: 1px solid var(--accent-line);
  border-radius: var(--radius);
  color: var(--accent);
  background: var(--accent-soft);
}
.distribution-preview span { color: var(--text); font-size: var(--fs-xs); }
.distribution-preview small { color: var(--muted); font-size: var(--fs-2xs); }
.back-link { display: inline-block; margin-bottom: 7px; font-size: var(--fs-xs); font-weight: var(--fw-bold); }
.compact-form { max-width: 680px; }
.form-details { border-top: 1px solid var(--hairline); margin-top: 16px; padding-top: 14px; }
.form-details summary { cursor: pointer; font-weight: var(--fw-bold); margin-bottom: 14px; color: var(--accent); }

.text-danger { color: var(--danger) !important; }

.search-page-form { display: flex; gap: 8px; max-width: 760px; margin-bottom: 22px; }
.search-page-form input { flex: 1; min-width: 0; }
.search-result {
  display: grid;
  grid-template-columns: 82px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 13px 0;
  border-bottom: 1px solid var(--hairline);
  color: inherit;
}
.search-result:last-child { border-bottom: 0; }
.search-result:hover { text-decoration: none; }
.search-result > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.search-result small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.result-type { color: var(--muted); font-size: var(--fs-2xs); text-transform: uppercase; letter-spacing: .06em; }

/* Ο βασικός κανόνας πεδίων και το focus του ζουν πλέον μαζί, στην ενότητα
   «Φόρμες» πιο πάνω — εδώ δεν ξαναγράφονται. */
.check-label { display: flex; align-items: center; gap: 7px; }
.check-label input { width: auto; min-height: 0; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 22px; color: var(--muted); font-size: var(--fs-xs); }
.success-empty { color: var(--ok); }

@media (min-width: 760px) {
  .form-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
}

.auth-body { background: var(--accent-strong); }
.auth-card { border-radius: var(--radius-lg); box-shadow: 0 22px 60px rgba(0,0,0,.18); }
.auth-card h1::before {
  content: 'A';
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin: 0 auto 13px;
  border-radius: var(--radius);
  background: var(--brand-mark);
  color: var(--accent-strong);
  font-size: var(--fs-xl);
}
.auth-subtitle { text-align: center; color: var(--muted); margin: -10px 0 20px; font-size: var(--fs-sm); }

@media (min-width: 760px) {
  .global-search { display: block; }
  .mobile-search-link { display: none; }
  .mobile-account-link { display: none; }
  .top-quick { display: block; }
  .container { padding: 30px 24px 80px; }
}

@media (min-width: 980px) {
  .sidebar { display: block; }
  .workspace { margin-left: 236px; }
  .mobile-brand, .mobile-nav { display: none; }
  .workspace-bar { padding: 0 32px; }
  .container { padding: 34px 32px 86px; }
  .stat-grid { gap: 14px; }
  /* Το sidebar έχει ήδη «Νέο συμβόλαιο» (.sidebar-create) — το δεύτερο
     κουμπί στη σελίδα Συμβόλαια περιττεύει μόλις φανεί το sidebar.
     Specificity .page-head .cases-new-btn (0,2,0) επίτηδες, ώστε να μη
     χαθεί από μεταγενέστερο ανεξάρτητο `.btn { display: inline-flex }`
     πιο κάτω στο αρχείο (ίδια specificity θα κέρδιζε εκείνο, όχι αυτό). */
  .page-head .cases-new-btn { display: none; }
}

@media (max-width: 680px) {
  .stat { min-height: 124px; padding: 14px; }
  .stat .label { margin-top: 17px; }
  .stat-icon { width: 25px; height: 25px; top: 12px; right: 12px; }
  .money-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 7px 12px;
  }
  .money-main { grid-column: 1; grid-row: 1; }
  .money-amount { grid-column: 2; grid-row: 1; margin-left: 0; min-width: 92px; }
  .money-status { grid-column: 1 / -1; grid-row: auto; order: initial; }
  .money-row > .btn,
  .money-row > .inline-form {
    width: auto;
    justify-self: start;
  }
  .money-row > .btn { min-height: 34px; padding: 6px 10px; }
  .money-row > .receipt-action { color: var(--accent-strong); background: transparent; border-color: var(--border); }
  .attention-row {
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr) auto;
    align-items: start;
    gap: 7px 10px;
  }
  .attention-row .attention-dot { grid-column: 1; margin-top: 6px; }
  .attention-row .attention-copy { grid-column: 2; }
  .attention-row .attention-amount { grid-column: 3; }
  .attention-row .btn { grid-column: 2; margin-left: 0; justify-self: start; min-height: 34px; padding: 6px 10px; }
  .pay-row { display: grid; grid-template-columns: 86px 1fr auto; }
  .pr-actions { grid-column: 1 / -1; }
}

.income-receipt-log { margin-bottom: 18px; }
.income-receipt-log > summary,
.income-payment-history > summary { cursor: pointer; font-weight: var(--fw-bold); color: var(--accent-strong); }
.income-receipt-log > .simple-list { margin-top: 12px; }
.compact-money-row { padding-top: 9px; padding-bottom: 9px; }
.income-payment-history { margin-top: 7px; font-size: var(--fs-xs); }
.income-payment-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  color: var(--muted);
  border-bottom: 1px dashed var(--hairline);
}
.income-payment-line:last-child { border-bottom: 0; }
.income-payment-line strong { color: var(--ok); font-variant-numeric: tabular-nums; }
.income-payment-line.is-cancelled { opacity: .58; }
.income-payment-line.is-cancelled strong { color: var(--muted); text-decoration: line-through; }
.text-button {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--danger);
  font: inherit;
  font-weight: var(--fw-bold);
  cursor: pointer;
}
.check-line { display: flex; align-items: flex-start; gap: 9px; margin: 12px 0; }
.check-line input { width: auto; margin-top: 3px; flex: none; }

/* ============ Καρτέλα συνεργάτη ============ */

.partner-page {
  max-width: 1120px;
  margin: 0 auto;
}

.partner-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px;
  margin-bottom: 22px;
}
.partner-heading h1 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 4px;
}
.partner-heading p {
  margin: 0;
  max-width: 650px;
  color: var(--muted);
  font-size: var(--fs-sm);
}
.partner-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

/* Μία σύνοψη, με πρώτο το ποσό που χρειάζεται καθημερινά ο χρήστης. */
.partner-overview-card {
  margin-bottom: 10px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-top: 4px solid var(--partner-color);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(24, 43, 35, .04), 0 12px 30px rgba(24, 43, 35, .045);
}
.partner-overview-top {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 10px 14px 10px 20px;
  border-bottom: 1px solid var(--hairline);
  background: var(--surface-soft);
}
.partner-overview-top > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.partner-overview-top > div span,
.partner-overview-balance > span,
.partner-overview-fact > span {
  color: var(--muted);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: .045em;
  text-transform: uppercase;
}
.partner-overview-top > div strong { margin-top: 1px; font-size: var(--fs-md); }
.partner-overview-period {
  display: flex;
  align-items: center;
  gap: 9px;
}
.partner-overview-period label {
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  white-space: nowrap;
}
.partner-overview-period select {
  width: auto;
  min-width: 92px;
  min-height: 40px;
  padding: 7px 32px 7px 12px;
  border-radius: var(--radius-sm);
  background-color: var(--surface);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums lining-nums;
}
.partner-overview-body { display: grid; min-width: 0; }
.partner-overview-balance {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 22px 20px;
}
.partner-overview-balance strong {
  margin-top: 5px;
  overflow: hidden;
  font-size: clamp(1.9rem, 4vw, 2.55rem);
  line-height: 1.04;
  letter-spacing: -.045em;
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.partner-overview-balance strong.is-debt { color: var(--danger); }
.partner-overview-balance strong.is-credit { color: var(--ok); }
.partner-overview-balance > small { margin-top: 8px; color: var(--muted); font-size: var(--fs-xs); }
.partner-overview-balance-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 9px;
}
.partner-overview-balance-values > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.partner-overview-balance-values > div + div {
  padding-left: 14px;
  border-left: 1px solid var(--hairline);
}
.partner-overview-balance-values small {
  color: var(--muted);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
}
.partner-overview-balance-values strong {
  margin-top: 2px;
  font-size: clamp(1.45rem, 3vw, 2rem);
}
.partner-overview-facts {
  display: grid;
  border-top: 1px solid var(--hairline);
}
.partner-overview-fact {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  padding: 12px 18px;
  border-top: 1px solid var(--hairline);
}
.partner-overview-fact:first-child { border-top: 0; }
.partner-overview-fact > span,
.partner-overview-fact small {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.partner-overview-fact strong {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  font-size: var(--fs-md);
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}
.partner-overview-fact small { color: var(--muted); font-size: var(--fs-2xs); }
.partner-sections {
  justify-content: space-between;
  margin: 0 0 18px;
}
.partner-sections a { padding-inline: 7px; text-align: center; }
.case-subnav a.is-on {
  color: var(--accent);
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(0,0,0,.06);
}

.partner-detail-stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: 12px;
}
.partner-detail-stats > div {
  display: flex;
  flex-direction: column;
  padding: 16px 18px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .72);
}
.partner-detail-stats span { color: var(--muted); font-size: var(--fs-xs); }
.partner-detail-stats strong {
  margin-top: 3px;
  font-size: var(--fs-2xl);
  letter-spacing: -.025em;
  font-variant-numeric: tabular-nums lining-nums;
}
.partner-detail-stats small { color: var(--muted); font-size: var(--fs-2xs); }
.partner-balance-breakdown {
  display: grid;
  gap: 1px;
  margin-bottom: 12px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: var(--hairline);
}
.partner-balance-breakdown > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 15px 18px;
  background: var(--surface);
}
.partner-balance-breakdown span { color: var(--muted); font-size: var(--fs-xs); font-weight: var(--fw-bold); }
.partner-balance-breakdown strong { margin-top: 2px; font-size: var(--fs-xl); }
.partner-balance-breakdown small { margin-top: 3px; color: var(--muted); font-size: var(--fs-xs); line-height: 1.5; }
.partner-statement-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-bottom: 12px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: var(--hairline);
}
.partner-statement-summary > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 14px 16px;
  background: rgba(255, 255, 255, .94);
}
.partner-statement-summary span {
  color: var(--muted);
  font-size: var(--fs-2xs);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.partner-statement-summary strong {
  margin-top: 3px;
  overflow: hidden;
  font-size: var(--fs-md);
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.partner-statement-summary small { color: var(--muted); font-size: var(--fs-2xs); }
.partner-statement-summary .is-debt strong { color: var(--danger); }
.partner-statement-summary .is-credit strong { color: var(--ok); }
.expense-role-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 5px;
}
.expense-role {
  display: inline-flex;
  padding: 3px 7px;
  border-radius: 99px;
  font-size: var(--fs-2xs);
  font-style: normal;
  font-weight: var(--fw-bold);
}
.expense-role.paid { color: var(--warm-strong); background: var(--warm-soft); }
.expense-role.charged { color: var(--danger); background: var(--danger-soft); }
.expense-role.office { color: var(--muted); background: var(--bg); }
.expense-role.salary { color: var(--muted); background: var(--bg); }
.partner-detail-note {
  margin: 10px 2px 0;
  color: var(--muted);
  font-size: var(--fs-xs);
}

@media (min-width: 760px) {
  .partner-overview-body { grid-template-columns: minmax(330px, .95fr) minmax(0, 1.65fr); }
  .partner-overview-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 0;
    border-left: 1px solid var(--hairline);
  }
  .partner-overview-fact {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px 18px;
    border-top: 0;
  }
  .partner-overview-fact + .partner-overview-fact { border-left: 1px solid var(--hairline); }
  .partner-overview-fact strong { margin-top: 5px; font-size: var(--fs-lg); }
  .partner-sections a { flex: 1; }
  .partner-detail-stats { grid-template-columns: repeat(2, 1fr); }
  .partner-detail-stats.partner-detail-stats-three { grid-template-columns: repeat(3, 1fr); }
  .partner-balance-breakdown { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-statement-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .partner-statement-summary.salary-summary-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .partner-hero { margin-bottom: 16px; }
  .partner-actions { width: 100%; }
  .partner-actions .btn-primary { flex: 1; }
  .partner-overview-top { padding-left: 16px; }
  .partner-overview-top > div strong { font-size: var(--fs-sm); }
  .partner-overview-period label { display: none; }
  .partner-overview-balance { padding: 19px 18px; }
  .partner-sections a { font-size: var(--fs-xs); }
}

/* Ένα καθαρό, εγγενές color picker — χωρίς παλέτα ή κωδικούς. */
.partner-color-field { max-width: 180px; }
.partner-color-input {
  width: 100%;
  height: 52px;
  min-height: 52px;
  padding: 4px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  cursor: pointer;
}
.partner-color-input::-webkit-color-swatch-wrapper { padding: 0; }
.partner-color-input::-webkit-color-swatch { border: 0; border-radius: var(--radius-sm); }
.partner-color-input::-moz-color-swatch { border: 0; border-radius: var(--radius-sm); }

.partner-opening-section {
  margin: 24px 0 20px;
  padding-top: 22px;
  border-top: 1px solid var(--hairline);
}
.form-section-head { margin-bottom: 14px; }
.form-section-head h2 { margin: 0 0 4px; font-size: var(--fs-lg); }
.form-section-head p { margin: 0; color: var(--muted); font-size: var(--fs-xs); }
.partner-opening-line {
  margin: 0 0 12px;
  padding: 15px 16px 2px;
  border: 1px solid color-mix(in srgb, var(--row-color) 24%, var(--hairline));
  border-left: 4px solid var(--row-color);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--row-color) 4%, white);
}
.partner-opening-line legend {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 6px;
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

.partner-color-dot {
  width: 10px;
  height: 10px;
  flex: none;
  border-radius: 50%;
  background: var(--row-color, var(--partner-color, var(--accent)));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--row-color, var(--partner-color, var(--accent))) 14%, white);
}
.partner-page .partner-heading .eyebrow { display: flex; align-items: center; gap: 7px; }
.partner-page .partner-heading .eyebrow::before {
  content: '';
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--partner-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--partner-color) 14%, white);
}
.partner-list-card { border-left: 4px solid var(--partner-color); }
.partner-list-card h2 { display: flex; align-items: center; gap: 8px; }
.partner-inline-name { display: inline-flex; align-items: center; gap: 4px; color: var(--row-color); font-weight: var(--fw-bold); }
.partner-inline-name i { width: 7px; height: 7px; border-radius: 50%; background: var(--row-color); }

.salary-source-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.salary-source {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--row-color) 24%, var(--hairline));
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--row-color) 5%, white);
}
.salary-source > div { min-width: 0; display: flex; flex: 1; flex-direction: column; }
.salary-source strong { overflow: hidden; font-size: var(--fs-xs); text-overflow: ellipsis; white-space: nowrap; }
.salary-source small { color: var(--muted); font-size: var(--fs-2xs); }
.salary-source .text-link { font-size: var(--fs-2xs); white-space: nowrap; }

/* Ενιαίο ιστορικό μισθού: πληρωμές κατά ημερομηνία και χρώμα πληρωτή.
   Η μηνιαία ανανέωση είναι επίτηδες περίπου μισή σε ύψος και διακριτική. */
.salary-ledger-card { padding-top: 7px; padding-bottom: 7px; }
.salary-ledger { display: flex; flex-direction: column; }
.salary-ledger-row {
  display: grid;
  grid-template-columns: minmax(145px, 1fr) minmax(180px, 1fr);
  align-items: center;
  gap: 18px;
  min-height: 66px;
  padding: 10px 4px;
  border-bottom: 1px solid var(--hairline);
}
.salary-ledger-row:last-child { border-bottom: 0; }
.salary-ledger-date,
.salary-ledger-payer {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.salary-ledger-date strong,
.salary-ledger-payer strong {
  font-variant-numeric: tabular-nums lining-nums;
}
.salary-ledger-date span {
  margin-top: 2px;
  color: var(--muted);
  font-size: var(--fs-2xs);
}
.salary-payment-amount { color: var(--row-color) !important; font-size: var(--fs-sm) !important; font-weight: var(--fw-bold); }
.salary-charge-amount { color: var(--warn) !important; font-size: var(--fs-sm) !important; font-weight: var(--fw-bold); }
.salary-ledger-payer {
  align-items: center;
  justify-content: center;
  color: var(--row-color);
  text-align: center;
}
.salary-ledger-payer strong { font-size: var(--fs-md); }
.salary-ledger-row.is-payment {
  margin-left: -10px;
  padding-left: 14px;
  border-left: 4px solid var(--row-color);
  background: linear-gradient(90deg, color-mix(in srgb, var(--row-color) 6%, white), transparent 46%);
}
.salary-ledger-row.is-adjustment {
  margin-left: -10px;
  padding-left: 14px;
  border-left: 4px solid var(--warn);
  background: linear-gradient(90deg, var(--warn-soft), transparent 48%);
}
.salary-ledger-row.is-adjustment .salary-ledger-payer { color: var(--warn); }
.salary-ledger-payer small { color: var(--muted); font-size: var(--fs-2xs); }
.salary-row-actions { display: inline-flex; align-items: center; gap: 8px; margin-top: 3px; font-size: var(--fs-2xs); }
.salary-row-actions form { display: inline; margin: 0; }
.salary-row-actions a, .link-button { color: var(--accent-strong); font: inherit; text-decoration: underline; }
.link-button { padding: 0; border: 0; background: none; cursor: pointer; }
.link-button.danger { color: var(--danger); }
.salary-ledger-row.is-renewal {
  position: relative;
  min-height: 34px;
  margin: 3px -8px;
  padding: 5px 12px;
  border: 0;
  border-radius: var(--radius);
  color: var(--muted);
  background: linear-gradient(90deg, var(--hover), var(--surface-soft));
  font-style: italic;
}
.salary-ledger-row.is-renewal + .salary-ledger-row.is-renewal { margin-top: 0; }
.salary-renewal-text {
  grid-column: 1 / -1;
  overflow: hidden;
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: .015em;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 680px) {
  .salary-source-list { grid-template-columns: 1fr; }
  .salary-ledger-row {
    grid-template-columns: minmax(105px, 1fr) minmax(120px, 1fr);
    gap: 8px;
    min-height: 58px;
    padding: 8px 0;
  }
  .salary-ledger-row.is-renewal { min-height: 30px; margin-left: -6px; margin-right: -6px; padding: 4px 7px; }
  .salary-ledger-row.is-payment { margin-left: -7px; padding-left: 9px; }
  .salary-ledger-row.is-adjustment { margin-left: -7px; padding-left: 9px; }
  .salary-ledger-date strong,
  .salary-ledger-payer strong { font-size: var(--fs-sm); }
  .salary-ledger-date span { font-size: var(--fs-2xs); }
  .salary-renewal-text { font-size: var(--fs-2xs); }
}

@media print {
  .sidebar, .workspace-bar, .mobile-nav, .btn, .actions-row { display: none !important; }
  .workspace { margin: 0; }
  .container { max-width: none; padding: 0; }
  .card { box-shadow: none; }
}

/* ---------------------------------------------------------------
   Εικονίδια — inline SVG με μία γραμμή σχεδίασης (app/lib/icons.php)
   --------------------------------------------------------------- */
.icon {
  width: 20px;
  height: 20px;
  flex: none;
  display: block;
  stroke: currentColor;
}
.nav-icon { display: grid; place-items: center; }
.nav-icon .icon { width: 19px; height: 19px; }
.sidebar-create .icon { width: 18px; height: 18px; }
.logout-icon { display: grid; place-items: center; }
.logout-icon .icon { width: 19px; height: 19px; }
.stat-icon .icon { width: 17px; height: 17px; stroke-width: 1.9; }
.mobile-nav a span .icon { width: 21px; height: 21px; margin: 0 auto; }
.mobile-search-link { display: grid; place-items: center; }
.mobile-search-link .icon { width: 21px; height: 21px; }
.global-search .search-glyph {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  display: grid;
  place-items: center;
}
.global-search .search-glyph .icon { width: 18px; height: 18px; }
.btn .icon { width: 17px; height: 17px; }
.btn-sm .icon { width: 15px; height: 15px; }
.top-quick { display: none; align-items: center; gap: 6px; }
.top-quick .icon { width: 17px; height: 17px; }
.text-link .icon { width: 15px; height: 15px; display: inline-block; vertical-align: -2px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.icon-danger { color: var(--danger); }

@media (min-width: 760px) {
  .top-quick { display: inline-flex; }
  .mobile-search-link { display: none; }
}

/* Μισθοί ανά συνεργάτη (ενότητα Συνεργάτες) */
.salary-box {
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin-bottom: 14px;
  background: var(--surface-soft);
  display: grid;
  gap: 12px;
}
.salary-line { display: flex; align-items: flex-start; gap: 11px; }
.salary-line > div { flex: 1; min-width: 0; }
.salary-line strong { display: block; font-weight: var(--fw-medium); }
.salary-ico {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: none;
  border-radius: var(--radius-sm);
  color: var(--accent);
  background: var(--accent-soft);
}
.salary-ico .icon { width: 17px; height: 17px; }

/* Λίστα επιπτώσεων (διαγραφή συνεργάτη) */
.impact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.impact-list li { display: flex; align-items: flex-start; gap: 11px; }
.impact-ico {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: none;
  border-radius: var(--radius-sm);
  color: var(--muted);
  background: var(--hover);
}
.impact-ico .icon { width: 17px; height: 17px; }

/* Μπλοκ υπενθύμισης */
.notice-block { text-align: left; }
.notice-block .notice-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.notice-block p { margin: 0 0 10px; }

/* Επιλογή μήνα + έτους */
.month-picker { display: flex; gap: 8px; }
.month-picker select { flex: 1; min-width: 0; }

/* Ένα κουμπί αποθήκευσης για όλες τις ρυθμίσεις */
.save-bar {
  position: sticky;
  bottom: 0;
  z-index: 5;
  margin-top: 18px;
  padding: 13px 16px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(6px);
  box-shadow: 0 -6px 18px rgba(20,40,32,.07);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.save-bar .btn { min-width: 210px; }

/* Ρυθμίσεις: οι γενικές φόρμες μένουν συμπαγείς, αλλά η σελίδα ρυθμίσεων
   χρησιμοποιεί όλο το διαθέσιμο πλάτος και αποκτά πραγματική desktop διάταξη. */
.settings-page .form-card { width: 100%; margin-inline: auto; }
.salary-impact-preview {
  margin: 0 0 12px;
  padding: 11px 13px;
  border: 1px solid var(--warn-line);
  border-radius: var(--radius-sm);
  background: var(--warn-soft);
  color: var(--warn);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
}
.salary-impact-preview.is-neutral {
  border-color: var(--accent-line);
  background: var(--accent-soft);
  color: var(--accent-strong);
}
.import-workbook-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  margin-top: 18px;
}
.opening-balance-editor { margin: 4px 0 18px; }
.inline-edit-panel {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
}
.opening-balance-row + .opening-balance-row {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.opening-balance-row > .hint { margin-bottom: 8px; }
.import-summary-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
}
.import-summary-item span {
  color: var(--muted);
  font-size: var(--fs-sm);
}
.integrity-heading { margin: 18px 0 8px; font-size: var(--fs-md); }
.integrity-heading:first-child { margin-top: 0; }
.finding-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.finding-row > span { flex: 1; min-width: 0; }
.finding-row > a { flex: none; color: inherit; font-weight: var(--fw-bold); text-decoration: underline; }

@media (min-width: 1000px) {
  .settings-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
  }
  .settings-form > .card { max-width: none; margin-top: 0; }
  .settings-form > #partners,
  .settings-form > #salaries,
  .settings-form > #users,
  .settings-form > .save-bar { grid-column: 1 / -1; }
  .settings-form > .save-bar { position: static; margin-top: 0; }
  .settings-page > .form-card { max-width: none; }
  .settings-page > .form-card > form { max-width: 760px; }
}

.section-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 34px 0 12px;
  font-size: var(--fs-lg);
}
.card h2 { display: flex; align-items: center; gap: 9px; }
.card h2 .icon { width: 19px; height: 19px; color: var(--accent); }

/* Δίχτυ ασφαλείας: κανένα εικονίδιο δεν ξεπερνά ποτέ το κουτί του. */
svg.icon { max-width: 100%; flex: none; }

/* ------------------------------------------------------------------
   ΚΑΡΤΑ ΣΥΝΟΨΗΣ (sum-*) — κοινό εξάρτημα Αρχικής και Οικονομικών.

   Ετικέτα → μεγάλο νούμερο → (σύγκριση) → μπάρα → λεπτή λεζάντα →
   γραμμές προορισμού.

   ΤΟΝΟΣ: η μπάρα δείχνει αναλογίες, δεν φωνάζει. 5px, όχι λωρίδα.
   Τα χρώματα είναι σβησμένα επίτηδες — ο ΦΠΑ γκρι γιατί δεν είναι δικά
   μας χρήματα. Η ετικέτα δεν ανταγωνίζεται το νούμερο.

   Κάτω από τη μπάρα μπαίνουν ΜΟΝΟ προορισμοί. Δύο διαφορετικές τομές
   του ίδιου συνόλου δεν μπαίνουν ποτέ στην ίδια λίστα (DECISIONS.md §7.3).
   ------------------------------------------------------------------ */
.sum-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 900px) {
  .sum-grid.sum-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sum-grid + .sum-grid { margin-top: 16px; }

.sum-card {
  display: block;
  padding: 26px 28px;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  box-shadow: 0 1px 2px rgba(24,43,35,.035);
}

.sum-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.sum-label {
  color: var(--muted);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-medium);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.sum-when { color: var(--muted); font-size: var(--fs-xs); white-space: nowrap; }
.sum-value {
  display: block;
  margin-top: 12px;
  font-size: clamp(1.95rem, 4.6vw, 2.65rem);
  font-weight: var(--fw-medium);
  line-height: 1;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums lining-nums;
}
.sum-value.is-alert { color: var(--danger); }
.sum-note { display: block; margin-top: 9px; color: var(--muted); font-size: var(--fs-xs); }
.sum-delta { display: block; margin-top: 9px; color: var(--muted); font-size: var(--fs-xs); }
.sum-delta b { font-weight: var(--fw-medium); }
.sum-delta .up { color: var(--ok); }
.sum-delta .down { color: var(--danger); }

/* Μπάρα σύνθεσης. Κομμάτια χωριστά και στρογγυλεμένα — όχι ενιαία λωρίδα.
   8px, όχι 5: στα 5 τα χρώματα δεν ξεχώριζαν και η μπάρα έπαυε να λέει κάτι.
   Τα χρώματα ορίζονται μία φορά εδώ, ώστε να μη διαφέρουν ανά σελίδα. */
.sum-bar { display: flex; gap: 3px; height: 8px; margin-top: 22px; }
.sum-bar > i { display: block; min-width: 3px; border-radius: var(--radius-bar); }

/* ΔΕΝ ΑΡΚΕΙ ΔΙΑΦΟΡΕΤΙΚΗ ΑΠΟΧΡΩΣΗ. Η πρώτη εκδοχή είχε πράσινο και κόκκινο με
   φωτεινότητα 0,116 και 0,143 — διαφορετικά χρώματα, σχεδόν ίδιο σκοτάδι, και
   δίπλα-δίπλα σε λεπτή μπάρα διαβάζονταν σαν ένα μπλοκ. Τα τμήματα κάθε μπάρας
   πρέπει να διαφέρουν και σε ΦΩΤΕΙΝΟΤΗΤΑ, ώστε να ξεχωρίζουν και σε κακή οθόνη
   και σε αχρωματοψία. Οι τιμές δίπλα είναι η μετρημένη σχετική φωτεινότητα. */
.tone-ours   { background: #1f6b5c; }  /* δικά μας / εισπραγμένα      L 0,12 */
.tone-late   { background: #d64a3f; }  /* εκπρόθεσμα / δεν έχουν μπει L 0,20 */
.tone-ref    { background: #d18f22; }  /* συστήνοντες                 L 0,33 */
.tone-ontime { background: #8fa9c4; }  /* εμπρόθεσμα                  L 0,38 */
.tone-vat    { background: #c2c8c4; }  /* ΦΠΑ — δεν είναι δικά μας    L 0,56 */

.sum-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  margin-top: 14px;
  font-size: var(--fs-xs);
  color: var(--muted);
}
.sum-legend span { display: inline-flex; align-items: center; gap: 8px; }
.sum-legend b { color: var(--text); font-weight: var(--fw-medium); font-variant-numeric: tabular-nums; }
.sum-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }

.sum-rows { margin-top: 18px; }
.sum-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--hairline);
  color: var(--text);
}
a.sum-row:hover { text-decoration: none; }
a.sum-row:hover .sum-row-title { color: var(--accent); }
a.sum-row:hover .chev { color: var(--accent); }
.sum-row-main { min-width: 0; }
.sum-row-title { display: block; font-size: var(--fs-sm); }
.sum-row-sub { display: block; margin-top: 3px; color: var(--muted); font-size: var(--fs-xs); }
.sum-row-end { display: flex; align-items: center; gap: 11px; white-space: nowrap; }
.sum-row-amount { font-size: var(--fs-sm); font-variant-numeric: tabular-nums lining-nums; }
.sum-row-amount.is-muted { color: var(--muted); }
.sum-row-amount.is-alert { color: var(--danger); }
.sum-row .chev { color: var(--border); font-size: var(--fs-md); line-height: 1; transition: color .12s ease; }

/* Η πλατιά κάρτα έχει χώρο για δύο στήλες προορισμών. Χωρίς αυτό τεντώνεται
   σε ύψος ενώ μισή οθόνη μένει άδεια δεξιά. */
@media (min-width: 900px) {
  .sum-card.is-wide .sum-rows {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 38px;
  }
}

/* Επιλογέας έτους — στη λεπτομερή σελίδα Έσοδα. Η Αρχική είναι πάντα «τώρα». */
.sum-years { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 16px; }
.sum-year {
  font-size: var(--fs-xs);
  padding: 5px 15px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--hairline);
  color: var(--muted);
  background: #fff;
  transition: color .12s ease, border-color .12s ease;
}
.sum-year:hover { text-decoration: none; border-color: var(--border); color: var(--text); }
.sum-year.is-on { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }

@media (max-width: 620px) {
  .sum-card { padding: 20px; border-radius: var(--radius); }
  .sum-value { font-size: clamp(1.7rem, 7.5vw, 2.1rem); }
  .sum-legend { gap: 5px 16px; }
}

/* Επικεφαλίδα λίστας: χωρίζει τα «σε εξέλιξη» από τα «παλιά συμβόλαια».
   Τα ολοκληρωμένα μένουν ορατά αλλά υποχωρούν οπτικά — δεν είναι δουλειά. */
.list-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 26px 0 4px;
}
.list-head h2 { margin: 0; font-size: var(--fs-lg); }
.list-head-quiet { margin-top: 38px; }
.list-head-quiet h2 { color: var(--muted); font-weight: var(--fw-medium); }
.section.is-done .year-head { color: var(--muted); }
.section.is-done .list-card { opacity: .88; }
@media (max-width: 620px) {
  .list-head { margin: 20px 0 2px; }
  .list-head h2 { font-size: var(--fs-md); }
}

/* ------------------------------------------------------------------
   ΣΥΜΒΟΛΑΙΑ.

   Η κατάσταση γράφεται ολογράφως, ΟΧΙ έγχρωμο pill/badge — δοκιμάστηκε
   και απορρίφθηκε από τον ιδιοκτήτη (DECISIONS §2.15): σε λίστα πολλών
   γραμμών βγάζει ουράνιο τόξο. Το μοναδικό χρώμα στη σελίδα είναι η
   κάθετη ραχοκοκαλιά (ξεθωριάζει όσο παλιώνει η χρονιά — «πόσο
   πρόσφατο») και το χρώμα του υπολοίπου (κεχριμπαρί = φυσιολογική
   εκκρεμότητα, κόκκινο = πραγματικό πρόβλημα: υπερπληρωμή ή εκπρόθεσμο).
   Η επικεφαλίδα χρονιάς έχει μεγάλο αριθμό, όχι στήλες στατιστικών. Τα
   ολοκληρωμένα ζουν σε δικό τους κουτί ή disclosure — ρητό αίτημα
   ιδιοκτήτη να μη «συνεχίζουν» οπτικά τα εκκρεμή.
   ------------------------------------------------------------------ */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Ραχοκοκαλιά σε δική της ψευδο-στοιβάδα, ώστε να μη ξεθωριάζει και το
   περιεχόμενο μαζί της — μόνο η λωρίδα διαβάζει το --year-fade. */
/* Η κάθετη ραχοκοκαλιά ανά χρονιά ΑΦΑΙΡΕΘΗΚΕ με ρητή εντολή ιδιοκτήτη
   (12/08/2026), υπερισχύοντας της §2.15. Τη χρονιά τη λέει ο μεγάλος
   αριθμός και η γραμμή στατιστικών δίπλα του — η λωρίδα έτρωγε πλάτος
   στο κινητό χωρίς να προσθέτει πληροφορία. Το `--year-fade` μένει στο
   PHP αλλά δεν το διαβάζει πια κανείς. */
.year-block { margin-top: 34px; position: relative; }

.year-block .year-head {
  display: block;
  margin: 0 0 9px;
}
.yh-year {
  margin: 0;
  font-size: 1.95rem;
  font-weight: var(--fw-bold);
  letter-spacing: -.03em;
  line-height: 1;
  color: var(--text);
  font-variant-numeric: lining-nums;
}
.yh-line { margin: 6px 0 0; color: var(--muted); font-size: var(--fs-sm); }
.yh-line strong { color: var(--text); font-weight: var(--fw-bold); }
/* Το άθροισμα μιας ολόκληρης χρονιάς είναι φυσιολογική εκκρεμότητα, όχι
   συναγερμός — κεχριμπαρί, όχι κόκκινο. Κόκκινο μένει αποκλειστικά στο
   υπόλοιπο μιας συγκεκριμένης εκπρόθεσμης/υπερπληρωμένης υπόθεσης
   (.cr-balance.is-overdue) — DECISIONS §2.15.2. */
.yh-line strong.due { color: var(--warn); font-variant-numeric: tabular-nums lining-nums; }

.year-more {
  display: inline-block;
  margin-top: 9px;
  font-size: var(--fs-xs);
  color: var(--muted);
}
.year-more:hover { color: var(--accent); }

/* Η χωρίστρα και το disclosure των ολοκληρωμένων αφαιρέθηκαν: πλέον ένας
   πίνακας ανά χρονιά, και τα κλεισμένα ξεχωρίζουν από το γκρι της γραμμής
   (.is-settled) και την πινακίδα κατάστασης. */

/* Γραμμή συμβολαίου. Ο τίτλος σπάει ΜΟΝΟ σε λέξεις — ποτέ σε γράμματα
   (DECISIONS §2.15 — «anywhere» έσπαγε τα ονόματα γράμμα-ανά-γραμμή). */
.case-row { display: block; padding: 14px 18px; color: var(--text); border-bottom: 1px solid var(--hairline); }
.case-row:last-child { border-bottom: 0; }
.case-row:hover { background: var(--hover); text-decoration: none; }
.cr-body { display: flex; gap: 16px; align-items: flex-start; }
.cr-main { flex: 1 1 auto; min-width: 0; }
.cr-title { overflow-wrap: break-word; word-break: normal; hyphens: none; line-height: 1.3; font-weight: var(--fw-medium); }
.cr-parties { margin-top: 3px; font-size: var(--fs-xs); color: var(--muted); }
.cr-meta { margin-top: 5px; color: var(--muted); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: var(--fs-xs); }
.cr-state { font-weight: var(--fw-medium); }
.cr-date { color: var(--muted); }

.cr-amounts { flex: 0 0 auto; min-width: 112px; text-align: right; }
.cr-balance {
  font-size: var(--fs-md); font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums lining-nums;
}
.cr-balance.is-pending { color: var(--warn); }
.cr-balance.is-overdue { color: var(--danger); }
.cr-balance.is-done { color: var(--muted); font-weight: var(--fw-medium); }
.cr-balance.is-muted { color: var(--muted); font-weight: var(--fw-medium); }
.cr-sub { font-size: var(--fs-xs); color: var(--muted); margin-top: 2px; white-space: nowrap; }

/* Μπάρα προόδου — ΕΞΩ από τη στήλη ποσών, ώστε να μην ξαναφάει πλάτος από
   τον τίτλο. Μόνο σε ανοιχτές γραμμές με συμφωνημένη προμήθεια. Σε στενή
   οθόνη ολόκληρου πλάτους (καλά εκεί)· στο desktop στενή και δεξιά
   στοιχισμένη κάτω από το ποσό — αλλιώς απλωνόταν σχεδόν σε όλη τη γραμμή
   και τραβούσε μάτι σαν progress bar φόρτωσης. */
.cr-progress { margin-top: 10px; }
.cr-progress-label {
  display: block; text-align: right; margin-bottom: 3px;
  font-size: var(--fs-2xs); color: var(--muted); font-variant-numeric: tabular-nums;
}
.cr-progress-track { height: 4px; border-radius: var(--radius-bar); background: var(--hairline); overflow: hidden; }
.cr-progress-fill { height: 100%; width: var(--pct, 0%); background: var(--accent); border-radius: var(--radius-bar); }
@media (min-width: 561px) {
  .cr-progress { width: 260px; margin-left: auto; }
}

/* Redesign 12/08/2026 — τα Συμβόλαια λειτουργούν σαν καθαρό φύλλο Excel: μία γραμμή,
   τέσσερα μόνο στοιχεία. Οι λεπτομέρειες ανοίγουν με κλικ στη γραμμή. */
/* Το όνομα έπαιρνε 1.7fr και έσπρωχνε το τίμημα στη μέση του πουθενά. Τώρα
   παίρνει όσο χρειάζεται, τα δύο ποσά είναι ΓΕΙΤΟΝΙΚΑ ώστε να συγκρίνονται,
   και η κατάσταση κλείνει τη γραμμή. */
.case-list-head,
.case-row-simple {
  display: grid;
  grid-template-columns: minmax(180px, 340px) minmax(140px, 1fr) minmax(150px, 1fr) minmax(120px, .8fr);
  align-items: center;
  column-gap: 18px;
}
.case-list-head {
  padding: 10px 18px 8px;
  color: var(--muted);
  background: var(--surface-soft);
  border-bottom: 1px solid var(--hairline);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: .045em;
  text-transform: uppercase;
}
.case-list-head span:nth-child(2),
.case-list-head span:nth-child(3) { text-align: right; }
.case-list-head span:nth-child(4) { text-align: center; }
.case-row-simple { padding: 12px 18px; min-height: 50px; }
.case-row-simple .cr-title { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cr-price,
.cr-commission { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: var(--fw-bold); }
.cr-status { text-align: center; }
.cr-mobile-label { display: none; }

/* --- Πινακίδα κατάστασης ---------------------------------------
   Ένα χρώμα ανά κατάσταση, ΑΠΑΛΟ: με πέντε καταστάσεις οι έντονοι
   τόνοι ξαναφτιάχνουν το «ουράνιο τόξο» που είχε απορριφθεί. Το
   χρώμα βγαίνει από τα ήδη υπάρχοντα tokens της εφαρμογής. */
.status-tag {
  display: inline-block;
  padding: 3px 10px;
  border-radius: var(--radius-lg);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  white-space: nowrap;
  line-height: 1.35;
}
.st-in_progress { background: var(--warn-soft);   color: var(--warn); }
.st-signed      { background: var(--accent-soft); color: var(--accent-strong); }
.st-completed   { background: var(--ok-soft);     color: var(--ok); }
.st-discussion  { background: var(--bg);          color: var(--muted); box-shadow: inset 0 0 0 1px var(--hairline); }
.st-cancelled   { background: var(--danger-soft); color: var(--danger); }

/* --- Κλεισμένη γραμμή ------------------------------------------
   «Ό,τι είναι κλειστό γίνεται γκρι και υποχωρεί» (DECISIONS §2.15).
   ΟΧΙ διαγράμμιση — στην εφαρμογή σημαίνει ακυρωμένο/μη εισπράξιμο
   (.strike, .badge-uncollectible), άρα θα διάβαζε ένα επιτυχημένο
   συμβόλαιο σαν άκυρο. Ούτε πλάγια: χαλάνε τη στοίχιση των ψηφίων. */
.case-row-simple.is-settled { background: var(--surface-soft); }
.case-row-simple.is-settled .cr-title,
.case-row-simple.is-settled .cr-price,
.case-row-simple.is-settled .cr-commission { color: var(--muted); font-weight: var(--fw-medium); }
.case-row-simple.is-settled:hover .cr-title { color: var(--text); }

@media (max-width: 760px) {
  .case-list-head { display: none; }
  .case-row-simple {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "contract commission"
      "price status";
    gap: 7px 12px;
    padding: 13px 15px;
  }
  .cr-contract { grid-area: contract; min-width: 0; }
  /* Σε στενή οθόνη το όνομα σπάει σε δεύτερη γραμμή αντί να κόβεται με
     αποσιωπητικά — προτιμότερο να το διαβάσεις ολόκληρο. */
  .case-row-simple .cr-title { white-space: normal; overflow: visible; overflow-wrap: break-word; line-height: 1.3; }
  .cr-price { grid-area: price; text-align: left; color: var(--muted); font-size: var(--fs-xs); font-weight: var(--fw-medium); }
  .cr-status { grid-area: status; align-self: end; text-align: right; }
  .cr-commission { grid-area: commission; text-align: right; color: var(--accent-strong); }
  .case-row-simple.is-settled .cr-commission { color: var(--muted); }
  .cr-mobile-label { display: block; color: var(--muted); font-size: var(--fs-2xs); line-height: 1.15; font-weight: var(--fw-medium); }
  .cr-price .cr-mobile-label { display: inline; margin-right: 4px; }
}

/* Τα ολοκληρωμένα υποχωρούν — γκρι τίτλος, κανένα έντονο στοιχείο. */
/* (Το .list-card-done καταργήθηκε — η υποχώρηση γίνεται ανά γραμμή με
   .case-row-simple.is-settled.) */

@media (max-width: 560px) {
  .year-block { margin-top: 22px; }
  .yh-year { font-size: 1.55rem; }
  .yh-line { font-size: var(--fs-xs); }
  /* Ο τίτλος παίρνει όλο το πλάτος και το ποσό πάει από κάτω, αριστερά. */
  .case-row { padding: 13px 15px; }
  .cr-body { flex-direction: column; align-items: stretch; gap: 7px; }
  .cr-amounts { text-align: left; min-width: 0; display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
  .cr-sub { margin-top: 0; }
}

/* ============ Αρχική: σύντομη εικόνα καταγραφής ============ */
.onboarding-compact {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin-bottom: 18px; padding: 13px 16px;
}
.onboarding-compact > div { display: flex; flex-direction: column; gap: 2px; }
.onboarding-compact span { color: var(--muted); font-size: var(--fs-sm); }
.welcome-head-compact { margin-bottom: 18px; }
.welcome-head-compact p { margin-bottom: 0; }

.home-quick-strip {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
  margin-bottom: 16px;
}
.home-quick-stat {
  display: flex; flex-direction: column; gap: 4px; min-width: 0;
  padding: 16px 17px; color: var(--text); background: var(--surface);
  border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 3px 12px rgba(24, 36, 47, .05);
}
.home-quick-stat:hover { text-decoration: none; border-color: var(--border); transform: translateY(-1px); }
.home-quick-stat > span { color: var(--muted); font-size: var(--fs-xs); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .045em; }
.home-quick-stat > strong { font-size: clamp(1.25rem, 2.5vw, 1.85rem); line-height: 1.1; font-variant-numeric: tabular-nums; }
.home-quick-stat > small { color: var(--muted); font-size: var(--fs-xs); }
.home-quick-stat.is-income > strong { color: var(--ok); }
.home-quick-stat.is-late { background: linear-gradient(135deg, #fff 55%, var(--danger-soft)); border-color: var(--danger-line); }
.home-quick-stat.is-late > strong { color: var(--danger); }

/* Τα Έσοδα έχουν ΤΡΕΙΣ στήλες, οι οφειλέτες δύο ζώνες — άρα το φαρδύ πάει
   δεξιά. Ήταν ανάποδα και η στενή λίστα έπαιρνε τον περισσότερο χώρο. */
.home-main-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(400px, 1.3fr); gap: 16px; align-items: start; }
.home-secondary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.home-panel { padding: 0; overflow: hidden; }
/* Οι παλιές .home-panel-head / .home-record-* / .home-debt-row αντικαταστάθηκαν
   από τα κοινά .panel-head / .record-row / .debt-row στο τέλος του αρχείου. */
.receipt-mini {
  padding: 4px 7px; color: var(--accent-strong); border: 1px solid var(--border);
  border-radius: var(--radius-sm); font-size: var(--fs-2xs); font-weight: var(--fw-bold); white-space: nowrap;
}
.receipt-mini:hover { background: var(--accent-soft); text-decoration: none; }

.home-list-title { margin: 13px 18px 5px; color: var(--muted); font-size: var(--fs-2xs); text-transform: uppercase; letter-spacing: .05em; }
.compact-panel { padding-bottom: 8px; }
.compact-panel-total { display: block; padding: 13px 18px 7px; font-size: var(--fs-2xl); font-variant-numeric: tabular-nums; }
.compact-panel > .subtle { padding: 0 18px; }
.compact-line { display: flex; justify-content: space-between; gap: 12px; padding: 8px 18px; color: var(--text); font-size: var(--fs-xs); }
.compact-line:hover { background: var(--hover); text-decoration: none; }
.compact-line strong { white-space: nowrap; font-variant-numeric: tabular-nums; }

@media (max-width: 980px) {
  .home-main-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .home-quick-strip { grid-template-columns: 1fr 1fr; gap: 9px; }
  .home-quick-stat { padding: 13px 14px; }
  .home-quick-stat.is-late { grid-column: 1 / -1; flex-direction: row; align-items: baseline; justify-content: space-between; }
  .home-quick-stat.is-late small { display: none; }
  .home-secondary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
  .home-quick-stat > strong { font-size: var(--fs-xl); }
}

/* ============ Έσοδα / Μισθοί / Περισσότερα ============ */
.income-year-tabs { margin-bottom: 14px; overflow-x: auto; }
/* Τα τρία ξεχωριστά κουτιά (.income-summary-*) αντικαταστάθηκαν από ένα
   πάνελ με μπάρα — δες «ΕΣΟΔΑ · ΠΑΝΕΛ» στο τέλος του αρχείου. */
.income-page-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(360px, .9fr); gap: 16px; align-items: start; }
.income-side-stack { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ledger-panel { padding: 0; overflow: hidden; }
/* Η επικεφαλίδα είναι πλέον το κοινό .panel-head (τέλος αρχείου). */
.ledger-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 8px 18px; color: var(--text); border-bottom: 1px solid var(--hairline); }
.ledger-row:last-child { border-bottom: 0; }
.ledger-row:hover { background: var(--hover); text-decoration: none; }
.ledger-copy { display: flex; flex-direction: column; min-width: 0; color: var(--text); }
.ledger-copy:hover { text-decoration: none; }
.ledger-copy strong { font-weight: var(--fw-normal); font-size: var(--fs-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ledger-copy small { color: var(--muted); font-size: var(--fs-2xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ledger-money { display: flex; flex-direction: column; align-items: flex-end; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ledger-money strong { font-weight: var(--fw-medium); color: var(--ok); font-size: var(--fs-sm); }
.ledger-money small { color: var(--muted); font-size: var(--fs-2xs); }
/* Οι απαιτήσεις χρησιμοποιούν πλέον το κοινό .debt-row (τέλος αρχείου). */
.income-tools > a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 18px; color: var(--text); border-bottom: 1px solid var(--hairline); font-size: var(--fs-xs); }
.income-tools > a:last-child { border-bottom: 0; }
.income-tools > a:hover { background: var(--hover); text-decoration: none; }
.income-tools b { color: var(--muted); }

.salary-topline { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 18px; align-items: center; margin-bottom: 16px; padding: 15px 18px; }
.salary-topline span { color: var(--muted); font-size: var(--fs-xs); font-weight: var(--fw-bold); }
.salary-topline strong { grid-column: 2; grid-row: 1 / span 2; color: var(--danger); font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.salary-topline small { color: var(--muted); font-size: var(--fs-2xs); }
.salary-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.salary-pair-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 11px 18px; border-bottom: 1px solid var(--hairline); }
.salary-pair-row:last-child { border-bottom: 0; }
.salary-pair-copy { display: flex; flex-direction: column; min-width: 0; color: var(--text); }
.salary-pair-copy:hover { text-decoration: none; }
.salary-pair-copy strong { font-size: var(--fs-sm); }
.salary-pair-copy small { color: var(--muted); font-size: var(--fs-2xs); }
.salary-pair-row > .ledger-money { color: var(--danger); }

.more-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.more-link { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 17px; color: var(--text); }
.more-link:hover { text-decoration: none; border-color: var(--border); transform: translateY(-1px); }
.more-link > span { display: grid; place-items: center; width: 38px; height: 38px; color: var(--accent-strong); background: var(--accent-soft); border-radius: var(--radius-sm); }
.more-link > div { display: flex; flex-direction: column; min-width: 0; }
.more-link strong { font-size: var(--fs-md); }
.more-link small { color: var(--muted); font-size: var(--fs-xs); }
.more-link > b { color: var(--muted); font-size: var(--fs-xl); }

@media (max-width: 1050px) {
  .income-page-grid { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .salary-page-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .ledger-row, .salary-pair-row { padding: 10px 15px; }
  .salary-pair-row { grid-template-columns: minmax(0, 1fr) auto; }
  .salary-pair-row > .receipt-mini { grid-column: 2; }
  .more-grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .mobile-nav a { font-size: var(--fs-2xs); }
  .salary-topline strong { font-size: var(--fs-xl); }
}

/* ==================================================================
   ΚΟΙΝΕΣ ΓΡΑΜΜΕΣ ΚΑΤΑΓΡΑΦΗΣ — μία υλοποίηση, τέσσερις θέσεις.

   Οι ίδιες δύο λίστες ζουν σε Αρχική και Έσοδα. Ήταν γραμμένες τέσσερις
   φορές με διαφορετικά ονόματα κλάσεων και άρχισαν να αποκλίνουν. Εδώ
   ορίζονται ΜΙΑ φορά:

     .panel-head  — μπάντα επικεφαλίδας καρτέλας
     .record-row  — οικονομική εγγραφή: πρόσωπο | ημερομηνία | ποσό
     .debt-row    — οφειλέτης: όνομα + συμβόλαιο | ποσό με κουμπί

   Τα .ledger-* ΔΕΝ αντικαθίστανται εδώ: τα χρησιμοποιούν ακόμη οι Μισθοί
   και η καρτέλα συνεργάτη.
   ================================================================== */

/* --- Μπάντα επικεφαλίδας ---------------------------------------- */
/* Grid τριών στηλών με φάντασμα αριστερά: αλλιώς ο σύνδεσμος δεξιά
   σπρώχνει τον τίτλο εκτός κέντρου και φαίνεται «σχεδόν κεντραρισμένος»,
   που είναι χειρότερο από στοίχιση αριστερά. */
/* Οι κάρτες που τη φιλοξενούν (.home-panel/.ledger-panel) έχουν padding:0 και
   overflow:hidden — άρα ΚΑΜΙΑ αρνητική μαργίνα εδώ, και η γωνία κόβεται από
   τον γονέα. */
.panel-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: var(--surface-soft);
  border-bottom: 1px solid var(--hairline);
  text-align: center;
}
.panel-head > .ph-title { grid-column: 2; min-width: 0; }
/* ΠΡΟΣΟΧΗ: πιο πάνω υπάρχει `.card h2 { display: flex }` για τα εικονίδια
   των καρτών. Σε flex container το `text-align: center` ΔΕΝ κεντράρει το
   κείμενο — γίνεται ανώνυμο flex item και κολλάει αριστερά. Γι' αυτό εδώ
   γυρίζει ρητά σε block. */
.panel-head h2 {
  display: block;
  margin: 0;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--text);
}
.panel-head p { margin: 3px 0 0; color: var(--muted); font-size: var(--fs-xs); }
.panel-head > .ph-link { grid-column: 3; justify-self: end; white-space: nowrap; }

/* --- Οικονομική εγγραφή: τρεις σταθερές στήλες ------------------ */
.record-list { display: flex; flex-direction: column; }
.record-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px minmax(120px, auto);
  align-items: start;
  gap: 14px;
  padding: 8px 18px;
  border-bottom: 1px solid var(--hairline);
  color: var(--text);
}
.record-row:last-child { border-bottom: 0; }
.record-row:hover { text-decoration: none; background: var(--hover); }
.record-row:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
  background: var(--hover);
}
.rr-cell { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.rr-cell strong { font-weight: var(--fw-normal); font-size: var(--fs-md); overflow-wrap: break-word; }
.rr-cell small { color: var(--muted); font-size: var(--fs-xs); overflow-wrap: break-word; }
.rr-money { text-align: right; align-items: flex-end; }
.rr-money strong { font-weight: var(--fw-medium); font-variant-numeric: tabular-nums lining-nums; color: var(--ok); }
.rr-money small { white-space: nowrap; }
/* Η ημερομηνία είναι αναφορά, όχι πρωταγωνιστής: υποχωρεί σε γκρι (§2.16.5). */
.rr-when strong { font-weight: var(--fw-normal); color: var(--muted); }
.activity-row.is-outflow .rr-money strong { color: var(--warm-strong); }
.activity-row.is-neutral .rr-money strong { color: var(--text); }

/* --- Γραμμή οφειλέτη -------------------------------------------- */
.debt-list { display: flex; flex-direction: column; }
.debt-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 8px 18px;
  border-bottom: 1px solid var(--hairline);
}
.debt-row:last-child { border-bottom: 0; }
.debt-row.is-overdue { box-shadow: inset 3px 0 0 var(--danger); }
.dr-copy { display: flex; flex-direction: column; min-width: 0; gap: 2px; color: var(--text); }
.dr-copy:hover { text-decoration: none; }
.dr-copy strong { font-weight: var(--fw-normal); font-size: var(--fs-md); overflow-wrap: break-word; }
.dr-copy small { color: var(--muted); font-size: var(--fs-xs); overflow-wrap: break-word; }
.dr-side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.dr-amount {
  font-weight: var(--fw-medium); font-size: var(--fs-md); white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums; color: var(--warn);
}
.debt-row.is-overdue .dr-amount { color: var(--danger); }

/* --- Κινητό: ΟΙ ΙΔΙΕΣ ΤΡΕΙΣ ΣΤΗΛΕΣ, μικρότερες ------------------
   Ρητό αίτημα ιδιοκτήτη: οι τρεις στήλες μένουν τρεις και στο κινητό.
   Οι δύο δεξιά παίρνουν σταθερό πλάτος ώστε να στοιχίζονται κάθετα και
   να μη «χορεύουν» ανά γραμμή· ο τίτλος παίρνει ό,τι περισσεύει και
   σπάει σε λέξεις. */
@media (max-width: 620px) {
  .panel-head { padding: 11px 14px; }
  .record-row, .debt-row { padding: 10px 14px; }
  .record-row { grid-template-columns: minmax(0, 1fr) 76px 92px; gap: 8px; }
  .rr-cell strong { font-size: var(--fs-sm); }
  .rr-cell small { font-size: var(--fs-2xs); }
  .rr-when strong { font-size: var(--fs-xs); font-weight: var(--fw-medium); color: var(--muted); }
  .rr-when small { font-size: var(--fs-2xs); }
  .rr-money strong { font-size: var(--fs-sm); }
  .rr-money small { font-size: var(--fs-2xs); white-space: normal; }
}
@media (max-width: 380px) {
  .record-row { grid-template-columns: minmax(0, 1fr) 70px 86px; gap: 6px; }
  .rr-money small { font-size: var(--fs-2xs); }
}

/* ==================================================================
   ΕΚΚΡΕΜΟΤΗΤΕΣ ΑΠΟ ΠΡΟΗΓΟΥΜΕΝΑ ΕΤΗ

   Δείκτης, όχι δεύτερος πίνακας της χρονιάς: χωρίς επικεφαλίδα στηλών,
   με δική του λεπτή γραμμή αριστερά σε κεχριμπαρί ώστε να διαβάζεται ως
   «κουβαλήθηκε εδώ», και όχι ως κανονικό περιεχόμενο του έτους.
   ================================================================== */
.carry-block {
  margin: 4px 0 26px;
  padding-left: 18px;
  position: relative;
}
.carry-block::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--warn);
  border-radius: var(--radius-bar);
}
.carry-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 2px 12px;
  margin-bottom: 9px;
}
.carry-head h2 {
  display: block;
  margin: 0;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--warn);
}
.carry-head span { color: var(--muted); font-size: var(--fs-xs); }
.carry-block .list-card { background: var(--surface-soft); }
/* Η σημείωση «Από το 2024 · μένουν X» κάτω από τον τίτλο. */
.cr-from { display: block; margin-top: 3px; color: var(--muted); font-size: var(--fs-xs); }
.case-row-simple.is-carry { align-items: start; }
.case-row-simple.is-carry .cr-title { white-space: normal; }

/* Επιλογέας χρονιάς — ίδιο πρότυπο με τον επιλογέα των Εσόδων. */
.year-tabs { overflow-x: auto; scrollbar-width: none; }
.year-tabs::-webkit-scrollbar { display: none; }
.year-tabs a { font-variant-numeric: lining-nums; }

@media (max-width: 620px) {
  .carry-block { margin: 2px 0 20px; padding-left: 13px; }
  .carry-block::before { width: 3px; }
  .carry-head h2 { font-size: var(--fs-xs); }
}

/* Διακριτικά στατιστικά δίπλα στον αριθμό της χρονιάς. Τα ποσά αφορούν ΤΑ
   ΣΥΜΒΟΛΑΙΑ της χρονιάς, όχι το ταμείο της — γι' αυτό η γραμμή ξεκινά με το
   πλήθος τους (DECISIONS §2.14: ίδια λέξη με άλλο νούμερο σε δύο σελίδες
   διαβρώνει την εμπιστοσύνη). */
/* Ο βασικός κανόνας .year-head (ενότητα «Επικεφαλίδες έτους», τον χρησιμοποιούν
   και τα Έξοδα) έχει justify-content: space-between και θα πετούσε τα στατιστικά
   στη δεξιά άκρη. Εδώ τα θέλουμε ΔΙΠΛΑ στον αριθμό. */
.year-block .year-head {
  display: flex; align-items: baseline; flex-wrap: wrap;
  justify-content: flex-start; gap: 2px 14px;
}
.yh-stats { margin: 0; color: var(--muted); font-size: var(--fs-xs); }
.yh-stats strong { color: var(--text); font-weight: var(--fw-bold); font-variant-numeric: tabular-nums lining-nums; }
.yh-stats strong.due { color: var(--warn); }

@media (max-width: 620px) {
  .year-block .year-head { gap: 0 10px; }
  .yh-stats { font-size: var(--fs-xs); width: 100%; }
}

/* === ΣΥΜΒΟΛΑΙΑ · ΚΙΝΗΤΟ: λιγότερες σειρές πριν τα δεδομένα ===============
   Η αναζήτηση της σελίδας κρύβεται σε στενή οθόνη — η πάνω μπάρα έχει ήδη
   καθολική αναζήτηση που ψάχνει τα ίδια πράγματα. Μένει μόνο το φίλτρο
   κατάστασης, σε πλήρες πλάτος ώστε να πατιέται εύκολα. */
@media (max-width: 760px) {
  .filter-bar .fb-search { display: none; }
  .filter-bar select { width: 100%; }
}
/* === τέλος ΣΥΜΒΟΛΑΙΑ · ΚΙΝΗΤΟ ========================================== */

/* === ΕΣΟΔΑ · ΠΑΝΕΛ ΕΙΣΠΡΑΧΘΕΝΤΩΝ ======================================
   Ένα κουτί αντί για τρία: κύριο νούμερο τα ΚΑΘΑΡΑ, μπάρα αναλογίας,
   γραμμή ανάλυσης. Ο ΦΠΑ παίρνει ΟΥΔΕΤΕΡΟ χρώμα — δεν είναι κέρδος
   (πράσινο) ούτε πρόβλημα (κόκκινο), απλώς περνάει από το ταμείο. */
.income-panel { margin-bottom: 16px; }
.income-panel.is-bare { padding: 15px 18px 4px; }
.ip-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.ip-title { font-size: var(--fs-sm); font-weight: var(--fw-bold); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.ip-count { color: var(--muted); font-size: var(--fs-xs); }
.ip-main {
  display: block; line-height: 1.05;
  font-size: clamp(1.6rem, 4vw, 2.15rem);
  letter-spacing: -.03em; color: var(--ok);
  font-variant-numeric: tabular-nums lining-nums;
}
.ip-main-label { display: block; margin-top: 3px; color: var(--muted); font-size: var(--fs-xs); }
.ip-bar {
  display: flex; height: 8px; margin: 12px 0 9px;
  border-radius: var(--radius-bar); overflow: hidden; background: var(--hairline);
}
.ip-bar-net { background: var(--ok); }
.ip-legend { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: var(--fs-xs); color: var(--muted); }
.ip-legend strong { color: var(--text); font-weight: var(--fw-bold); font-variant-numeric: tabular-nums lining-nums; }
.ip-dot { display: inline-block; width: 8px; height: 8px; border-radius: var(--radius-bar); margin-right: 6px; }
.ip-dot-net { background: var(--ok); }
.ip-dot-vat { background: var(--hairline); }
.ip-gross { margin-left: auto; }

@media (max-width: 620px) {
  .income-panel.is-bare { padding: 13px 15px 4px; }
  .ip-gross { margin-left: 0; width: 100%; }
}
/* === τέλος ΕΣΟΔΑ · ΠΑΝΕΛ ============================================== */
