/* ΉΘΟΣ — Aegean Modernism. Light is the working skin (offices, daylight); dark is the harbor-night skin. */

:root{
  /* Το μολύβι της «επεξεργασίας» ζει εδώ ως μάσκα: ένα σχήμα, ένα χρώμα ανά θέση. */
  --pen-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19.5 8.5a2.5 2.5 0 0 0-3.5-3.5L4.5 16.5V20z'/%3E%3Cpath d='M14.5 6.5l3.5 3.5'/%3E%3C/svg%3E");
  --ground:#f2f5f5;
  --panel:#fbfdfd;
  --panel-2:#eef3f4;
  --navy:#00396e;
  --navy-deep:#002a52;
  --navy-tint:#dce9f4;
  --on-navy:#ffffff;
  --on-navy-dim:#a8c6e0;
  --ink:#14232f;
  --muted:#54677a;
  --rule:#cfdadc;
  --rule-soft:#e2e9ea;
  --gold:#f2b705;
  --gold-ink:#7d5f00;
  --gold-soft:#fdeeca;
  --ok:#25634a;
  --ok-soft:#ddeee6;
  --danger:#a33c2f;
  --danger-soft:#f6e3df;
  --focus:#0b63a8;
  --shadow:0 1px 3px rgba(0,42,82,.10);
  --shadow-float:0 14px 40px rgba(0,42,82,.25);
  --font:'Commissioner',system-ui,-apple-system,'Segoe UI',sans-serif;
  --didot:'GFS Didot',Georgia,serif;
}
:root[data-theme="dark"]{
  --ground:#0d1621;
  --panel:#152230;
  --panel-2:#1a2938;
  --navy:#8ec1e8;
  --navy-deep:#002a52;
  --navy-tint:#1d3350;
  --on-navy:#f2f6f9;
  --on-navy-dim:#8fb2cf;
  --ink:#e8eef3;
  --muted:#93a8bb;
  --rule:#2a3b4c;
  --rule-soft:#20303f;
  --gold:#f4c440;
  --gold-ink:#f4c440;
  --gold-soft:#332a12;
  --ok:#7fc9a5;
  --ok-soft:#173328;
  --danger:#e08a7d;
  --danger-soft:#3b201b;
  --focus:#7db8e8;
  --shadow:0 1px 3px rgba(0,0,0,.45);
  --shadow-float:0 14px 40px rgba(0,0,0,.55);
}

*{box-sizing:border-box}
html{height:100%}
body{
  margin:0;min-height:100%;
  background:var(--ground);color:var(--ink);
  font-family:var(--font);font-size:15.5px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--gold);color:#14232f}
:focus-visible{outline:2.5px solid var(--focus);outline-offset:2px;border-radius:3px}
button, input, select, textarea{font:inherit;color:inherit}
input, select, textarea{caret-color:var(--gold-ink)}
/* Βάση για ΚΑΘΕ πεδίο, ακόμη κι αν δεν έχει τη δική του κλάση. Χωρίς αυτό, ένα
   νέο input ή select πέφτει στα προεπιλεγμένα του browser — λευκό φόντο μέσα σε
   σκούρο θέμα, με ανοιχτό κείμενο από πάνω, δηλαδή αόρατο. Είναι κανόνας
   στοιχείου (specificity 0,0,1), οπότε κάθε υπάρχουσα κλάση εξακολουθεί να νικά. */
input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=file]),
select, textarea{
  background:var(--panel);color:var(--ink);
  border:1px solid var(--rule);border-radius:3px;padding:9px 11px;font-size:14px;
}
input::placeholder, textarea::placeholder{color:var(--muted);opacity:1}
* { scrollbar-width: thin; scrollbar-color: var(--rule) transparent; }
/* Το hidden πρέπει να νικά κάθε display: κλάσεις όπως .field{display:flex}
   αλλιώς υπερισχύουν του προεπιλεγμένου κανόνα του browser και το πεδίο μένει ορατό. */
[hidden]{display:none !important}

/* ===== masthead ===== */
.masthead{background:var(--navy-deep);color:var(--on-navy);position:sticky;top:0;z-index:48;box-shadow:var(--shadow)}
.masthead-inner{max-width:1280px;margin:0 auto;padding:0 22px;display:flex;align-items:stretch;gap:22px;min-height:60px}
.wordmark{font-family:var(--didot);font-size:25px;letter-spacing:.02em;color:var(--on-navy);display:flex;align-items:center;text-decoration:none}
.wordmark small{font-family:var(--font);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--on-navy-dim);margin-left:12px;padding-left:12px;border-left:1px solid rgba(255,255,255,.22);align-self:center;padding-top:2px}
.mainnav{display:flex;align-items:stretch;justify-content:center;justify-content:safe center;gap:8px;flex:1;position:relative}
.mainnav a{
  display:flex;align-items:center;padding:0 14px;color:var(--on-navy-dim);
  white-space:nowrap;text-decoration:none;position:relative;cursor:pointer;
}
.mainnav a svg{width:23px;height:23px}
.mainnav a:hover{color:var(--on-navy)}
.mainnav a.on{color:var(--on-navy)}
.mainnav a.on::after{
  content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;background:var(--gold);
}
/* ετικέτα ονόματος στο πέρασμα του δείκτη (τα link είναι πλέον εικονίδια) */
.mainnav a::before{
  content:attr(data-tip);position:absolute;top:calc(100% + 3px);left:50%;
  transform:translateX(-50%) translateY(-3px);
  background:var(--navy-deep);color:var(--on-navy);border:1px solid rgba(255,255,255,.22);
  font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 9px;border-radius:2px;white-space:nowrap;
  opacity:0;pointer-events:none;box-shadow:var(--shadow);z-index:60;
  transition:opacity .14s ease-out .12s, transform .14s ease-out .12s;
}
.mainnav a:hover::before, .mainnav a:focus-visible::before{opacity:1;transform:translateX(-50%) translateY(0)}
.mast-actions{display:flex;align-items:center;gap:8px}
.iconbtn{
  background:transparent;border:1px solid rgba(255,255,255,.25);color:var(--on-navy);
  width:34px;height:34px;border-radius:3px;display:grid;place-items:center;cursor:pointer;
  transition:background .18s ease-out;
}
.iconbtn:hover{background:rgba(255,255,255,.12)}
.iconbtn svg{width:17px;height:17px}

/* ===== layout ===== */
.page{max-width:1280px;margin:0 auto;padding:26px 22px 90px}
.pagehead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:2px 0 20px}
.pagehead h1{font-size:23px;font-weight:800;letter-spacing:-.015em;margin:0}
.pagehead .sub{color:var(--muted);font-size:13.5px;margin-top:2px}

/* ===== buttons ===== */
.btn{
  display:inline-flex;align-items:center;gap:8px;border:none;border-radius:3px;cursor:pointer;
  padding:9px 16px;font-size:13.5px;font-weight:700;letter-spacing:.02em;
  transition:transform .12s ease-out, filter .18s ease-out;
  text-decoration:none;
}
.btn:active{transform:translateY(1px)}
.btn svg{width:16px;height:16px}
.btn-gold{background:var(--gold);color:#14232f}
.btn-gold:hover{filter:brightness(1.05)}
.btn-navy{background:var(--navy-deep);color:#fff}
:root[data-theme="dark"] .btn-navy{background:var(--navy-tint);color:var(--on-navy)}
.btn-navy:hover{filter:brightness(1.15)}
.btn-quiet{background:transparent;color:var(--navy);border:1px solid var(--rule);font-weight:600}
.btn-quiet:hover{background:var(--panel-2)}
.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--rule);font-weight:600}
.btn-danger:hover{background:var(--danger-soft)}
/* Οπλισμένο: το κουμπί ρωτάει «Σίγουρα;» και περιμένει το δεύτερο κλικ. */
.btn-danger.armed{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn-danger.armed:hover{background:var(--danger);filter:brightness(1.08)}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* ===== stat band (departures board) ===== */
.statband{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));
  background:var(--panel);border:1px solid var(--rule);border-radius:2px;overflow:hidden;box-shadow:var(--shadow);
}
.stat{padding:18px 22px 16px;border-right:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}
.stat:last-child{border-right:none}
/* Πλακίδια που είναι σύνδεσμοι: το νούμερο οδηγεί στη λίστα που το παράγει */
a.stat{text-decoration:none;color:inherit;transition:background .12s ease-out}
a.stat:hover{background:var(--panel-2)}
.stat .n.ok{color:var(--ok)}
.label{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.stat .n{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums;margin-top:4px}
.stat .n.gold{color:var(--gold-ink)}
.stat .cmp{font-size:13px;color:var(--muted);margin-top:2px}
.stat .cmp b{color:var(--ok);font-weight:700}
.stat .cmp b.down{color:var(--danger)}

/* ===== panels & tables ===== */
.panel{background:var(--panel);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow);overflow:hidden}
.panel + .panel{margin-top:18px}
.statband + .panel{margin-top:18px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 20px;border-bottom:2.5px solid var(--navy);box-shadow:inset 0 -5px 0 -4px var(--rule)}
:root[data-theme="dark"] .panel-head{border-bottom-color:var(--navy)}
.panel-head h2{font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin:0;color:var(--ink)}
.panel-body{padding:18px 20px}
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th{
  text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);padding:11px 20px 9px;border-bottom:2.5px solid var(--navy);
  box-shadow:inset 0 -5px 0 -4px var(--rule);white-space:nowrap;
}
td{padding:10px 20px;border-bottom:1px solid var(--rule-soft);font-variant-numeric:tabular-nums;vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr{cursor:default;transition:background .15s ease-out}
tbody tr.rowlink{cursor:pointer}
tbody tr.rowlink:hover{background:var(--panel-2)}
/* Ό,τι ανοίγει σε επεξεργασία το λέει: ένα μολύβι στο τέλος της γραμμής,
   σβηστό όσο δεν το κοιτάς, χρυσό όταν το δείχνεις. Ο χώρος κρατιέται και στην
   επικεφαλίδα, ώστε τα ποσά της τελευταίας στήλης να μένουν στοιχισμένα. */
tbody tr.rowedit td:last-child{position:relative;padding-right:32px}
table:has(tbody tr.rowedit) thead th:last-child{padding-right:32px}
tbody tr.rowedit td:last-child::after{
  content:'';position:absolute;right:10px;top:50%;width:14px;height:14px;margin-top:-7px;
  background:var(--muted);opacity:.45;transition:opacity .12s,background .12s;
  -webkit-mask:var(--pen-mask) no-repeat center/contain;mask:var(--pen-mask) no-repeat center/contain;
}
tbody tr.rowedit:hover td:last-child::after,
tbody tr.rowedit:focus-within td:last-child::after{background:var(--gold);opacity:1}
.editmark{display:inline-flex;align-items:center;color:var(--gold);margin-right:8px;vertical-align:-2px}
.editmark svg{width:14px;height:14px}
tr.rowfocus>td{background:var(--gold-soft)}
th.r, td.r{text-align:right}
td .sub{display:block;font-size:12px;color:var(--muted)}
.amount{font-weight:700;color:var(--ink);white-space:nowrap}
td.r{white-space:nowrap}

/* status pills */
.pill{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:3px 9px;border-radius:4px}
.pill.issued{background:var(--ok-soft);color:var(--ok)}
.pill.draft{background:var(--gold-soft);color:var(--gold-ink)}
.pill.cancelled{background:var(--danger-soft);color:var(--danger)}
.pill.due{background:var(--navy-tint);color:var(--navy)}
/* Χαμένο κλειδί: δεν είναι «δεν ρυθμίστηκε», είναι «ήταν και χάθηκε». Η
   διαφορά μετράει, γιατί αλλιώς το ανακαλύπτεις όταν αποτύχει η διαβίβαση.
   Το σήμα το δίνει η απόχρωση του φόντου και η ράγα από πάνω — το ίδιο ιδίωμα
   με τις κεφαλίδες των πινάκων, όχι χρωματιστή μπάρα στο πλάι. */
.keylost{margin:8px 0 0;padding:11px 13px;background:var(--danger-soft);
  border-top:2.5px solid var(--danger);box-shadow:inset 0 5px 0 -4px var(--danger-soft);
  font-size:13px;max-width:62ch}

/* ===== two-col dash ===== */
.dashgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;margin-top:18px}
@media (max-width:900px){ .dashgrid{grid-template-columns:minmax(0,1fr)} }

/* deadlines list */
.deadline{display:flex;gap:14px;align-items:baseline;padding:11px 20px;border-bottom:1px solid var(--rule-soft)}
.deadline:last-child{border-bottom:none}
.deadline .d{font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:86px}
.deadline .t{font-size:13.5px}
.deadline .t small{display:block;color:var(--muted);font-size:12px}

/* σημείωση: ο προμηθευτής στέλνει ηλεκτρονικά τιμολόγια */
.einnote{margin-bottom:18px;border-left:none}
.einnote .panel-body b{font-size:14px}
.einnote .panel-body p{margin:5px 0 0;color:var(--muted);font-size:13.5px;line-height:1.55;max-width:80ch}

/* πεδία ημερομηνίας σε ρητή σειρά (ΗΗ/ΜΜ ή ΜΜ/ΗΗ) */
.datewrap{display:block;position:relative}
.filters .datewrap,.bulkbar .datewrap,.settleform .datewrap{display:inline-block}
.datewrap .dtxt{font-variant-numeric:tabular-nums;letter-spacing:.02em;width:100%;padding-right:38px}
.filters .datewrap .dtxt,.bulkbar .datewrap .dtxt,.settleform .datewrap .dtxt{width:126px}
.dtxt.bad{border-color:var(--danger)}
/* Εικονίδιο ημερολογίου μέσα στο πεδίο: δείχνει ότι υπάρχει ημερολόγιο και το
   ανοίγει. Το input[type=date] που το ανοίγει μένει εκτός οθόνης, αγκυρωμένο
   κάτω αριστερά ώστε το αναδυόμενο ημερολόγιο να βγαίνει στη σωστή θέση. */
.datewrap .dtcal{
  position:absolute;top:50%;right:1px;transform:translateY(-50%);
  display:flex;align-items:center;justify-content:center;
  width:34px;height:calc(100% - 4px);padding:0;
  background:none;border:0;border-radius:0 3px 3px 0;cursor:pointer;color:var(--muted);
}
.datewrap .dtcal svg{width:17px;height:17px}
.datewrap .dtcal:hover{color:var(--navy)}
.datewrap .dpick{
  position:absolute;left:10px;bottom:0;width:1px;height:1px;
  padding:0;margin:0;border:0;opacity:0;pointer-events:none;
}

/* μαζική επιλογή στη λίστα παραστατικών */
.c-pick{width:34px;text-align:center}
.c-pick input{width:16px;height:16px;accent-color:var(--navy);cursor:pointer;vertical-align:middle}
:root[data-theme="dark"] .c-pick input{accent-color:var(--gold)}
.bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:11px 16px;background:var(--panel-2);border-bottom:1px solid var(--rule-soft)}
.bulkbar .n{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;margin-right:auto}
.bulkbar input,.bulkbar select{background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-radius:3px;padding:7px 9px;font-size:13px}
.bulkbar input:focus,.bulkbar select:focus{border-color:var(--focus);outline:none}
.bulkbar .btn{padding:7px 12px;font-size:13px}
@media print{.bulkbar,.c-pick{display:none !important}}

/* εξόφληση παραστατικού */
.settle{margin-top:18px}
.settle .panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.settlesum{display:flex;flex-wrap:wrap;gap:10px 28px;padding-bottom:13px;border-bottom:2.5px solid var(--navy);box-shadow:inset 0 -5px 0 -4px var(--rule)}
.settlesum div{display:flex;flex-direction:column;gap:2px}
.settlesum span{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.settlesum b{font-size:15.5px;font-variant-numeric:tabular-nums}
.settlesum .rest{margin-left:auto;text-align:right}
.settlesum .rest b{font-size:22px}
.settlesum b.due{color:var(--danger)}
.settlelist{margin-top:12px}
.settlerow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--rule-soft);font-size:13.5px}
.settlerow:last-child{border-bottom:none}
.settlerow .d{font-variant-numeric:tabular-nums;color:var(--muted);min-width:82px}
.settlerow .a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settlerow b{font-variant-numeric:tabular-nums;color:var(--ok)}
.settleform{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.settleform input,.settleform select{background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-radius:3px;padding:8px 10px;font-size:13.5px}
.settleform input:focus,.settleform select:focus{border-color:var(--focus);outline:none}
.settleform #s_amount{width:120px;text-align:right;font-variant-numeric:tabular-nums}
.settleform select{flex:1;min-width:150px}
.settlehint{margin:9px 0 0;font-size:12px;color:var(--muted);line-height:1.45}

/* ταμειακοί λογαριασμοί */
.accstrip{margin-bottom:18px}
.accstrip .panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.accbal{display:flex;flex-wrap:wrap;background:var(--panel)}
.accbalcard{flex:1 1 180px;min-width:0;padding:13px 16px;border-right:1px solid var(--rule-soft);border-top:1px solid var(--rule-soft);margin-top:-1px}
.accbalcard:last-child{border-right:none}
.accbalcard .k{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.accbalcard .n{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums;margin-top:3px}
.accbalcard .n.neg{color:var(--danger)}
.accbalcard .m{font-size:11.5px;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}
.accrow{border:1px solid var(--rule-soft);border-radius:2px;padding:10px 12px;margin-bottom:10px}
.accrow.off{opacity:.55}
.accmain{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.2fr) 110px auto;gap:8px;align-items:center}
.accmain input,.accmain select{background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:7px 9px;font-size:13.5px;min-width:0;width:100%}
.accmain .accopen{text-align:right;font-variant-numeric:tabular-nums}
.accmain2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;margin-top:8px}
.accmain2 .check{white-space:nowrap;font-size:12.5px;color:var(--ink);display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.accmain2 .check input{width:15px;height:15px;accent-color:var(--navy);cursor:pointer}
:root[data-theme="dark"] .accmain2 .check input{accent-color:var(--gold)}
.accmeta{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:7px;font-size:12px;color:var(--muted)}
.accmeta b{font-variant-numeric:tabular-nums;color:var(--ink)}
.accform{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.accform input,.accform select{background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-radius:3px;padding:8px 10px;font-size:13.5px}
.accform input{flex:1;min-width:180px}
.accform input::placeholder{color:var(--muted)}
.accform input:focus,.accform select:focus,.accmain input:focus,.accmain select:focus{border-color:var(--focus);outline:none}
.accmain input,.accmain select{color:var(--ink)}
.accmain input::placeholder{color:var(--muted)}
@media (max-width:640px){
  .accmain{grid-template-columns:minmax(0,1fr) auto;grid-auto-rows:auto}
  .accmain .acciban,.accmain .accopen{grid-column:1 / -1}
}

/* θέση ΦΠΑ τριμήνου */
.vatpos .panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.vatpos .panel-head .sub{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.vatrow{display:grid;grid-template-columns:minmax(0,1fr) 64px auto;align-items:center;gap:10px;font-size:13px;margin-bottom:8px}
.vatrow i{height:6px;border-radius:2px;background:var(--rule);transform-origin:left;display:block}
.vatrow i.out{background:var(--navy)}
.vatrow i.in{background:var(--gold)}
.vatrow b{font-variant-numeric:tabular-nums;font-size:13.5px;white-space:nowrap}
.vatsum{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:12px;padding-top:11px;border-top:2.5px solid var(--navy);box-shadow:inset 0 5px 0 -4px var(--rule)}
.vatsum .label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.vatsum .n{font-size:23px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--danger)}
.vatsum.credit .n{color:var(--ok)}
.vatwhen{margin:9px 0 0;font-size:12.5px;color:var(--muted)}
.vatnotes{margin:10px 0 0;padding-left:16px;font-size:12.5px;color:var(--ink);line-height:1.5}
.vatnotes li{margin-bottom:3px}
.vatdisc{margin:12px 0 0;font-size:11.5px;color:var(--muted);line-height:1.45}

/* debtors */
.debtor{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 20px;border-bottom:1px solid var(--rule-soft);font-size:14px}
a.debtor{color:inherit;text-decoration:none;position:relative;padding-right:36px}
a.debtor:hover,a.debtor:focus-visible{background:var(--panel-2)}
a.debtor::after{
  content:'';position:absolute;right:14px;top:50%;width:14px;height:14px;margin-top:-7px;
  background:var(--muted);opacity:.45;transition:opacity .12s,background .12s;
  -webkit-mask:var(--pen-mask) no-repeat center/contain;mask:var(--pen-mask) no-repeat center/contain;
}
a.debtor:hover::after,a.debtor:focus-visible::after{background:var(--gold);opacity:1}
.debtor:last-child{border-bottom:none}
.debtor b{font-variant-numeric:tabular-nums;color:var(--danger)}

/* ===== forms ===== */
.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:14px 16px}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{
  background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:9px 11px;font-size:14px;
  transition:border-color .15s ease-out;color:var(--ink);width:100%;
}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--muted)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}
.field .err{color:var(--danger);font-size:13px}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:1}
.formfoot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}
.field.wide,.formfoot.wide{grid-column:1/-1}
.field label.check{display:inline-flex;align-items:center;gap:7px;text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:600;color:var(--ink)}
.field label.check input{width:15px;height:15px;accent-color:var(--navy);cursor:pointer}
:root[data-theme="dark"] .field label.check input{accent-color:var(--gold)}

/* doc editor lines */
.lines th{padding-left:12px;padding-right:12px}
.lines td{padding:6px 12px}
.lines input,.lines select{
  background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:7px 9px;font-size:13.5px;width:100%;
  font-variant-numeric:tabular-nums;
}
.lines input:focus,.lines select:focus{border-color:var(--focus);outline:none}
.lines .num{text-align:right}
.linetotals{display:flex;justify-content:flex-end;gap:34px;padding:14px 20px;border-top:2px solid var(--navy);font-variant-numeric:tabular-nums}
.linetotals div{text-align:right}
.linetotals .label{margin-bottom:2px}
.linetotals .v{font-size:19px;font-weight:800;color:var(--navy)}
.linetotals .v.g{color:var(--gold-ink);font-size:23px}

/* 1.2.3: ανάλυση γραμμής και πρόσθετα στοιχεία παραστατικού (πρότυπα Print forms) */
.lactsin{display:flex;gap:2px;justify-content:flex-end;align-items:center}
.xmore{background:transparent;border:1px solid transparent;color:var(--muted);cursor:pointer;padding:3px 8px;border-radius:3px;font-size:16px;line-height:1;font-weight:800}
.xmore:hover{color:var(--navy);background:var(--navy-tint)}
.xmore.on{color:var(--navy);border-color:var(--rule)}
.xmore:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.lines tr.ldet>td{background:var(--panel-2);padding:10px 12px 14px}
.ldetgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:10px 14px}
.ldetgrid .field.wide{grid-column:1/-1}
.ldetgrid textarea{min-height:52px;resize:vertical}
.xsecs{border-top:1px solid var(--rule-soft)}
.xsec{border-bottom:1px solid var(--rule-soft)}
.xsec>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:13px 20px;cursor:pointer;list-style:none}
.xsec>summary::-webkit-details-marker{display:none}
.xsec>summary::before{content:'';width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);margin-right:4px;align-self:center;transition:transform .15s ease}
.xsec[open]>summary::before{transform:rotate(45deg)}
.xsec>summary:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.xsec_t{font-weight:700;font-size:14px;color:var(--ink)}
.xsec_h{font-size:12.5px;color:var(--muted)}
.xsec_b{padding:2px 20px 18px}
.xadj{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(0,1.6fr) minmax(0,1.2fr) 112px 34px;gap:8px;align-items:center;margin-bottom:8px}
.xadj select,.xadj input{background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:7px 9px;font-size:13.5px;width:100%;min-width:0;color:var(--ink)}
.xadj input.num{text-align:right;font-variant-numeric:tabular-nums}
.xadj select:focus,.xadj input:focus{border-color:var(--focus);outline:none}
.xa_calc{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy);padding-right:9px}
.xparties{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}
.xparties fieldset{border:1px solid var(--rule);border-radius:4px;padding:10px 12px 12px;margin:0;min-width:0}
.xparties legend{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);padding:0 6px}
.xparties .formgrid{grid-template-columns:minmax(0,1fr)}
.linesbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:12px 20px 4px}
.linesbar .sub{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.xnotes{padding-top:14px}
.xnotes textarea{min-height:52px;resize:vertical}
@media (max-width:640px){
  .xadj{grid-template-columns:minmax(0,1fr) 34px;padding:8px 0;border-bottom:1px solid var(--rule-soft)}
  .xadj .xa_kind,.xadj .xa_cat,.xadj .xa_label{grid-column:1/-1}
  .xadj .xa_calc{text-align:left;padding-left:2px}
  .xsec>summary{padding:13px 16px}
  .xsec_b{padding:2px 16px 16px}
  .page table.lines>tbody>tr>td.lacts .lactsin{justify-content:flex-end}
  .page table.lines>tbody>tr.ldet>td{display:block;padding:10px 12px}
  .linetotals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;padding:14px 16px}
  .linetotals>div:last-child{grid-column:1/-1;border-top:1px solid var(--rule-soft);padding-top:10px}
}

/* remove-line button */
.xline{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:3px;display:grid;place-items:center}
.xline:hover{color:var(--danger);background:var(--danger-soft)}
.xline svg{width:15px;height:15px}

/* ===== issuance (timologio helper) ===== */
.issue-steps{counter-reset:step;display:flex;flex-direction:column}
.istep{display:flex;gap:16px;padding:16px 20px;border-bottom:1px solid var(--rule-soft)}
.istep:last-child{border-bottom:none}
.istep::before{
  counter-increment:step;content:counter(step);
  width:26px;height:26px;border-radius:50%;background:var(--navy-tint);color:var(--navy);
  font-weight:800;font-size:13px;display:grid;place-items:center;flex-shrink:0;margin-top:1px;
}
.istep .body{flex:1;min-width:0}
.istep h3{margin:0 0 3px;font-size:14px;font-weight:700}
.istep p{margin:0;color:var(--muted);font-size:13.5px}
.copyrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px;background:var(--panel-2);border:1px solid var(--rule-soft);border-radius:2px;margin-top:8px;font-size:13.5px}
.copyrow code{font-family:var(--font);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.copybtn{background:transparent;border:1px solid var(--rule);border-radius:3px;padding:4px 10px;font-size:12px;font-weight:700;cursor:pointer;color:var(--navy);flex-shrink:0}
.copybtn:hover{background:var(--navy-tint)}
.copybtn.copied{background:var(--ok-soft);color:var(--ok);border-color:transparent}

/* the seal */
.seal{
  display:inline-block;border:3px solid var(--ok);color:var(--ok);border-radius:3px;
  font-weight:800;font-size:15px;letter-spacing:.14em;text-transform:uppercase;
  padding:7px 18px;transform:rotate(-4deg);
}
@media (prefers-reduced-motion: no-preference){
  .seal.setting{animation:sealset .42s cubic-bezier(.2,1.4,.4,1) both}
  @keyframes sealset{
    0%{opacity:0;transform:rotate(-14deg) scale(2.1)}
    100%{opacity:1;transform:rotate(-4deg) scale(1)}
  }
}

/* ===== document view (print-friendly) ===== */
.docsheet{max-width:820px}
.docsheet .head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:22px 24px;background:var(--navy-deep)}
.docsheet .head .who .wm{font-family:var(--didot);font-size:22px;color:#ffffff}
.docsheet .head .who p{margin:2px 0 0;font-size:13px;color:var(--on-navy-dim)}
.docsheet .head .what{text-align:right}
.docsheet .head .what .series{font-size:19px;font-weight:800;color:var(--gold)}
.docsheet .head .what p{margin:2px 0 0;font-size:13px;color:var(--on-navy-dim);font-variant-numeric:tabular-nums}

/* ===== empty states ===== */
.empty{padding:44px 24px;text-align:center;color:var(--muted)}
.empty svg{width:42px;height:42px;color:var(--rule);margin-bottom:10px}
.empty p{margin:0 0 4px;font-weight:600;color:var(--ink)}
.empty small{display:block;margin-bottom:14px}

/* ===== setup wizard ===== */
.setup{max-width:660px;margin:40px auto}
.setup .mark{font-family:var(--didot);font-size:44px;color:var(--navy);text-align:center}
.setup .tag{text-align:center;color:var(--muted);font-size:14px;margin:2px 0 26px;font-style:italic}
.modecards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px;margin-top:6px}
.modecard{
  border:1.5px solid var(--rule);border-radius:2px;padding:14px;cursor:pointer;background:var(--panel);
  transition:border-color .15s ease-out;
}
.modecard:hover{border-color:var(--muted)}
.modecard.on{border-color:var(--gold);background:var(--gold-soft)}
.modecard b{display:block;font-size:14px;margin-bottom:4px}
.modecard span{font-size:13px;color:var(--muted);line-height:1.45;display:block}

/* toast */
.toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);
  background:var(--navy-deep);color:#fff;padding:11px 20px;border-radius:3px;font-size:14px;font-weight:600;
  box-shadow:var(--shadow);z-index:50;
}
.toast.err{background:var(--danger)}
@media (prefers-reduced-motion: no-preference){
  .toast{animation:toastin .25s ease-out}
  @keyframes toastin{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
}

/* skeleton loading */
.skel{position:relative;overflow:hidden;background:var(--rule-soft);border-radius:2px;min-height:14px}
@media (prefers-reduced-motion: no-preference){
  .skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
    background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--panel) 60%,transparent),transparent);
    animation:shimmer 1.2s infinite}
  @keyframes shimmer{100%{transform:translateX(100%)}}
}

/* search input */
.search{position:relative;min-width:220px}
.search input{width:100%;background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:8px 11px;font-size:14px}
/* Ο γενικός κανόνας για τα input έχει μεγαλύτερη ειδικότητα από το «.search input»:
   χωρίς την ίδια αλυσίδα :not(), το κείμενο έμπαινε κάτω από τον μεγεθυντικό φακό. */
.search input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]){padding-left:34px}
.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted)}
.search input:focus{border-color:var(--focus);outline:none}

/* responsive masthead */
@media (max-width:1400px){ .wordmark small{display:none} }
@media (max-width:1100px){
  .masthead-inner{flex-wrap:wrap;padding-bottom:0}
  .wordmark{padding:10px 0 6px}
  .wordmark small{display:none}
  .mast-actions{margin-left:auto}
  .mainnav{order:3;flex-basis:100%;overflow-x:auto;scrollbar-width:none}
  .mainnav a{padding:12px 11px;white-space:nowrap}
}
@media (max-width:900px){
  table.t-recent th:nth-child(2), table.t-recent td:nth-child(2){display:none}
  /* δευτερεύουσες στήλες (καθαρή αξία, ΦΠΑ): σημαδεμένες με κλάση, ώστε να μη
     χαλάει η απόκρυψη κάθε φορά που προστίθεται στήλη */
  .t-docs .c-sec{display:none}
}
@media (max-width:640px){
  .page{padding:18px 14px 70px}
  .statband{grid-template-columns:minmax(0,1fr)}
  .stat{border-right:none;border-bottom:1px solid var(--rule-soft)}
  .stat:last-child{border-bottom:none}
  .formfoot{justify-content:stretch}
  .formfoot .btn{flex:1;justify-content:center}
}

@media print{
  .masthead,.pagehead .actions,.btn,.noprint{display:none !important}
  body{background:#fff}
  .panel{box-shadow:none;border-color:var(--rule)}
}

/* ===== news ===== */
.newsitem{display:flex;gap:16px;align-items:baseline;padding:12px 20px;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:var(--ink);transition:background .15s ease-out}
.newsitem:last-child{border-bottom:none}
.newsitem:hover{background:var(--panel-2)}
.newsitem .ndate{font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:86px;font-size:13.5px}
.newsitem .nbody{flex:1;min-width:0}
.newsitem .nbody b{font-weight:600;font-size:14px;line-height:1.4}
.newsitem .nbody small{display:block;color:var(--muted);font-size:13px;margin-top:2px;line-height:1.45}
.newsitem .nsrc{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
@media (max-width:640px){ .newsitem .nsrc{display:none} .newsitem .ndate{min-width:auto} }

/* ===== calculator ===== */
#calcpop{
  position:fixed;top:66px;right:18px;z-index:60;width:264px;
  background:var(--panel);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow-float);
  padding:12px;
}
.calc-display{
  background:var(--navy-deep);color:#fff;font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;
  text-align:right;padding:12px 14px;border-radius:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  margin-bottom:10px;letter-spacing:.01em;
}
.calc-vatrow{display:flex;gap:6px;margin-bottom:10px}
.calc-vatrow select{flex:0 0 58px;border:1px solid var(--rule);border-radius:3px;background:var(--panel);padding:5px;font-size:13px}
.calc-vatrow button{
  flex:1;border:1px solid var(--rule);background:var(--panel-2);border-radius:3px;padding:6px 4px;
  font-size:12px;font-weight:700;cursor:pointer;color:var(--navy);
}
.calc-vatrow button:hover{background:var(--navy-tint)}
.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.calc-grid button{
  border:1px solid var(--rule);background:var(--panel);border-radius:3px;padding:11px 0;
  font-size:16px;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums;
  transition:background .12s ease-out;
}
.calc-grid button:hover{background:var(--panel-2)}
.calc-grid button:active{transform:translateY(1px)}
.calc-grid .calc-op{background:var(--navy-tint);color:var(--navy);font-weight:800}
.calc-grid .calc-eq{background:var(--gold);color:#14232f;font-weight:800;border-color:transparent}
.calc-grid .calc-eq:hover{filter:brightness(1.05)}
.calc-hint{font-size:10.5px;color:var(--muted);margin-top:9px;text-align:center}
@media (max-width:480px){ #calcpop{right:8px;left:8px;width:auto} }

/* ===== calculator header (draggable) ===== */
.calc-head{
  display:flex;justify-content:space-between;align-items:center;
  margin:-12px -12px 10px;padding:8px 8px 8px 12px;cursor:grab;user-select:none;touch-action:none;
  border-bottom:1px solid var(--rule-soft);
}
.calc-head:active{cursor:grabbing}
.calc-head span{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.calc-x{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:5px;border-radius:3px;display:grid;place-items:center}
.calc-x:hover{color:var(--danger);background:var(--danger-soft)}
.calc-x svg{width:14px;height:14px}

/* ===== side tab + drawer (tasks & notes) ===== */
#sidetab{
  position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:55;
  writing-mode:vertical-rl;background:var(--navy-deep);color:#fff;border:none;cursor:pointer;
  padding:14px 7px;border-radius:3px 0 0 3px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  box-shadow:var(--shadow);transition:transform .15s ease-out;
}
#sidetab:hover{transform:translateY(-50%) translateX(-4px)}
#drawer{
  position:fixed;top:0;right:0;bottom:0;width:330px;max-width:92vw;z-index:56;
  background:var(--panel);border-left:1px solid var(--rule);box-shadow:var(--shadow-float);
  display:flex;flex-direction:column;
}
@media (prefers-reduced-motion: no-preference){
  #drawer{animation:drawerin .22s ease-out}
  @keyframes drawerin{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
}
.drawer-head{
  display:flex;justify-content:space-between;align-items:center;padding:14px 12px 13px 18px;
  border-bottom:2.5px solid var(--navy);box-shadow:inset 0 -5px 0 -4px var(--rule);
}
.drawer-head h2{font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin:0}
.drawer-body{padding:16px 18px;overflow-y:auto;flex:1}
.task-add{display:flex;gap:8px;margin-bottom:10px}
.task-add input{flex:1;background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:8px 10px;font-size:14px}
.task-add input:focus{border-color:var(--focus);outline:none}
.task-add .btn{padding:8px 12px}
.task{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid var(--rule-soft);font-size:14px}
.task input[type="checkbox"]{width:16px;height:16px;margin:0;accent-color:var(--navy);cursor:pointer;flex-shrink:0}
:root[data-theme="dark"] .task input[type="checkbox"]{accent-color:var(--gold)}
.task span{flex:1;min-width:0;overflow-wrap:break-word}
.task.done span{text-decoration:line-through;color:var(--muted)}
#quicknotes{
  width:100%;background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:10px 11px;
  font-size:14px;line-height:1.55;resize:vertical;
}
#quicknotes:focus{border-color:var(--focus);outline:none}

/* ===== ΑΦΜ validation + AADE lookup ===== */
.afmrow{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.afmrow input{flex:1 1 130px;min-width:130px}
.afmrow .btn{flex:1 1 auto;justify-content:center;white-space:nowrap;padding:8px 12px}
.afmstatus{font-size:13px;color:var(--muted);min-height:1.2em}
.afmstatus.ok{color:var(--ok);font-weight:600}
.afmstatus.bad{color:var(--danger);font-weight:600}

/* ===== κλείδωμα αντιγράφων ===== */
/* Η κατάσταση μπαίνει πάνω από τα πεδία: πρώτα «κλειδώνονται ή όχι», μετά το πώς. */
.bklock{margin-top:18px;padding-top:16px;border-top:1px solid var(--rule)}
.bkstate{margin:0 0 10px;font-size:13.5px;font-weight:600;color:var(--muted)}
.bkstate::before{content:'';display:inline-block;width:7px;height:7px;border-radius:4px;background:currentColor;margin-right:8px;vertical-align:middle}
.bkstate.on{color:var(--ok)}
/* Η προειδοποίηση για το χαμένο συνθηματικό δεν είναι υποσημείωση: αν χαθεί,
   δεν υπάρχει δεύτερος δρόμος. Χρυσή ράγα από πάνω, όπως οι κεφαλίδες. */
.bkwarn{margin:10px 0 6px;padding:11px 13px;background:var(--gold-soft);
  border-top:2.5px solid var(--gold);box-shadow:inset 0 5px 0 -4px var(--gold-soft);
  font-size:13px;max-width:62ch}
.afmstatus a{color:var(--navy);font-weight:700}
.bkline{font-size:13.5px;display:block;margin:2px 0}
.bkline code{font-size:12.5px}

/* ===== επιλογή φακέλου (δεύτερη θέση αντιγράφων) ===== */
.fpick{margin:10px 0 6px;border:1px solid var(--rule);border-top:2.5px solid var(--navy);background:var(--panel-2);
  padding:12px;display:flex;flex-direction:column;gap:10px}
.fpick-places{display:flex;flex-wrap:wrap;gap:6px}
.fpick-places .chip{font:inherit;font-size:12.5px;font-weight:600;padding:5px 10px;border:1px solid var(--rule);background:var(--panel);
  color:var(--ink);border-radius:2px;cursor:pointer;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fpick-places .chip:hover{border-color:var(--navy)}
.fpick-places .chip.on{border-color:var(--navy);box-shadow:inset 0 -2px 0 var(--gold)}
.fpick-bar{display:flex;align-items:center;gap:10px;min-width:0}
.fpick-bar .btn{flex:none}
.fpick-path{font-size:12.5px;min-width:0;overflow-wrap:anywhere}
.fpick-list{max-height:260px;overflow-y:auto;border:1px solid var(--rule);background:var(--panel)}
.fpick-dir{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;font:inherit;font-size:14px;text-align:left;
  background:none;border:0;border-bottom:1px solid var(--rule);color:var(--ink);cursor:pointer}
.fpick-dir:last-child{border-bottom:0}
.fpick-dir svg{width:18px;height:18px;flex:none;color:var(--muted)}
.fpick-dir span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fpick-dir:hover,.fpick-dir:focus-visible{background:var(--navy-soft, var(--panel-2))}
.fpick-dir:hover svg,.fpick-dir:focus-visible svg{color:var(--navy)}
.fpick-note{margin:0;padding:12px;font-size:13.5px;color:var(--muted)}
.fpick-new{display:flex;gap:8px;flex-wrap:wrap}
.fpick-new input{flex:1;min-width:180px}
.fpick-foot{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}

/* εκδότης χωρίς καρτέλα, στα Εισερχόμενα */
.mksup-who{margin:4px 0 2px;font-size:15px}
.mksup-who b{font-size:15.5px}
.mksup-who .sub{display:inline;margin-left:10px}
.mksup-hint{margin:0 0 10px;font-size:13px;color:var(--muted);max-width:70ch}

/* «ψάχνετε αυτό το παραστατικό» στην εισαγωγή */
.wanted{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin:0 0 16px;padding:12px 14px;
  background:var(--panel-2);border-top:2.5px solid var(--navy)}
.wanted-main{flex:1;min-width:240px}
.wanted .label{margin-bottom:4px}
.wanted b{display:block;font-size:15.5px}
.wanted-line{font-size:14px;margin-top:2px;font-variant-numeric:tabular-nums}
.wanted .sub{display:block;margin-top:2px}
.wanted-acts{display:flex;gap:8px;flex-wrap:wrap}
.wantlist{max-height:260px;overflow-y:auto;border:1px solid var(--rule);background:var(--panel)}
.wantrow{display:flex;gap:12px;align-items:baseline;width:100%;padding:9px 12px;font:inherit;font-size:13.5px;
  text-align:left;background:none;border:0;border-bottom:1px solid var(--rule);color:var(--ink);cursor:pointer}
.wantrow:last-child{border-bottom:0}
.wantrow:hover,.wantrow:focus-visible{background:var(--panel-2)}
.wantrow b{font-size:14px;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wantrow .amt{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600}

/* έκδοση δίπλα στο λογότυπο */
.wordmark .appver{font-family:var(--font);font-size:10.5px;font-weight:600;letter-spacing:.04em;color:var(--on-navy-dim);
  margin-left:10px;padding:2px 6px;border:1px solid rgba(255,255,255,.22);border-radius:2px;align-self:center;font-variant-numeric:tabular-nums}

/* ===== logo + document header/footer ===== */
.logobox{width:220px;height:90px;border:1px dashed var(--rule);border-radius:2px;display:grid;place-items:center;background:var(--panel-2);overflow:hidden}
.logobox img{max-width:200px;max-height:78px;object-fit:contain}
.logobox .wm-fallback{font-family:var(--didot);font-size:25px;color:var(--muted)}
.docsheet .head .who .doclogo{max-height:64px;max-width:240px;object-fit:contain;display:block;margin-bottom:8px;background:#fff;padding:4px 6px;border-radius:2px}
.docsheet .head .who .bizname{font-weight:700;color:#fff;font-size:15px;margin-top:2px}
.paybox{padding:13px 24px 14px;border-top:1px solid var(--rule-soft)}
.paybox .label{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.paybox p{margin:0 0 3px;font-size:12.5px;line-height:1.55;font-variant-numeric:tabular-nums}
.paybox p:last-child{margin-bottom:0}
.docfoot{padding:14px 24px 16px;border-top:1px solid var(--rule-soft);font-size:12.5px;color:var(--muted);line-height:1.6;white-space:normal}
@media print{ .docfoot{color:var(--ink)} }
.field label.btn{text-transform:none;letter-spacing:.02em;font-size:13.5px;color:var(--navy);display:inline-flex}

/* ===== agenda: task form + rows ===== */
.taskform{display:grid;grid-template-columns:minmax(200px,2.2fr) 150px 108px 130px 130px auto auto;gap:8px;align-items:center}
.taskform:not(.compact){grid-template-columns:minmax(200px,2.2fr) 150px 108px 130px 130px;}
.taskform:not(.compact) .tf-notes{grid-column:1 / span 3}
.taskform:not(.compact) .btn{grid-column:auto}
.taskform input,.taskform select{
  background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:8px 10px;font-size:14px;min-width:0;width:100%;
  transition:border-color .15s ease-out;
}
.taskform input:hover,.taskform select:hover{border-color:var(--muted)}
.taskform input:focus,.taskform select:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}
.taskform input::placeholder{color:var(--muted);opacity:1}
.taskform .btn{padding:8px 14px;white-space:nowrap}
.taskform select{appearance:auto}
@media (max-width:980px){
  .taskform, .taskform:not(.compact){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .taskform input[name="text"], .taskform:not(.compact) .tf-notes{grid-column:1 / -1}
}
.task.agenda{align-items:flex-start;padding:9px 2px}
.task.agenda input[type="checkbox"]{margin-top:3px}
.task.agenda span{flex:0 0 auto}
.task.agenda .ttext{flex:1 1 auto;cursor:pointer;line-height:1.4}
.task.agenda .ttext small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.task.agenda .ttext:hover{color:var(--navy)}
:root[data-theme="dark"] .task.agenda .ttext:hover{color:var(--gold)}
.task.agenda.done span{text-decoration:none}
.task.agenda.done .ttext{text-decoration:line-through;color:var(--muted)}
.task.agenda.done .tmeta,.task.agenda.done .pill{opacity:.55}
.tmeta{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0;margin-top:1px}
.tmeta:empty{display:none}
.kindtag{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--navy);border:1px solid var(--navy);padding:1px 6px;border-radius:2px}
:root[data-theme="dark"] .kindtag{color:var(--gold);border-color:var(--gold)}
.tdate{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.tdate.late,.task.agenda.late .tdate{color:var(--danger);font-weight:700}
.task.agenda .xline{opacity:0;transition:opacity .15s ease-out}
.task.agenda:hover .xline,.task.agenda:focus-within .xline{opacity:1}
.task-editwrap{padding:10px 0;border-bottom:1px solid var(--rule-soft)}
.pill.urg-low{background:var(--panel-2);color:var(--muted)}
.pill.urg-high{background:var(--gold-soft);color:var(--gold-ink)}
.pill.urg-urgent{background:var(--danger-soft);color:var(--danger)}
.panel-head .count{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted);margin-left:8px}

/* job rows in Today / Calendar */
.jobrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:inherit;font-size:14px}
/* Γραμμές που κάθονται ΑΠΕΥΘΕΙΑΣ μέσα σε πάνελ παίρνουν το ίδιο περιθώριο 20px με
   κάθε άλλο περιεχόμενο πάνελ (.panel-body, .deadline, πίνακες). Χωρίς αυτό
   κολλάνε στις άκρες και σπάει η κάθετη γραμμή του πάνελ. */
.panel > .task, .panel > .jobrow, .panel > .task-editwrap,
.rowlist > .task, .rowlist > .jobrow, .rowlist > .deadline{padding-left:20px;padding-right:20px}
.jobrow:hover .jtitle{color:var(--navy)}
:root[data-theme="dark"] .jobrow:hover .jtitle{color:var(--gold)}
.jobrow.stale{background:color-mix(in srgb, var(--danger-soft) 55%, transparent)}
.jtitle{min-width:0;font-weight:600;overflow-wrap:break-word}
.jtitle small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.jmeta{display:flex;align-items:center;gap:8px;flex-shrink:0}

/* ===== calendar ===== */
.calgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
@media (max-width:980px){ .calgrid{grid-template-columns:minmax(0,1fr)} }
#daypanel .taskform, #daypanel .taskform.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#daypanel .taskform input[name="text"]{grid-column:1 / -1}
#daypanel .taskform .btn{grid-column:1 / -1;justify-content:center}
.cal-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:2.5px solid var(--navy);box-shadow:inset 0 -5px 0 -4px var(--rule)}
.cal-head span{padding:9px 8px 7px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cal-head span:nth-child(n+6){color:var(--navy)}
.cal-body{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--rule-soft)}
.cal-cell{
  min-height:96px;min-width:0;padding:6px 6px 8px;border-right:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);
  display:flex;flex-direction:column;gap:3px;cursor:pointer;position:relative;
  transition:background .15s ease-out;
}
.cal-cell:hover{background:var(--panel-2)}
.cal-cell.pad{cursor:default;background:repeating-linear-gradient(-45deg,transparent 0 6px,var(--rule-soft) 6px 7px)}
.cal-cell.pad:hover{background:repeating-linear-gradient(-45deg,transparent 0 6px,var(--rule-soft) 6px 7px)}
.cal-n{font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted);line-height:1;margin-bottom:3px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%}
.cal-cell.today .cal-n{background:var(--navy);color:#fff}
:root[data-theme="dark"] .cal-cell.today .cal-n{background:var(--gold);color:#14232f}
.cal-cell.sel{box-shadow:inset 0 0 0 2px var(--gold)}
.cal-cell.sel:not(.today) .cal-n{color:var(--ink)}
.chip{
  display:block;font-size:11px;line-height:1.3;padding:2px 6px;border-radius:2px;
  background:var(--navy-tint);color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.chip.gold{background:var(--gold-soft);color:var(--gold-ink)}
.chip.navy{background:var(--navy);color:#fff}
.chip.red{background:var(--danger-soft);color:var(--danger);font-weight:700}
.chip.u-high{background:var(--gold-soft);color:var(--gold-ink)}
.chip.u-urgent{color:var(--danger);background:var(--danger-soft);font-weight:700}
.chip.u-low{opacity:.75}
.chip.done{text-decoration:line-through;opacity:.5}
.chip.more{background:transparent;color:var(--muted);font-weight:700;padding-left:4px}
@media (max-width:640px){
  .cal-cell{min-height:56px;padding:4px}
  .cal-cell .chip{display:none}
  .cal-cell .chip:first-of-type{display:block;font-size:0;height:5px;width:5px;padding:0;border-radius:50%;background:var(--navy)}
}

/* ===== production board (kanban) ===== */
.board{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding:4px 2px 18px;scroll-snap-type:x proximity}
.kcol{
  flex:1 1 200px;min-width:196px;max-width:320px;background:var(--panel-2);border:1px solid var(--rule-soft);border-radius:3px;
  display:flex;flex-direction:column;max-height:calc(100vh - 230px);scroll-snap-align:start;
  transition:background .15s ease-out, border-color .15s ease-out;
}
.kcol.over{background:var(--gold-soft);border-color:var(--gold)}
.kcol-head{
  display:flex;justify-content:space-between;align-items:center;padding:10px 12px 8px;
  font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);
  border-bottom:2px solid var(--navy);
}
:root[data-theme="dark"] .kcol-head{color:var(--on-navy);border-bottom-color:var(--gold)}
.kcol-head .count{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700;letter-spacing:0}
.kcol:last-child .kcol-head{border-bottom-color:var(--ok);color:var(--ok)}
.kcol-body{padding:10px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:60px;flex:1}
.kcard{
  background:var(--panel);border:1px solid var(--rule);border-radius:2px;padding:10px 11px 9px;cursor:grab;
  box-shadow:var(--shadow);transition:transform .12s ease-out, box-shadow .15s ease-out, opacity .15s ease-out;
}
.kcard:hover{transform:translateY(-1px);box-shadow:var(--shadow-float)}
.kcard:active{cursor:grabbing}
.kcard.dragging{opacity:.45;transform:rotate(-1.5deg)}
.kcard.stale{border-color:var(--danger);background:color-mix(in srgb, var(--danger-soft) 45%, var(--panel))}
.ktitle{font-weight:700;font-size:14px;line-height:1.3;overflow-wrap:break-word}
.kcust{font-size:12.5px;color:var(--muted);margin-top:2px}
.kmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:8px}
.kmeta:empty{display:none}
.kdays{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}
.iconbtn.on{background:var(--gold);color:#14232f;border-color:var(--gold)}

/* narrow containers: drawer + phones */
#drawer .taskform, #drawer .taskform.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-bottom:12px}
#drawer .taskform input[name="text"], #drawer .taskform .btn{grid-column:1 / -1}
#drawer .taskform .btn{justify-content:center}
#drawer .task.agenda{flex-wrap:wrap;row-gap:4px}
#drawer .task.agenda .ttext{flex:1 1 0;min-width:0}
#drawer .task.agenda .tmeta{order:5;flex-basis:100%;padding-left:26px}
#drawer .task.agenda .tmeta:empty{display:none}
#drawer .task.agenda .pill{order:2}
#drawer .task.agenda .xline{order:3;opacity:1}
@media (max-width:640px){
  .task.agenda{flex-wrap:wrap;row-gap:4px}
  .task.agenda .ttext{flex:1 1 0;min-width:0}
  .task.agenda .tmeta{order:5;flex-basis:100%;padding-left:26px}
  .task.agenda .pill{order:2}
  .task.agenda .xline{order:3;opacity:1}
  .jobrow{flex-wrap:wrap}
  .jmeta{width:100%;justify-content:flex-start}
}

/* ===== quick-new menu ===== */
.newmenu{position:relative}
.newmenu .caret{width:13px;height:13px;margin-left:-2px;opacity:.85}
.newmenu .menu{
  position:absolute;right:0;top:calc(100% + 6px);min-width:230px;z-index:30;
  background:var(--panel);border:1px solid var(--rule);border-radius:3px;box-shadow:var(--shadow-float);padding:6px;
}
.newmenu .menu a{
  display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:2px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:600;
}
.newmenu .menu a svg{width:16px;height:16px;color:var(--navy);flex-shrink:0}
:root[data-theme="dark"] .newmenu .menu a svg{color:var(--gold)}
.newmenu .menu a:hover,.newmenu .menu a:focus-visible{background:var(--panel-2);outline:none}
@media (prefers-reduced-motion: no-preference){
  .newmenu .menu{animation:menuin .14s ease-out}
  @keyframes menuin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
}

/* ===== list filters ===== */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--rule-soft)}
.filters .search{flex:1 1 220px}
.filters select{background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:8px 10px;font-size:13.5px;max-width:220px}
.filters select:focus{border-color:var(--focus);outline:none}
.filters .check{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink);cursor:pointer;white-space:nowrap}
.filters .check input{width:15px;height:15px;accent-color:var(--navy);cursor:pointer}
:root[data-theme="dark"] .filters .check input{accent-color:var(--gold)}
.filters .fgroup{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}
.filters .fcount{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}
.filters .fclear{padding:6px 10px;font-size:12.5px}

/* ===== job lines ===== */
.jlines{width:100%}
.jlines th:first-child{width:52%}
.klines{list-style:none;margin:8px 0 0;padding:6px 0 0;border-top:1px solid var(--rule-soft);font-size:12.5px;display:flex;flex-direction:column;gap:3px}
.klines li{display:flex;justify-content:space-between;gap:10px;color:var(--ink)}
.klines li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.klines li b{font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.klines li.more{color:var(--muted);justify-content:flex-start}

/* ===== segmented (Πελάτες | Προμηθευτές) ===== */
.segmented{display:inline-flex;border:1px solid var(--rule);border-radius:3px;overflow:hidden;background:var(--panel)}
.segmented a{padding:6px 14px;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-decoration:none;color:var(--muted);border-right:1px solid var(--rule)}
.segmented a:last-child{border-right:none}
.segmented a.on{background:var(--navy);color:#fff}
/* Στο σκούρο θέμα το ενεργό tab ΔΕΝ παίρνει χρυσό: ο χρυσός είναι το ένα σήμα
   δράσης της εφαρμογής και δίπλα του κάθεται συνήθως το κύριο κουμπί. Ένα ανοιχτό
   μπλε πλακίδιο λέει «είσαι εδώ» χωρίς να ανταγωνίζεται. */
:root[data-theme="dark"] .segmented a.on{background:var(--navy);color:var(--ground)}

/* ===== inventory ===== */
.invfields{border:1px solid var(--rule-soft);border-radius:3px;padding:12px 14px 4px;background:var(--panel-2)}
.invhead{margin-bottom:10px}
.invhead .check{font-weight:700}
#invgrid{transition:opacity .15s ease-out}
.stocknow{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;padding:9px 0}
.stocknow small{font-weight:400;color:var(--muted);font-size:12.5px}
.stockq{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.stockq small{font-weight:400;color:var(--muted)}
td .pill.stock-low,td .pill.stock-short,td .pill.stock-out{margin-left:8px}
.pill.stock-low{background:var(--gold-soft);color:var(--gold-ink)}
.pill.stock-short,.pill.stock-out{background:var(--danger-soft);color:var(--danger)}
.klines li.short b{color:var(--danger)}
.klines li.short span::after{content:" !";color:var(--danger);font-weight:800}

/* ===== alerts ===== */
.panel.alerts .panel-head h2{color:var(--danger)}
.alert{display:flex;gap:12px;align-items:flex-start;padding:10px 16px;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:var(--ink);font-size:14px;line-height:1.4}
.alert:last-child{border-bottom:none}
.alert:hover{background:var(--panel-2)}
.alert .aicon{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--danger-soft);color:var(--danger);margin-top:1px}
.alert.low .aicon{background:var(--gold-soft);color:var(--gold-ink)}
.alert .aicon svg{width:14px;height:14px}
.alert .atext small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
#kbalerts .panel{margin-bottom:16px}

/* ===== expenses ===== */
.exp-band{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.exp-band .stat.wide2{padding-top:14px}
.catbars{display:flex;flex-direction:column;gap:5px;margin-top:6px}
.catbar{display:grid;grid-template-columns:180px minmax(0,1fr) 90px;align-items:center;gap:10px;font-size:12.5px}
.catbar span{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.catbar i{display:block;height:8px;background:var(--navy);min-width:3px}
:root[data-theme="dark"] .catbar i{background:var(--gold)}
.catbar b{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.filters input[type="month"]{background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:7px 10px;font-size:13.5px}
.filters input[type="month"]:disabled{opacity:.5}
@media (max-width:820px){ .exp-band{grid-template-columns:minmax(0,1fr)} .catbar{grid-template-columns:120px minmax(0,1fr) 80px} }
.rcvrow{flex-wrap:nowrap}
.rcvrow #i_rcv{flex:0 0 150px;min-width:120px}
.rcvrow #i_rcvref{flex:1 1 200px}
@media (max-width:640px){ .rcvrow{flex-wrap:wrap} }
.rcvrow .btn{flex:0 0 auto}

/* subscription renewals */
.chip.subr{background:var(--gold-soft);color:var(--gold-ink);border-left-color:var(--gold)}
.alert.renew .aicon{background:var(--gold-soft);color:var(--gold-ink)}
.deadline.renewrow{text-decoration:none;cursor:pointer}
.deadline.renewrow:hover{background:var(--panel-2)}

/* ===== auth gate (login / create account) ===== */
.gate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--ground);padding:24px}
.gate-card{
  width:100%;max-width:420px;background:var(--panel);border:1px solid var(--rule);border-radius:2px;
  box-shadow:var(--shadow-float);padding:34px 36px 30px;position:relative;
}
.gate-brand{display:flex;align-items:baseline;gap:12px;margin-bottom:22px;padding-bottom:14px;border-bottom:2.5px solid var(--navy);box-shadow:inset 0 -5px 0 -4px var(--rule)}
.gate-wm{font-family:var(--didot);font-size:34px;color:var(--navy);line-height:1}
.gate-tag{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.gate-card h1{font-size:19px;font-weight:800;letter-spacing:-.01em;margin:0 0 6px}
.gate-sub{font-size:13.5px;color:var(--muted);line-height:1.5;margin:0 0 16px}
.gate-form{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.gate-form .btn.wide{justify-content:center;padding:11px 16px;margin-top:4px}
.gate-form .err{color:var(--danger);font-size:13.5px;font-weight:600}
.gate-foot{font-size:12.5px;color:var(--muted)}
/* Επεξήγηση μέσα στην πύλη: ίδιο μέγεθος με το .gate-sub, αλλά με αέρα γύρω
   της ώστε να μη διαβάζεται σαν συνέχεια του τίτλου. */
.gate-note{font-size:13px;color:var(--muted);line-height:1.5;margin:14px 0}
.gate-card .btn.wide{display:flex;justify-content:center;width:100%;padding:11px 16px}
:root[data-theme="dark"] .gate-wm{color:var(--on-navy)}
@media (prefers-reduced-motion: no-preference){
  .gate-card{animation:gatein .3s ease-out}
  @keyframes gatein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
}

/* 2FA */
.totp-secret{
  font-family:ui-monospace,Consolas,monospace;font-size:17px;letter-spacing:.12em;font-weight:700;
  background:var(--panel-2);border:1px dashed var(--rule);border-radius:2px;padding:12px 14px;
  user-select:all;overflow-wrap:break-word;
}
.totp-input{font-variant-numeric:tabular-nums;letter-spacing:.35em;font-size:19px;text-align:center;max-width:180px}
.gate-form .totp-input{max-width:none}
/* Οθόνη κλειδώματος: ποιος είναι κλειδωμένος. Μόνο το όνομα — όπως η οθόνη
   κλειδώματος του λειτουργικού. Ούτε email, ούτε επιχείρηση. */
.gate-who{display:flex;align-items:center;gap:8px;margin:2px 0 12px;font-size:14px;font-weight:700;color:var(--ink)}
.gate-who svg{width:16px;height:16px;color:var(--navy);flex:none}
/* PIN: κουκκίδες αντί για ψηφία, πιο αραιές από τον κωδικό του authenticator
   ώστε να μετριούνται με μια ματιά (πόσα έχω γράψει;). */
.pin-input{letter-spacing:.6em;font-size:22px;padding-left:.6em}
/* Δευτερεύουσες ενέργειες κάτω από τη φόρμα της πύλης: «χρήση authenticator»,
   «δεν είστε εσείς». Χωριστά από το κύριο κουμπί, μία στήλη, ίδιο πλάτος. */
.gate-alt{display:grid;gap:8px;margin-top:14px}

/* Προειδοποίηση ένα λεπτό πριν το κλείδωμα. ΔΕΝ είναι toast: δεν σβήνει μόνη
   της, μένει μέχρι να κινηθείς. Γι' αυτό η χρυσή ράγα από πάνω — το μοναδικό
   «σήμα» του συστήματος — και όχι το κόκκινο του σφάλματος: δεν έγινε λάθος. */
/* Κανόνας μίας σκιάς: --shadow, όπως το toast. Το --shadow-float ανήκει μόνο
   στην αριθμομηχανή και στο συρτάρι. Ο χρυσός εμφανίζεται ΜΙΑ φορά — η ράγα·
   το εικονίδιο παίρνει on-navy-dim. Το κουμπί ακολουθεί τα iconbtn της μπάρας
   (ίδιο περίγραμμα, ίδιο hover, ίδιο ύψος 34px) — όχι νέες τιμές. */
.lockwarn{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:61;
  display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);
  background:var(--navy-deep);color:var(--on-navy);padding:9px 10px 9px 16px;border-radius:3px;
  border-top:2.5px solid var(--gold);box-shadow:var(--shadow);
  font-size:14px;font-weight:600;line-height:1.35
}
.lockwarn svg{width:17px;height:17px;color:var(--on-navy-dim);flex:none}
.lockwarn .btn{flex:none;min-height:34px;background:transparent;color:var(--on-navy);border:1px solid rgba(255,255,255,.25);padding:0 14px}
.lockwarn .btn:hover{background:rgba(255,255,255,.12)}
@media (max-width:560px){
  .lockwarn{left:16px;right:16px;transform:none;bottom:max(16px,env(safe-area-inset-bottom))}
  .lockwarn .btn{min-height:40px}
}
@media (prefers-reduced-motion: no-preference){
  .lockwarn{animation:lockwarn-in .22s cubic-bezier(.2,.8,.2,1)}
  @keyframes lockwarn-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
}
@media (prefers-reduced-motion: no-preference) and (max-width:560px){
  @keyframes lockwarn-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}

/* data import */
.impstats{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px}
.impstat{font-size:13px;color:var(--muted)}
.impstat b{font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;margin-right:4px}
.impdetail{margin-top:8px;font-size:12.5px;color:var(--muted)}

/* ===== reports & charts ===== */
.panel.chart{padding:16px 18px 12px;margin-top:16px}
.chead{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.chead h3{font-size:12px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;margin:0;color:var(--ink)}
.clegend{display:flex;gap:14px;font-size:12px;color:var(--muted)}
.clegend span{display:inline-flex;align-items:center;gap:6px}
.clegend i{width:10px;height:10px;border-radius:2px;display:inline-block}
.panel.chart svg{width:100%;height:auto;display:block}
.cgrid{stroke:var(--rule-soft);stroke-width:1}
.cgrid.base{stroke:var(--rule);stroke-width:1.5}
.ctick{font-size:10.5px;fill:var(--muted);font-variant-numeric:tabular-nums}
.tview{margin-top:8px}
.tview summary{font-size:12px;color:var(--muted);cursor:pointer;padding:4px 0}
.tview table{font-size:12.5px}
.charttip{
  position:fixed;z-index:90;background:var(--navy-deep);color:#fff;border-radius:3px;padding:8px 11px;
  font-size:12.5px;line-height:1.5;pointer-events:none;box-shadow:var(--shadow-float);
}
.charttip b{font-variant-numeric:tabular-nums}
.charttip i{width:8px;height:8px;border-radius:2px;display:inline-block;margin-right:6px}
.chgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px}
.chgrid .panel.chart{margin-top:0}
@media (max-width:980px){ .chgrid{grid-template-columns:minmax(0,1fr)} }
.hbars{display:flex;flex-direction:column;gap:7px}
.hbar{display:grid;grid-template-columns:170px minmax(0,1fr) 80px;align-items:center;gap:10px;font-size:13px}
.hbar .hname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.hbar .htrack{background:var(--panel-2);border-radius:2px;height:14px;overflow:hidden}
.hbar .htrack i{display:block;height:100%;border-radius:0 3px 3px 0;min-width:2px}
.hbar .hval{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.repnote{padding:10px 16px;font-size:13.5px;border-bottom:1px solid var(--rule-soft);color:var(--muted)}
.repnote b{color:var(--ink)}
tr.totrow td{font-weight:800;border-top:2px solid var(--navy)}
@media print{
  .masthead, .filters, .noprint, #sidetab, #drawer, #calcpop, #jumper, .segmented, .pagehead .btn{display:none !important}
  .page{padding:0;max-width:none}
  .panel{border:none;box-shadow:none}
  body{background:#fff}
}
@media (max-width:640px){ .hbar{grid-template-columns:96px minmax(0,1fr) 70px} }

/* ---- Ρυθμίσεις → Λίστες: chips κατηγοριών & λίστες αναφοράς ---- */
.chiprow{display:flex;flex-wrap:wrap;gap:8px}
.tagchip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 12px;border:1px solid var(--rule);border-radius:4px;background:var(--panel-2);font-size:13.5px;color:var(--ink)}
.chipx{border:none;background:none;color:var(--muted);font-size:15px;line-height:1;padding:2px 4px;cursor:pointer;border-radius:3px}
.chipx:hover{color:var(--danger);background:var(--danger-soft)}
.reflist{border:1px solid var(--rule-soft);border-radius:2px;margin-bottom:10px;background:var(--panel)}
.reflist summary{padding:10px 14px;cursor:pointer;font-weight:600;font-size:14px;color:var(--ink)}
.reflist summary .sub{font-weight:400;color:var(--muted)}
.reflist[open] summary{border-bottom:1px solid var(--rule-soft)}
.reflist .tablewrap{padding:0 14px 12px}

/* ---- Οδηγός ρύθμισης: μπάρα βημάτων ---- */
.wizsetup{max-width:720px}
.wizbar{display:flex;align-items:center;justify-content:center;margin:0 0 22px}
.wdot{width:28px;height:28px;border-radius:50%;background:var(--panel-2);border:1px solid var(--rule);color:var(--muted);font-weight:800;font-size:13px;display:grid;place-items:center;flex-shrink:0}
.wdot.done{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.wdot.now{background:var(--gold);border-color:var(--gold);color:var(--navy-deep)}
.wrule{height:2px;background:var(--rule-soft);flex:1;max-width:64px}
.wrule.done{background:var(--navy)}
.wizfoot{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}
.wizfoot a:first-child,.wizfoot button:first-child{margin-right:auto}

/* ---- combobox (αναζητήσιμη επιλογή, π.χ. πελάτης στην καρτέλα) ---- */
.combofield{position:relative}
.combolist{position:absolute;top:100%;left:0;right:0;z-index:40;margin-top:4px;background:var(--panel);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow-float);max-height:320px;overflow-y:auto}
.combolist .opt{padding:8px 12px;font-size:13.5px;cursor:pointer;display:flex;flex-direction:column;gap:1px;border-bottom:1px solid var(--rule-soft)}
.combolist .opt:last-child{border-bottom:none}
.combolist .opt .sub{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.combolist .opt:hover,.combolist .opt.on{background:var(--navy-tint)}

/* ---- ημερολόγιο: προβολή εβδομάδας & ημέρας ---- */
.cal-cell.wk{min-height:220px}

/* ---- ημερολόγιο: χρονοδιάγραμμα ωρών (ημέρα & εβδομάδα) ---- */
.tlwrap{overflow-x:auto}
.timeline{min-width:1180px;--tlcols:92px 190px repeat(15,minmax(56px,1fr))}
.tl-head{display:grid;grid-template-columns:var(--tlcols);border-bottom:2.5px solid var(--navy);box-shadow:inset 0 -5px 0 -4px var(--rule)}
.tl-head span{padding:9px 6px 7px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-left:1px solid var(--rule-soft);white-space:nowrap}
.tl-head span:first-child{border-left:none}
.tl-row{display:grid;grid-template-columns:var(--tlcols);border-bottom:1px solid var(--rule-soft)}
.tl-row:last-child{border-bottom:none}
.tl-day{padding:10px 8px;font-size:12.5px;color:var(--muted);cursor:pointer;display:flex;align-items:flex-start;gap:5px;line-height:1.3}
.tl-day b{color:var(--ink);text-transform:uppercase;font-size:11px;letter-spacing:.08em}
.tl-day.today{background:var(--gold-soft);color:var(--ink)}
.tl-day.sel{background:var(--navy-tint)}
.tl-cell{border-left:1px solid var(--rule-soft);padding:6px;min-height:72px;cursor:pointer;display:flex;flex-direction:column;gap:3px;align-items:flex-start;transition:background .15s ease-out}
.tl-cell:hover{background:var(--panel-2)}
.tl-cell.sel{background:var(--navy-tint)}
.tl-cell.now{background:var(--gold-soft)}
.tl-cell .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-allday{background:var(--panel-2)}
.tl-allday:hover{background:var(--navy-tint)}
.timeline.one .tl-cell{min-height:190px}

/* ---- αναδυόμενο «Προσθήκη» στα κελιά του ημερολογίου ---- */
.calpop2{position:fixed;z-index:70;background:var(--panel);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow-float);min-width:180px;padding:6px}
.calpop2 .cph{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 10px 8px;border-bottom:1px solid var(--rule-soft);margin-bottom:4px;font-variant-numeric:tabular-nums}
.calpop2 button{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;text-align:left;padding:8px 10px;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;border-radius:2px}
.calpop2 button:hover,.calpop2 button:focus-visible{background:var(--navy-tint);color:var(--navy)}
.calpop2 button svg{width:15px;height:15px;color:var(--navy)}

/* ---- κάρτες λειτουργιών «σύντομα» ---- */
/* Η κεφαλίδα της ομάδας «αργότερα» λέει ρητά ότι αυτά είναι εκτός άδειας, ώστε
   κανείς να μη νομίσει ότι του λείπει κάτι από αυτά που πλήρωσε. */
.soonhead{margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--rule-soft)}
.soonhead p{margin:5px 0 0;font-size:12.5px;color:var(--muted);max-width:70ch}
.modecard.soon{opacity:.6;cursor:default}
.modecard.soon:hover{border-color:var(--rule)}
/* Το «.modecard span{display:block}» παραπάνω κάνει και το pill μπλοκ, οπότε
   απλωνόταν σε όλο το πλάτος της κάρτας αντί να κάθεται δίπλα στον τίτλο. */
.modecard.soon .pill{display:inline-block;margin-left:6px;vertical-align:middle}

/* ---- προθεσμία εξόφλησης ---- */
.sub.latecolor{color:var(--danger);font-weight:700}

/* ---- σχόλια δοκιμής (feedback) ---- */
.fbpop{position:fixed;top:70px;right:18px;z-index:65;width:360px;max-width:92vw;background:var(--panel);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow-float);padding:12px}
.fbpop .cph{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--rule-soft);margin-bottom:10px}
/* πεδία εκτός .field (φόρμα σχολίων, λίστες, λοιπά έσοδα): ίδια εμφάνιση με τα κανονικά,
   ώστε να έχουν σωστό contrast και στο σκούρο θέμα */
.fbpop textarea, #catadd input, #seradd input, #oiform input, #ecatadd input, .esubadd input, .avadd input{
  background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:9px 11px;font-size:14px;color:var(--ink);
}
.fbpop textarea{width:100%;resize:vertical}
.fbpop textarea:focus, #catadd input:focus, #seradd input:focus, #oiform input:focus, #ecatadd input:focus, .esubadd input:focus, .avadd input:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}
.fbpop textarea::placeholder, #catadd input::placeholder, #seradd input::placeholder, #oiform input::placeholder, #ecatadd input::placeholder, .esubadd input::placeholder, .avadd input::placeholder{color:var(--muted);opacity:1}

/* ---- avatar & μενού λογαριασμού ---- */
.avatarwrap{position:relative;display:flex;align-items:center}
.avatarbtn{width:34px;height:34px;border-radius:3px;border:1px solid rgba(255,255,255,.35);background:#fff;cursor:pointer;padding:2px;display:grid;place-items:center;overflow:hidden}
.avatarbtn img{max-width:100%;max-height:100%;object-fit:contain}
.avatarbtn span{font-weight:800;font-size:15px;color:var(--navy-deep)}
.usermenu{position:absolute;top:calc(100% + 8px);right:0;z-index:70;min-width:220px;background:var(--panel);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow-float);padding:6px;color:var(--ink)}
.um-head{padding:8px 10px 10px;border-bottom:1px solid var(--rule-soft);margin-bottom:6px;display:flex;flex-direction:column}
.um-head b{font-size:13.5px}
.um-head span{font-size:12px;color:var(--muted)}
.um-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 10px 3px}
.um-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;text-align:left;padding:7px 10px;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;border-radius:2px;text-decoration:none;box-sizing:border-box}
.um-item:hover{background:var(--navy-tint);color:var(--navy)}
.um-item.on::after{content:"✓";margin-left:auto;color:var(--gold-ink);font-weight:800}
.um-item svg{width:15px;height:15px}
.um-sep{height:1px;background:var(--rule-soft);margin:6px 0}

/* ---- μπαλόνι & πάνελ υποστήριξης (κάτω δεξιά) ---- */
.chatballoon{position:fixed;right:18px;bottom:18px;z-index:58;width:52px;height:52px;border-radius:3px;border:none;background:var(--navy-deep);color:var(--gold);cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-float)}
.chatballoon svg{width:24px;height:24px}
.chatballoon:hover{filter:brightness(1.2)}
/* Πάνω / κάτω σε μακριές σελίδες. Δίπλα στο μπαλόνι υποστήριξης, όχι από πάνω
   του: εκεί ανοίγει το πάνελ της συνομιλίας. */
.segmented.sub{margin-top:10px}
.segmented.sub a{font-size:12.5px;padding:5px 12px}

.jumper{position:fixed;right:82px;bottom:18px;z-index:57;display:flex;gap:6px}
.jumper[hidden]{display:none}
.jump{width:40px;height:40px;border:1px solid var(--rule);border-radius:3px;background:var(--panel);
  color:var(--navy);cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-float)}
.jump svg{width:19px;height:19px}
.jump:hover:not(:disabled){border-color:var(--navy);color:var(--ink)}
.jump:disabled{opacity:.32;cursor:default}
:root[data-theme="dark"] .jump{color:var(--on-navy)}
@media (max-width:700px){ .jumper{right:78px;bottom:16px} .jump{width:38px;height:38px} }
@media print{ .jumper{display:none !important} }

.chatdot{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:var(--gold);border:2px solid var(--ground)}
.chatpanel{position:fixed;right:18px;bottom:82px;z-index:58;width:380px;max-width:94vw;background:var(--panel);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow-float);display:flex;flex-direction:column;max-height:min(560px,72vh)}
.chp-head{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;background:var(--navy-deep);color:var(--on-navy);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.chp-x{background:none;border:none;color:var(--on-navy);font-size:19px;cursor:pointer;line-height:1;padding:0 2px}
.chp-body{overflow-y:auto;padding:12px 14px;flex:1;display:flex;flex-direction:column;gap:14px}
.chp-thread{display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--rule-soft);padding-bottom:12px}
.chp-thread:last-child{border-bottom:none}
.chp-msg{max-width:88%;padding:8px 11px;border-radius:3px;font-size:13.5px;white-space:pre-wrap;line-height:1.45}
.chp-msg.mine{align-self:flex-end;background:var(--navy-tint);color:var(--ink)}
.chp-msg.theirs{align-self:flex-start;background:var(--panel-2);border:1px solid var(--rule)}
.chp-meta{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.chp-meta .okc{color:var(--ok)}
.chp-replylink{align-self:flex-end;background:none;border:none;color:var(--navy);font-size:12px;font-weight:700;cursor:pointer;padding:2px 0}
.chp-replyform{display:flex;gap:6px;align-items:flex-start}
.chp-replyform textarea{flex:1}
.chp-new{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--rule-soft);align-items:flex-start}
.chp-new textarea{flex:1;resize:none}
.chp-empty{color:var(--muted);font-size:13.5px;margin:auto 0;text-align:center}

/* ---- παραχώρηση πρόσβασης στην υποστήριξη ----
   Κάθεται ανάμεσα στη συνομιλία και στο πεδίο γραφής: είναι η απάντηση στο
   «δεν μπορώ να σου εξηγήσω, δες το εσύ», και πρέπει να βρίσκεται εκεί ακριβώς
   τη στιγμή που ο πελάτης το σκέφτεται. Όσο η πρόσβαση ισχύει, η ένδειξη
   είναι επίμονη και όχι διακριτική — ο πελάτης πρέπει να ΞΕΡΕΙ ότι είναι ανοιχτή. */
.chp-access{padding:8px 14px;border-top:1px solid var(--rule-soft);font-size:12.5px}
.chp-acc-link{background:none;border:none;padding:0;font:inherit;color:var(--link,var(--ink));
  text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.chp-acc-link:hover{color:var(--gold-ink)}
.chp-acc-note{display:block;color:var(--muted);margin-top:2px}
.chp-acc-on{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;
  background:var(--gold-soft);color:var(--gold-ink);border-radius:3px;padding:8px 10px}
.chp-acc-on span{color:inherit;opacity:.85}
.chp-acc-on .btn{margin-left:auto}
.chatpanel textarea, .fbreply textarea{background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:8px 10px;font-size:13.5px;color:var(--ink)}

/* ---- εισαγωγή παραστατικού λήψης (σάρωση/OCR) ---- */
.dropzone{
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  padding:44px 24px;background:var(--panel);border:1px solid var(--rule);border-top:2.5px solid var(--navy);
  border-radius:2px;cursor:pointer;transition:background .18s ease-out,border-color .18s ease-out;
}
.dropzone:hover,.dropzone.over,.dropzone:focus-visible{background:var(--navy-tint);border-top-color:var(--gold)}
.dropzone svg{width:30px;height:30px;color:var(--navy);opacity:.75}
.dropzone b{font-size:15px;color:var(--ink)}
.dropzone span{font-size:13.5px;color:var(--muted)}
.dropzone small{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.progress{height:5px;background:var(--rule-soft);border-radius:2px;overflow:hidden}
.progress i{display:block;height:100%;width:100%;transform:scaleX(.06);transform-origin:left;background:var(--gold);transition:transform .3s ease-out}
.intakegrid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:18px;align-items:start}
.intakeprev{position:sticky;top:78px}
.intakeimg{width:100%;display:block;border:1px solid var(--rule);border-radius:2px;background:#fff}
.ocrtext{margin:8px 0 0;padding:10px 12px;background:var(--navy-tint);border:1px solid var(--rule-soft);border-radius:2px;
  font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.55;color:var(--ink);
  max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word}
.intakewarn{margin:14px 0 4px;padding:9px 12px;background:var(--gold-soft);border:1px solid var(--gold);border-radius:2px;font-size:13px;color:var(--gold-ink)}
.attachbox{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.attachbox .sub{margin:0}
.attmark{display:inline-flex;vertical-align:middle;color:var(--muted);margin-left:4px}
.attmark svg{width:14px;height:14px}
@media (max-width:900px){ .intakegrid{grid-template-columns:minmax(0,1fr)} .intakeprev{position:static} }
.optnote{font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted)}

/* ============================================================
   ΠΡΟΣΑΡΜΟΓΗ ΣΕ ΟΘΟΝΕΣ — τηλέφωνο, tablet, φορητό, γραφείο
   Ο κόσμος μένει ο ίδιος: ιστίο ναυτικού μπλε πάνω από χαραγμένα
   φύλλα. Στο τηλέφωνο το φύλλο δεν στενεύει, γίνεται δελτίο.
   ============================================================ */

/* -- ασφαλείς περιοχές (εγκοπή/δείκτης home σε σύγχρονα κινητά) -- */
.masthead-inner{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}
.page{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}

/* -- μεγαλύτεροι στόχοι όπου το δάχτυλο είναι ο δείκτης -- */
@media (pointer:coarse){
  .iconbtn,.avatarbtn{width:42px;height:42px}
  .iconbtn svg{width:19px;height:19px}
  .segmented a{padding:11px 16px}
  .btn{padding:11px 18px;min-height:42px}
  .btn-quiet{padding:11px 16px}
  .xline{width:38px;height:38px}
  .chipx{padding:8px 10px}
  input[type="checkbox"],.filters .check input,.task input[type="checkbox"]{width:20px;height:20px}
  .field input,.field select,.field textarea,.filters select,.filters input{min-height:42px}
  .lines input,.lines select{min-height:42px}
  .reflist summary,details>summary{padding:14px;min-height:44px;display:flex;align-items:center;gap:6px}
  .um-item{padding:11px 12px}
  .calpop2 button{padding:11px 12px}
  /* ο δείκτης δεν αιωρείται: η ετικέτα του μενού δεν έχει νόημα */
  .mainnav a::before{display:none}
}

/* -- ταινίες καρτελών: κυλούν οριζόντια αντί να σπρώχνουν τη σελίδα -- */
@media (max-width:760px){
  /* η ταινία γίνεται κυλιόμενη ΜΟΝΟ αν οι πρόγονοί της επιτρέπουν συρρίκνωση:
     τα flex items έχουν min-width:auto και κρατούν το πλάτος του περιεχομένου */
  .pagehead>*, .pagehead>div>*{min-width:0;max-width:100%}
  .segmented{display:flex;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .segmented::-webkit-scrollbar{display:none}
  .segmented a{flex:0 0 auto;white-space:nowrap}
  .wizbar{overflow-x:auto;scrollbar-width:none;justify-content:flex-start}
  .wizbar::-webkit-scrollbar{display:none}
  .wrule{min-width:24px}
  .pagehead{gap:10px}
}

/* -- ΠΙΝΑΚΕΣ ΩΣ ΔΕΛΤΙΑ: κάτω από 640px κάθε εγγραφή γίνεται μπλοκ,
      με την επικεφαλίδα της στήλης ως ετικέτα αριστερά και την τιμή δεξιά.
      Οι ετικέτες μπαίνουν αυτόματα από το thead (labelTableCells). -- */
@media (max-width:640px){
  .page table,
  .page table>tbody,
  .page table>tbody>tr,
  .page table>tbody>tr>td{display:block;width:auto}
  .page table>thead{display:none}
  .page table>tbody>tr{
    padding:12px 16px;border-bottom:1px solid var(--rule);
  }
  .page table>tbody>tr:last-child{border-bottom:none}
  .page table>tbody>tr>td{
    display:grid;grid-template-columns:minmax(84px,40%) minmax(0,1fr);gap:12px;align-items:baseline;
    padding:3px 0;border:none;text-align:right;
  }
  .page table>tbody>tr>td[data-label]::before{
    content:attr(data-label);
    font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
    color:var(--muted);text-align:left;line-height:1.5;
  }
  /* το πρώτο κελί είναι ο τίτλος του δελτίου, όχι ζεύγος ετικέτας/τιμής */
  .page table>tbody>tr>td:first-child{
    display:block;text-align:left;font-weight:700;font-size:15px;padding:0 0 6px;
  }
  .page table>tbody>tr>td:first-child::before{content:none}
  .page table>tbody>tr>td .sub{display:block;text-align:left;font-weight:400}
  .page table>tbody>tr>td:first-child .sub{margin-top:2px}
  .page table>tbody>tr>td:empty{display:none}
  /* οι ενδείξεις κατάστασης κάθονται στη δεξιά στήλη, δεν τεντώνονται */
  .page table>tbody>tr>td>.pill{justify-self:end}
  /* γραμμές συνόλων: κρατούν τη χοντρή γραμμή του καθολικού */
  .page table>tbody>tr.totrow{border-top:2px solid var(--navy)}
  .page table>tbody>tr.totrow td{font-weight:800}
  /* γραμμές παραστατικού υπό έκδοση: ετικέτα πάνω, πεδίο σε όλο το πλάτος */
  .page table.lines>tbody>tr>td{grid-template-columns:minmax(0,1fr);gap:4px;text-align:left;padding:5px 0}
  /* στις γραμμές παραστατικού το πρώτο κελί είναι κι αυτό πεδίο — κρατά ετικέτα */
  .page table.lines>tbody>tr>td:first-child{display:grid;font-weight:400;font-size:inherit;padding-bottom:5px}
  .page table.lines>tbody>tr>td:first-child::before{content:attr(data-label)}
  .page table.lines>tbody>tr>td::before{text-align:left}
  .page table.lines input,.page table.lines select{width:100%}
  .page table.lines>tbody>tr{border-bottom:2px solid var(--rule)}
}

/* -- τα δύο αιωρούμενα στοιχεία δεν πατάνε πάνω στο περιεχόμενο -- */
.chatballoon{right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}
.chatpanel{right:max(18px,env(safe-area-inset-right));bottom:calc(max(18px,env(safe-area-inset-bottom)) + 64px)}
@media (max-width:900px){
  /* η καρτέλα «Σημειώσεις» φεύγει από την πλαϊνή ακμή και γίνεται
     κουμπί κάτω αριστερά — δεν κρύβει πια κείμενο και πίνακες */
  #sidetab{
    top:auto;bottom:max(18px,env(safe-area-inset-bottom));left:max(14px,env(safe-area-inset-left));right:auto;
    transform:none;writing-mode:horizontal-tb;border-radius:3px;padding:13px 16px;
  }
  #sidetab:hover{transform:none}
  .page{padding-bottom:88px}
}
@media (max-width:640px){
  .chatballoon{width:46px;height:46px}
  .chatpanel{left:12px;right:12px;width:auto;max-width:none}
}

/* -- ημερολόγιο σε τηλέφωνο: το χρονοδιάγραμμα κυλά, δεν συνθλίβεται -- */
@media (max-width:640px){
  .timeline{--tlcols:64px 132px repeat(15,minmax(52px,1fr))}
  .cal-head span{padding:8px 3px 6px;font-size:10px;letter-spacing:.04em}
}
.mksuprow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.mksuprow input{flex:1 1 200px;min-width:0;background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:9px 11px;font-size:14px;color:var(--ink)}
.mksuprow input:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}
.mksuprow input::placeholder{color:var(--muted);opacity:1}

/* ---- πρότυπο ανάγνωσης: ορισμός περιοχών πάνω στο παραστατικό ----
   Κάθε πεδίο έχει το δικό του χρώμα και βάφει την περιοχή του· τα χρώματα εδώ
   είναι ΚΩΔΙΚΟΠΟΙΗΣΗ ΔΕΔΟΜΕΝΩΝ, όχι διακόσμηση — γι' αυτό βγαίνουν έξω από τη
   δυάδα ναυτικό/χρυσό, κρατώντας όμως θεσμικούς, σβησμένους τόνους. */
.tplstage{
  position:relative;overflow:hidden;background:var(--panel-2);
  border:1px solid var(--rule);border-radius:2px;
  touch-action:none;user-select:none;cursor:grab;
}
.tplstage.zoomed{cursor:grab}
.tplstage.panning{cursor:grabbing}
.tplstage.marking{cursor:crosshair}
.tplcanvas{position:absolute;top:0;left:0;width:100%;transform-origin:0 0;line-height:0;--iz:1}
.tplimg{display:block;width:100%;height:auto;background:#fff}
.tplrects{position:absolute;inset:0;pointer-events:none}
/* Το 60% μπαίνει στο ΧΡΩΜΑ, όχι στο opacity του στοιχείου: αλλιώς ξεθωριάζει
   μαζί και η ετικέτα του πεδίου, που πρέπει να μένει ευανάγνωστη. */
.tplrect{position:absolute;display:block;background:color-mix(in srgb, var(--fld) 60%, transparent);border-radius:2px}
.tplrect.active{background:color-mix(in srgb, var(--fld) 75%, transparent);outline:2px solid var(--fld)}
.tplrect b{
  position:absolute;top:0;left:0;background:var(--fld);color:#fff;
  font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:2px 5px;line-height:1.4;white-space:nowrap;
  transform:scale(var(--iz));transform-origin:0 0;
}
.tplswatch{display:inline-block;width:11px;height:11px;border-radius:2px;background:var(--fld);margin-right:8px;vertical-align:-1px}
/* Η σελίδα του παραστατικού είναι όλη η δουλειά· ο κατάλογος πεδίων είναι
   συνοδευτικός. Τρία τέταρτα στην εικόνα, ένα στα πεδία. */
.tplgrid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:18px;align-items:start}
.tplside{position:sticky;top:78px}
.tplside .panel-head{flex-wrap:wrap;row-gap:6px}
.tplside .panel-head .pill{white-space:normal;text-align:left;line-height:1.35}
.tplfields{list-style:none;margin:0;padding:0}
.tplfield{
  display:grid;grid-template-columns:11px minmax(0,1fr) auto;
  align-items:center;column-gap:8px;row-gap:3px;
  padding:9px 16px;border-top:1px solid var(--rule-soft);
}
.tplfield:first-child{border-top:0}
.tplfield .tplswatch{margin:0}
.tplname{font-size:13.5px;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.tplfield .btn{padding:4px 10px;font-size:12px}
.tplfield .tplfound{grid-column:2 / 4;font-size:12px;color:var(--ink);line-height:1.4}
.tplfoot{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
@media (max-width:1100px){
  .tplgrid{grid-template-columns:minmax(0,1fr)}
  .tplside{position:static}
}
.f-date{--fld:#00396e}
.f-docRef{--fld:#8a6a00}
.f-afm{--fld:#0f6b74}
.f-net{--fld:#1f6b52}
.f-vat{--fld:#8c3a76}
.f-gross{--fld:#a33c2f}
.f-mark{--fld:#4a4f8c}
.tplbar{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.tplbar .btn{padding:7px 12px}
.tplzval{font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--muted);min-width:46px;text-align:center}
.tplfound{font-variant-numeric:tabular-nums;word-break:break-word}
.tplacts{display:inline-flex;align-items:center;gap:6px;justify-content:flex-end}

/* Παραστατικά από την ΑΑΔΕ: πίνακας επιλογής υπάρχοντος εξόδου κάτω από τη γραμμή */
tr.ibpickrow>td{background:var(--panel-2);padding:12px 16px}
.ibpick{display:flex;flex-direction:column;gap:10px}
.ibpick .search{max-width:420px}
.ibopts{display:flex;flex-wrap:wrap;gap:6px}
.ibopts .btn{font-size:12.5px;padding:6px 10px;font-variant-numeric:tabular-nums;text-align:left}
.ibopts .sub{font-size:13px}
/* Ο εκδότης δεν επιτρέπεται να σπρώξει έξω τα κουμπιά ενεργειών· αν ο χώρος
   τελειώσει, τα κουμπιά τυλίγονται αντί να βγαίνουν έξω από τον πίνακα. */
.ibtbl td:nth-child(2){max-width:230px}
.ibtbl td:nth-child(5){max-width:230px}
.ibtbl td:last-child{white-space:normal}
.ibtbl .tplacts{flex-wrap:wrap}
.ibtbl .tplacts .btn{padding:6px 11px;font-size:12.5px}

/* Ιδιότητες: οι τιμές κάθε ομάδας ως ετικέτες, με τον κωδικό μπροστά */
.attrvals{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.attrval{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 6px 5px 10px;border:1px solid var(--rule);border-radius:3px;
  background:var(--panel-2);font-size:13px;
}
.attrval b{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.attrval .avname{cursor:pointer}
.attrval .avname:hover{text-decoration:underline}
.attrval .avx{
  border:0;background:none;color:var(--muted);cursor:pointer;
  font-size:15px;line-height:1;padding:0 3px;
}
.attrval .avx:hover{color:var(--danger)}
.avadd{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.avadd .avv{width:230px}
.avadd .avc{width:92px;text-transform:uppercase}
.avadd .btn{padding:7px 10px}
.avadd .btn svg{width:15px;height:15px}

/* Συνδυασμοί μέσα στην καρτέλα είδους */
.combobox{border-top:1px solid var(--rule-soft)}
.combobox h2{margin:0;font-size:15.5px}
.cbgroups{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.cbgroup .label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.attrval.pick{cursor:pointer;user-select:none;padding-left:8px}
.attrval.pick input{margin:0}
.attrval.pick:has(input:checked){border-color:var(--navy);background:var(--navy-tint)}
.cbtbl input{
  padding:5px 7px;font-size:13px;width:100%;min-width:70px;
  background:var(--panel);border:1px solid var(--rule);border-radius:3px;color:var(--ink);
}
.cbtbl input::placeholder{color:var(--muted);opacity:1}
.cbtbl input:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}
.cbtbl input.num{text-align:right;font-variant-numeric:tabular-nums;min-width:62px}
.cbtbl .cbstock{font-weight:700}
.cbtbl .cbstock.low{border-color:var(--danger);color:var(--danger)}
.cbtbl .cbdel{padding:4px 9px;font-size:15px;line-height:1}
.vtag{
  display:inline-block;margin-right:5px;padding:2px 7px;border-radius:3px;
  background:var(--panel-2);border:1px solid var(--rule-soft);font-size:12px;white-space:nowrap;
}

/* Ομάδα τύπου «χρώμα»: η απόχρωση επιλέγεται πάνω στην ίδια την ετικέτα */
.agkind{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.agkind input{margin:0}
.attrval input.avhex,.avadd input.avnewhex{
  -webkit-appearance:none;appearance:none;
  width:22px;height:22px;min-width:22px;padding:0;border:1px solid var(--rule);border-radius:50%;
  background:none;cursor:pointer;flex:0 0 auto;box-shadow:none;
}
.avhex::-webkit-color-swatch-wrapper,.avnewhex::-webkit-color-swatch-wrapper{padding:0}
.avhex::-webkit-color-swatch,.avnewhex::-webkit-color-swatch{border:none;border-radius:50%}
.avhex::-moz-color-swatch,.avnewhex::-moz-color-swatch{border:none;border-radius:50%}
.avadd input.avnewhex{width:30px;height:30px;min-width:30px}
.vtag .dot,.attrval .dot{
  display:inline-block;width:11px;height:11px;border-radius:50%;
  border:1px solid var(--rule);margin-right:5px;vertical-align:-1px;flex:0 0 auto;
}

/* Μάρκα δίπλα στο όνομα του είδους: διακριτική ταυτότητα, όχι δεύτερος τίτλος */
.brandtag{
  display:inline-block;margin-left:6px;padding:1px 7px;border-radius:3px;
  background:var(--panel-2);border:1px solid var(--rule-soft);
  font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--muted);
  vertical-align:1px;white-space:nowrap;
}

/* Η γραμμή που μόλις αποθηκεύτηκε: σύντομο σημάδι για να τη βρει το μάτι */
tbody tr.justsaved > td{
  background:var(--gold-soft);
  animation:justsaved 1.4s ease-out forwards;
}
@keyframes justsaved{ from{background:var(--gold-soft)} to{background:transparent} }
@media (prefers-reduced-motion:reduce){
  tbody tr.justsaved > td{animation:none}
}

/* ===== Γραφήματα Γραφείου ===== */
.dashcharts{
  display:grid;gap:18px;margin-top:18px;
  grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
}
@media (max-width:1000px){ .dashcharts{grid-template-columns:minmax(0,1fr)} }
.chempty{color:var(--muted);font-size:13.5px;padding:26px 0;text-align:center}

/* Δακτύλιος: το γράφημα δείχνει τη σχέση, το υπόμνημα δίνει τα νούμερα —
   ποτέ ταυτότητα μόνο από χρώμα. */
.donutwrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.donut{width:170px;height:170px;flex:0 0 auto}
.donut .dseg{cursor:pointer;transition:opacity .12s ease-out}
.donutwrap:hover .dseg{opacity:.55}
.donutwrap .dseg:hover{opacity:1}
.donut .dtot{text-anchor:middle;font-size:15.5px;font-weight:800;fill:var(--ink);font-variant-numeric:tabular-nums}
.donut .dsub{text-anchor:middle;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;fill:var(--muted)}
.lgds{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;gap:7px}
/* Το υπόμνημα ζει στη στενή στήλη του Γραφείου και τα ονόματα ομάδων είναι
   μεγάλα («Κόστη Αγορών & Προμηθειών»). Δύο σειρές ανά κατηγορία, όνομα πάνω
   και ποσό από κάτω: χωράει ολόκληρο, χωρίς αποσιωπητικά και χωρίς στρίμωγμα. */
.lgd{display:grid;grid-template-columns:11px minmax(0,1fr);align-items:start;column-gap:9px;row-gap:1px;font-size:13px}
.lgd i{width:11px;height:11px;border-radius:2px;margin-top:3px}
.lgd .nm{color:var(--ink);line-height:1.3}
.lgd .fig{grid-column:2;display:flex;gap:8px;align-items:baseline;font-variant-numeric:tabular-nums}
.lgd b{color:var(--ink)}
.lgd .pc{color:var(--muted);font-size:12px}

/* Το Γραφείο δείχνει έξι νούμερα: σε πλάτος μία σειρά, μετά τρία-τρία, μετά δύο. */
.dashband{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1280px){ .dashband{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:720px){ .dashband{grid-template-columns:repeat(2,minmax(0,1fr))} }
.dashband .stat .n{font-size:23px}
.dashband .stat{padding:15px 16px 13px}

/* ===== Εναλλασσόμενο πάνελ Γραφείου ===== */
.deckctl{display:inline-flex;align-items:center;gap:8px}
.deckarrow{
  width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid var(--rule);border-radius:3px;
  color:var(--muted);cursor:pointer;transition:background .15s ease-out,color .15s ease-out;
}
.deckarrow:hover{background:var(--panel-2);color:var(--navy);border-color:var(--muted)}
.deckarrow svg{width:15px;height:15px}
.deckdots{display:inline-flex;gap:5px;align-items:center}
.deckdots i{width:6px;height:6px;border-radius:50%;background:var(--rule);display:block}
.deckdots i.on{background:var(--navy)}
.deckempty{text-align:center;color:var(--muted);font-size:14px;padding:30px 20px}
.deckempty svg{width:26px;height:26px;opacity:.5;margin-bottom:8px}
.deckempty p{margin:0 0 12px}
.deckfoot{padding-top:12px;padding-bottom:14px}
/* Παραγωγή ανά στάδιο: το μήκος δείχνει τη σχέση, ο αριθμός δίνει την ακρίβεια */
.stagelist{display:flex;flex-direction:column;gap:9px}
.stagerow{
  display:grid;grid-template-columns:minmax(72px,26%) minmax(0,1fr) 28px;
  align-items:center;gap:12px;text-decoration:none;color:inherit;
}
.stagerow .snm{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stagerow .sbar{height:8px;border-radius:2px;background:var(--panel-2);overflow:hidden}
.stagerow .sbar i{display:block;height:100%;background:var(--navy);border-radius:2px}
.stagerow b{font-variant-numeric:tabular-nums;text-align:right;font-size:13.5px}
.stagerow:hover .snm{text-decoration:underline}
/* Οι εργασίες που ζητούν προσοχή χωρίζονται από τα στάδια με μια γραμμή, όχι με κενό */
.attnlist{border-top:1px solid var(--rule-soft);margin-top:14px}
.attnlist > .jobrow:last-child{border-bottom:none}

/* Λωρίδα ημέρας μέσα στο πάνελ: χωρίς στήλη ημέρας, πιο χαμηλή, κυλάει οριζόντια
   και ανοίγει στην τρέχουσα ώρα. */
.timeline.deckone{min-width:1390px;--tlcols:150px repeat(15,minmax(82px,1fr))}
.timeline.deckone .tl-cell{min-height:118px}
.timeline.deckone .tl-head span{padding:8px 6px 6px}
.deckday{border-bottom:1px solid var(--rule-soft)}
/* Το «Όλη μέρα» μένει καρφωμένο αριστερά όσο κυλάνε οι ώρες: είναι το μόνο
   κελί που πρέπει να φαίνεται πάντα, γιατί εκεί κάθονται οι προθεσμίες. */
.timeline.deckone .tl-head span:first-child,
.timeline.deckone .tl-row > .tl-cell:first-child{
  position:sticky;left:0;z-index:2;
  box-shadow:1px 0 0 var(--rule);
}
.timeline.deckone .tl-head span:first-child{background:var(--panel)}
.timeline.deckone .tl-row > .tl-allday{background:var(--panel-2)}

/* ===== myDATA 1.2.0: αποστολή, επαλήθευση, «υπάρχει ήδη;» =====
   Ίδιο ιδίωμα με το .keylost: απόχρωση φόντου + ράγα από πάνω, ποτέ πλαϊνή μπάρα.
   Χρυσό = προσοχή, πράσινο = γνωστό/επαληθευμένο, κόκκινο = σταματάμε. */
.mdnote{margin:0 0 12px;padding:10px 13px;background:var(--panel-2);border-top:2.5px solid var(--rule);
  font-size:13.5px;line-height:1.5;max-width:72ch}
.mdnote.warn{background:var(--gold-soft);border-top-color:var(--gold);color:var(--ink)}
.mdnote.bad{background:var(--danger-soft);border-top-color:var(--danger)}
.mdnote.ok{background:var(--ok-soft);border-top-color:var(--ok)}
.mdnote p{margin:4px 0 0}
.mdnote .btn{margin-left:6px;padding:4px 10px;font-size:12.5px;vertical-align:baseline}
.mdprob{margin:6px 0 0 18px;padding:0}
.mdprob li{margin:3px 0}
.mdprob a,.mdnote a{font-weight:600;white-space:nowrap;color:var(--navy)}

/* «Θα σταλεί ως ΤΔΑ-41»: ο αριθμός είναι το πιο σημαντικό πράγμα στην οθόνη,
   γιατί μόλις φύγει δεν αλλάζει. Μεγάλος, tabular, με την αιτιολογία από κάτω. */
.mdsend{margin-bottom:18px}
.mdsend .panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mdplan{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:baseline;margin:0 0 14px}
.mdplan .k{grid-column:1/-1;font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.mdplan .v{font-size:28px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--navy);line-height:1.2}
.mdplan .m{font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.mdplan .why{grid-column:1/-1;margin:6px 0 0;font-size:13.5px;max-width:72ch}
.mdplan .why .sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.mdact{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.mdact + div:not(:empty){margin-top:12px}
.mdmanual{border-top:1px solid var(--rule-soft)}
.mdmanual>summary{padding:12px 20px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--muted)}
.mdmanual[open]>summary{border-bottom:1px solid var(--rule-soft)}

/* Λωρίδα κατάστασης πάνω από το παραστατικό (δεν τυπώνεται). */
.mdstrip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;
  margin:0 0 14px;padding:10px 14px;background:var(--panel);border:1px solid var(--rule-soft);border-top:2.5px solid var(--rule)}
.mdstrip.verified{border-top-color:var(--ok)}
.mdstrip.sending{border-top-color:var(--gold);background:var(--gold-soft)}
.mdstrip.mismatch{border-top-color:var(--danger);background:var(--danger-soft)}
/* 1.4.0: απόρριψη / απόκλιση από τον πελάτη (timologio) */
.mdstrip.rejected{border-top-color:var(--danger);background:var(--danger-soft)}
.mdstrip.disputed{border-top-color:var(--gold);background:var(--gold-soft)}
.mdstrip.rejected .b,.mdstrip.disputed .b{max-width:none}
.mdstrip.rejected .b p,.mdstrip.disputed .b p{max-width:78ch}
.mdstrip .b p + p{margin-top:6px}
.mdstrip .rejtodo{font-weight:600;color:var(--ink)}
.mdstrip .l{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.mdstrip .mk{font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted)}
.mdstrip .r{display:flex;flex-wrap:wrap;gap:8px}
.mdstrip .b{flex-basis:100%;font-size:13.5px;max-width:78ch}
.mdstrip .b p{margin:0}

.mdinsight .mdnote{margin:2px 0 0}
.mdinsight .mdnote + .mdnote{margin-top:8px}
.mdset h3{margin:0 0 4px;font-size:14px;font-weight:700;display:flex;align-items:center;gap:10px}
.mdset .sub{margin:0 0 10px;color:var(--muted);font-size:13.5px;max-width:72ch}
.mdsetrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.mdsetrow .sub{margin:0}
@media print{ .mdstrip,.mdsend{display:none!important} }
@media (max-width:640px){
  .mdplan .v{font-size:23px}
  .mdstrip .r{width:100%}
  .mdstrip .r .btn{flex:1 1 auto}
}

/* ===== 1.2.1: timologio χωρίς πληκτρολόγηση ===== */
.twlead{margin:0 0 10px;font-size:14px;max-width:70ch}
.twnext{margin:0 0 14px;font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.twbg{margin:10px 0 12px;font-size:13px;color:var(--muted);max-width:70ch}
/* «Περιμένω»: ένα ήσυχο σημείο που αναπνέει — ζωντανό, όχι συναγερμός. */
.twwait{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--panel-2);border-top:2.5px solid var(--navy)}
.twwait b{display:block;font-size:14px}
.twwait .sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}
.twdot{flex:none;width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--navy);animation:twbreathe 2.4s ease-in-out infinite}
@keyframes twbreathe{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){ .twdot{animation:none;opacity:1} }
.twpick{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.twcand{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--rule-soft);background:var(--panel)}
.twcand b{font-size:15.5px;font-variant-numeric:tabular-nums}
.twcand .sub{display:block;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
@media (max-width:640px){ .twcand{flex-direction:column;align-items:stretch} }

/* ===== 1.2.2: Ρυθμίσεις → Έντυπα, παράδοση στον πελάτη ===== */
.pfgrid{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:18px;align-items:start}
.pfgrid .panel{margin-bottom:18px}
.pfpreview{position:sticky;top:12px}
@media (max-width:1100px){
  .pfgrid{grid-template-columns:minmax(0,1fr)} .pfpreview{position:static}
  /* στο κινητό η προεπισκόπηση έρχεται αμέσως μετά τα πρότυπα, όχι στο τέλος της σελίδας */
  .pfside{display:contents} .pfside>.panel:first-child{order:1} .pfpreview{order:2;margin-bottom:18px} .pfside>.panel:not(:first-child){order:3}
  .pfgrid .pfpages{max-height:none}
}
@media (max-width:640px){
  .pfopts .segmented{display:flex;width:100%} .pfopts .segmented a{flex:1 1 0;text-align:center;padding-left:6px;padding-right:6px}
  .pfopts .pfrow{grid-template-columns:minmax(0,1fr);gap:6px}
  .pfseries{display:flex;width:100%} .pfseries a{flex:1 1 auto;text-align:center}
}
.pfseries{margin:0 0 14px;flex-wrap:wrap}
.pfcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pfgroup{margin:16px 0 8px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pfgroup:first-child{margin-top:0}
.pfsel{margin-top:14px;padding:12px 14px;background:var(--panel-2);border-top:1px solid var(--rule);font-size:13px;line-height:1.5}
.pffrom{display:block;margin-top:4px;color:var(--muted);font-size:12px}
.pfthumb.thermal{display:flex;justify-content:center;background:var(--panel-2)}
.pfthumb.thermal svg{width:58%;background:#fff}
.pfpages.thermal{align-items:center}
.pfpages.thermal .pfpage{width:min(100%,360px)}
.docprintbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;max-width:820px}
.docprintbar label{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.docprintbar select{background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:7px 9px;font-size:13.5px;color:var(--ink);min-width:min(100%,280px)}
.docprintbar select:focus{border-color:var(--focus);outline:none}
.pfcard{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:10px;text-align:left;cursor:pointer;
  background:var(--panel);border:1px solid var(--rule);border-radius:2px;font:inherit;color:var(--ink)}
.pfcard:hover{border-color:var(--navy)}
.pfcard.on{border-color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--navy)}
.pfcard:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.pfthumb{display:block;aspect-ratio:210/297;overflow:hidden;background:#fff;border:1px solid var(--rule-soft);margin-bottom:6px}
.pfthumb svg{width:100%;height:auto;display:block}
.pfname{font-weight:700;font-size:12.5px;line-height:1.3}
.pfdesc{font-size:12px;color:var(--muted);line-height:1.4}
.pfopts .check{display:flex;align-items:center;gap:8px;font-size:14px}
.pfrow{display:grid;grid-template-columns:72px 1fr;justify-items:start;align-items:center;gap:12px;margin:0 0 14px}
.pfhint{margin:4px 0 10px 26px;font-size:13px;color:var(--muted);max-width:60ch}
.pfswatches{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pfsw{width:28px;height:28px;border-radius:50%;border:2px solid var(--panel);box-shadow:0 0 0 1px var(--rule);cursor:pointer;padding:0}
.pfsw.on{box-shadow:0 0 0 2px var(--ink)}
.pfsw:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.pfcustom{position:relative;overflow:hidden;background:conic-gradient(#c33,#cc3,#3c3,#3cc,#33c,#c3c,#c33)}
.pfcustom input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.pfchecks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-top:4px}
@media (max-width:640px){ .pfchecks{grid-template-columns:minmax(0,1fr)} .pfcards{gap:8px} .pfdesc{display:none} }
.pfpages{padding:16px;background:var(--panel-2);display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 140px);overflow:auto}
.pfpage{background:#fff;box-shadow:var(--shadow)}
.pfpage svg{width:100%;height:auto;display:block}

.dvbox{margin:0 0 18px;padding:0;background:var(--panel);border:1px solid var(--rule);box-shadow:var(--shadow)}
.dvhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 20px;margin:0;
  border-bottom:2.5px solid var(--navy);box-shadow:inset 0 -5px 0 -4px var(--rule)}
.dvhead h3{margin:0;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy)}
.dvbody{padding:16px 20px}
.dvstatus{margin:0;font-size:13.5px}
.dvstatus.ok{color:var(--ok)}
.dvstatus.bad{color:var(--danger)}
.dvrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dvrow input{flex:1 1 220px;min-width:0;max-width:340px}
@media (max-width:640px){ .dvrow .btn{flex:1 1 auto} }
/* Το παραστατικό στην οθόνη = το έντυπο που φτάνει στον πελάτη (1.2.2) */
.docpages{display:flex;flex-direction:column;gap:14px;max-width:820px;margin-bottom:18px}
.docpages .pfpage{border:1px solid var(--rule-soft)}
.docpages.thermal{align-items:flex-start}
.docpages.thermal .pfpage{width:min(100%,340px)}
.navlink{color:var(--navy);font-weight:600}

/* 1.2.3: «Πήρε ΜΑΡΚ — αποστολή στον πελάτη;» — μη αποκλειστικό, κάτω αριστερά */
.dlvdock{position:fixed;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:60;
  width:min(400px,calc(100vw - 36px));background:var(--panel);border:1px solid var(--rule);border-top:3px solid var(--navy);
  box-shadow:0 12px 32px -12px rgba(20,35,47,.35);padding:14px 16px 12px}
.dlvhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.dlvhead h2{margin:0;font-size:15px;font-weight:800;color:var(--ink)}
.dlvcount{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.dlvsub{margin:4px 0 0;font-size:13px;color:var(--muted);line-height:1.45}
.dlvsub a{color:var(--navy);font-weight:600}
.dlverr{margin:8px 0 0;font-size:13px;color:var(--danger)}
.dlvrow{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.dlvrow input{flex:1 1 180px;min-width:0;background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:8px 10px;font-size:14px;color:var(--ink)}
.dlvrow input:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}
.dlvremember{margin:12px 0 0;padding:10px 12px;border:1px solid var(--rule);border-radius:4px}
.dlvremember legend{font-size:12px;font-weight:700;color:var(--ink);padding:0 4px}
.dlvremember label{display:flex;align-items:center;gap:8px;font-size:13.5px;padding:3px 0;cursor:pointer}
.dlvremember input{accent-color:var(--navy)}
.dlvacts{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule-soft)}
.dlvacts .btn{padding:7px 12px;font-size:13px}
.dlvnext{margin-left:auto}
@media (max-width:640px){
  .dlvdock{left:10px;right:10px;width:auto;bottom:max(10px,env(safe-area-inset-bottom))}
  .dlvrow .btn{flex:1 1 100%}
}
@media print{ .dlvdock{display:none} }

/* 1.2.6: προεπισκόπηση email πριν την αποστολή */
.epdlg{width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;border:1px solid var(--rule);
  border-top:3px solid var(--navy);background:var(--panel);color:var(--ink);box-shadow:0 24px 60px -20px rgba(20,35,47,.45)}
.epdlg::backdrop{background:rgba(20,35,47,.42)}
.epform{display:flex;flex-direction:column;gap:12px;padding:20px 22px 18px;overflow:auto;max-height:calc(100vh - 52px)}
.epform h2{margin:0 0 2px;font-size:19px}
.epmeta{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:13.5px}
.epmeta dt{color:var(--muted)}
.epmeta dd{margin:0;overflow-wrap:anywhere}
.epmeta dd .sub{display:block;font-size:12.5px;color:var(--muted)}
.epform textarea{resize:vertical;min-height:180px;line-height:1.5}
.epattach{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:10px 12px;border:1px solid var(--rule-soft);font-size:13.5px}
.epfile{font-weight:600;font-variant-numeric:tabular-nums}
.epnote{margin:0;font-size:12.5px;color:var(--muted)}
.epacts{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media (max-width:560px){.epform{padding:16px}.epacts .btn{flex:1}}
.tgknown{margin:10px 0 0;font-size:13.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}

/* 1.2.7 — Λίστες: σειρές του timologio */
.sertbl td{vertical-align:middle}
.sertbl td.c,.sertbl th.c{text-align:center}
.sertbl .serlbl{width:100%;min-width:160px}
.sertbl tr.seroff td{color:var(--muted)}
.sertbl tr.seroff b{opacity:.6}
.seradd{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;align-items:center}
.seradd select{max-width:100%}
.lih3{font-size:13px;font-weight:600;letter-spacing:.02em;margin:18px 0 8px;color:var(--ink)}
.seraade{margin-top:18px;padding-top:4px;border-top:1px solid var(--rule-soft)}
.seraade ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.seraade li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule-soft);font-size:14px}
.seraade li:last-child{border-bottom:0}
.seraade li .sub{display:block;font-size:12px;color:var(--muted)}
details.lidarch>summary{cursor:pointer;list-style:none}
details.lidarch>summary::-webkit-details-marker{display:none}
details.lidarch>summary h2::after{content:'›';display:inline-block;margin-left:8px;color:var(--muted);transition:transform .15s}
details.lidarch[open]>summary h2::after{transform:rotate(90deg)}
@media (prefers-reduced-motion:reduce){details.lidarch>summary h2::after{transition:none}}
/* Έλεγχος σειράς ↔ πελάτη στο πρόχειρο */
.serhint{margin-top:6px;padding:8px 10px;background:var(--gold-soft);color:var(--gold-ink);border-radius:2px;font-size:13px;line-height:1.4;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.serhint[hidden]{display:none}
.serhint .btn{padding:3px 10px;font-size:13px}
.seraade-sub{margin:0 0 8px;font-size:13px;color:var(--muted);max-width:72ch}
/* 1.2.8 — Κατηγορίες timologio */
.tgctbl th.c{font-variant-numeric:tabular-nums;white-space:nowrap}
.tgcassign{margin-top:10px}
.tgctpl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.tgctpl .seraade-sub{margin:0}

/* ===== Γραφείο 2.0 (1.3.0) ===== */
.btn-sm{padding:6px 11px;font-size:13px}
.btn-sm svg{width:14px;height:14px}
.panelintro{margin:0 0 14px;color:var(--muted);font-size:13.5px;max-width:70ch}
.fieldhint{margin:0;font-size:12px;color:var(--muted)}
.panel-head .sub{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.emptyline{color:var(--muted);font-size:14px}
.emptyline small{display:inline;font-size:13px}
.emptyline.ok{color:var(--ok)}

/* Περίοδος: κουμπιά-διακόπτης + βελάκια· η σημείωση λέει με τι συγκρίνουμε */
.segmented button{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;padding:6px 14px;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--muted);border-right:1px solid var(--rule);transition:background .15s ease-out,color .15s ease-out}
.segmented button:last-child{border-right:none}
.segmented button:hover{background:var(--panel-2);color:var(--navy)}
.segmented button.on{background:var(--navy-deep);color:#fff}
:root[data-theme="dark"] .segmented button.on{background:var(--navy-tint);color:var(--on-navy)}
.segmented button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.periodbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin:0 0 12px}
.perstep{display:inline-flex;align-items:center;gap:8px}
.pername{font-size:15.5px;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;min-width:118px;text-align:center}
.pernote{font-size:13px;color:var(--muted);margin-left:auto}
.perrange{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.perfield{display:flex;flex-direction:column;gap:4px}
.perfield input.dtxt,.perfield input.dsys{background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:7px 10px;font-size:14px;color:var(--ink);width:136px}
@media (max-width:720px){ .pernote{margin-left:0;flex-basis:100%} }

/* «Θέλουν κίνηση»: μία γραμμή ανά υπόθεση, η ενέργεια δεξιά */
.actpanel{margin-bottom:18px}
.actgroup + .actgroup{border-top:1px solid var(--rule)}
.actgh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0;padding:12px 20px 6px;font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.actgh span{letter-spacing:.04em;text-transform:none;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.actrow{display:grid;grid-template-columns:84px minmax(0,1fr) auto auto;align-items:center;gap:6px 16px;padding:10px 20px;border-bottom:1px solid var(--rule-soft)}
.actgroup .actrow:last-child{border-bottom:none}
.actmain{min-width:0;font-size:14px}
.actmain b{font-weight:700;color:var(--ink)}
.actmain a{color:inherit;text-decoration:none}
.actmain a:hover b,.actmain small a:hover{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.actmain small{display:block;font-size:13px;color:var(--muted);margin-top:1px;line-height:1.4}
.actmain .reminded{color:var(--ok);font-weight:600}
.actamt{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}
.actamt.late-amt{color:var(--danger)}
.late{display:inline-flex;align-items:baseline;gap:3px;color:var(--danger);font-weight:800;font-size:19px;font-variant-numeric:tabular-nums;line-height:1}
.late small{font-size:12px;font-weight:700;letter-spacing:.04em}
.actmore{padding:9px 20px 11px;font-size:13px}
@media (max-width:640px){
  .actrow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mark amt" "main main" "go go";gap:6px 12px}
  .actmark{grid-area:mark}.actamt{grid-area:amt}.actmain{grid-area:main}.actgo{grid-area:go}
}
.setaside .panel-head .navlink,.openpanel .panel-head .navlink{font-size:13px;white-space:nowrap}

/* «Τι να κρατάτε στην άκρη»: δύο στήλες, φόρος | ΕΦΚΑ, χωρισμένες με κανόνα */
.setaside{margin-top:18px}
.sagrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.sacol{padding:16px 20px 18px;min-width:0}
.sacol + .sacol{border-left:1px solid var(--rule)}
@media (max-width:820px){ .sagrid{grid-template-columns:minmax(0,1fr)} .sacol + .sacol{border-left:none;border-top:1px solid var(--rule)} }
.sacol h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;font-size:13.5px;font-weight:700;color:var(--ink)}
.esttag{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);border:1px solid currentColor;border-radius:4px;padding:2px 7px}
:root[data-theme="dark"] .esttag{color:var(--gold)}
.estbig{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}
.estbig .n{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.15}
.estbig .n small{font-size:14px;font-weight:600;color:var(--muted);letter-spacing:0;margin-left:6px}
.estrow{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-top:1px solid var(--rule-soft);font-size:13.5px}
.estrow span{min-width:0}
.estrow small{display:block;font-size:12px;color:var(--muted)}
.estrow b{font-variant-numeric:tabular-nums;white-space:nowrap}
.estrow.strong b{color:var(--navy);font-weight:800}
.estrow.quiet{color:var(--muted)}
.estrow.quiet b{font-weight:600;color:var(--muted)}
.estnote{margin:8px 0 0;font-size:13px;color:var(--ink)}
.estnote.ok{color:var(--ok);font-weight:600}
.estnote.warn{color:var(--danger);font-weight:600}
.estmeta{margin:6px 0 0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.estdisc{margin:12px 0 0;font-size:12px;color:var(--muted);line-height:1.45;max-width:62ch}
.estnext{display:flex;flex-direction:column;gap:2px;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule-soft)}
.estnext b{font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}
.estnext small{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.estsetup p{margin:0 0 12px;font-size:13.5px;color:var(--muted);max-width:52ch}
.meter{height:8px;background:var(--rule-soft);border-radius:2px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--navy);transform-origin:left;transition:transform .25s ease-out}

/* Ανεξόφλητα: ο διακόπτης ζει στην κεφαλίδα του πάνελ */
.openpanel .panel-head{flex-wrap:wrap}
.segmented.small button{padding:5px 11px;font-size:12px}
.segn{font-variant-numeric:tabular-nums;font-weight:600;opacity:.85;margin-left:4px}
.payrow span small{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.late-txt{font-style:normal;color:var(--danger);font-weight:700}
.payrow b.plain{color:var(--ink)}

/* Κορυφαίοι πελάτες: ταξινομημένες μπάρες, όνομα και ποσό πάντα γραμμένα */
.toplist{padding:6px 0}
.toprow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nm val" "bar bar";gap:5px 12px;padding:9px 20px;text-decoration:none;color:inherit;transition:background .15s ease-out}
.toprow:hover,.toprow:focus-visible{background:var(--panel-2)}
.tnm{grid-area:nm;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbar{grid-area:bar;height:6px;background:var(--rule-soft);border-radius:2px;overflow:hidden}
.tbar i{display:block;height:100%;background:var(--navy);transform-origin:left}
.tval{grid-area:val;display:flex;gap:8px;align-items:baseline;font-variant-numeric:tabular-nums;white-space:nowrap}
.tval b{font-size:13.5px}
.tval small{font-size:12px;color:var(--muted);min-width:44px;text-align:right}
.topfoot{margin:0;padding:10px 20px 13px;border-top:1px solid var(--rule-soft);font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}

/* Αποθέματα */
.stockrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:inherit;font-size:14px;transition:background .15s ease-out}
.stockrow:last-child{border-bottom:none}
.stockrow:hover,.stockrow:focus-visible{background:var(--panel-2)}
.stockrow .snm{min-width:0}
.stockrow small{display:block;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

/* Πρόσφατη κίνηση: ημερομηνία | είδος | ποιος | ποσό */
.feedrow{display:grid;grid-template-columns:44px 74px minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:9px 20px;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:inherit;font-size:13.5px;transition:background .15s ease-out}
.feedrow:last-child{border-bottom:none}
.feedrow:hover,.feedrow:focus-visible{background:var(--panel-2)}
.fdate{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}
.fkind{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.feedrow.k-out .fkind{color:var(--navy)}
.feedrow.k-pay .fkind{color:var(--ok)}
.fwho{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fwho small{font-size:12px;color:var(--muted);margin-left:8px}
.famt{font-variant-numeric:tabular-nums;white-space:nowrap}
.feedrow.k-in .famt{color:var(--muted);font-weight:600}
.feedrow.k-pay .famt{color:var(--ok)}
@media (max-width:640px){ .feedrow{grid-template-columns:40px minmax(0,1fr) auto} .fkind{display:none} }
#estpanel{scroll-margin-top:84px}

/* ===== Λίστες: μετονομασία και μεταφορά (1.3.0) ===== */
.ecathint{margin:0 0 12px;font-size:13px;color:var(--muted);max-width:72ch}
.ecatbox{border:1px solid var(--rule-soft);border-radius:2px;padding:10px 12px;margin-bottom:10px;transition:background .15s ease-out,border-color .15s ease-out}
.ecatlist.dragmode .ecatbox,#ecatlist.dragmode .ecatbox{border-style:dashed;border-color:var(--rule)}
.ecatbox.dropon{background:var(--navy-tint);border-color:var(--navy);border-style:solid}
.ecathead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ecatname{display:inline-flex;align-items:center;gap:7px;background:transparent;border:1px solid transparent;border-radius:3px;padding:3px 6px;margin-left:-6px;cursor:pointer;color:var(--ink);font:inherit;font-size:13.5px}
.ecatname svg{width:13px;height:13px;color:var(--muted);opacity:.55;transition:opacity .12s,color .12s}
.ecatname:hover,.ecatname:focus-visible{border-color:var(--rule);background:var(--panel-2)}
.ecatname:hover svg,.ecatname:focus-visible svg{opacity:1;color:var(--gold-ink)}
:root[data-theme="dark"] .ecatname:hover svg{color:var(--gold)}
.ecatvdl{font-size:12px;color:var(--muted)}
.ecatren,.esubren{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ecatren input,.esubren input,.esubren select{background:var(--panel);border:1px solid var(--focus);border-radius:3px;padding:6px 9px;font-size:13.5px;color:var(--ink)}
.ecatren input{min-width:220px;font-weight:700}
.esubren{flex-basis:100%;padding:8px;border:1px solid var(--rule);border-radius:3px;background:var(--panel-2)}
.esubren input{flex:1;min-width:180px}
.esubmove{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.ecatsubs{margin-top:8px}
.esub{cursor:grab}
.esub.dragging{opacity:.45}
.esubname{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .12s}
.esubname:hover,.esubname:focus-visible{text-decoration-color:var(--gold-ink)}
.esubadd{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.esubadd input{flex:1;min-width:180px}
/* Ονόματα κατηγοριών που αλλάζουν επί τόπου: διαβάζονται σαν κείμενο, γράφονται σαν πεδίο */
input.catname,input.tgcname{width:100%;min-width:140px;background:transparent;border:1px solid transparent;border-radius:3px;padding:5px 7px;margin-left:-8px;font:inherit;font-size:14px;color:var(--ink);transition:border-color .12s,background .12s}
input.tgcname{font-weight:700;text-transform:uppercase}
input.catname:hover,input.tgcname:hover{border-color:var(--rule)}
input.catname:focus,input.tgcname:focus{border-color:var(--focus);background:var(--panel);outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}

/* ===== Κωδικός συναλλασσομένου (1.3.1) ===== */
th.c-code,td.c-code{width:1%;white-space:nowrap}
td.c-code b{font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy)}
td.c-code .sub{font-variant-numeric:tabular-nums}

/* ---- 1.4.1: «Δημόσιο» (πάνω μπάρα) ---- */
.govwrap .iconbtn[aria-expanded="true"]{background:rgba(255,255,255,.14)}
.govmenu{min-width:280px;max-width:min(340px,calc(100vw - 24px))}
.govitem{justify-content:space-between}
.govitem span:first-child{display:flex;flex-direction:column;gap:1px;min-width:0}
.govitem small{font-size:12px;font-weight:500;color:var(--muted)}
.govitem .ext{color:var(--muted);font-weight:700;font-size:13px}
.govitem.dim{color:var(--muted)}
.govnote{margin:6px 10px 4px;font-size:11.5px;line-height:1.45;color:var(--muted)}
.formgrid .field.wide2{grid-column:span 2}
@media (max-width:640px){ .formgrid .field.wide2{grid-column:1/-1} }
#govform.formgrid{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
#govform .field.wide2{grid-column:auto}
@media (max-width:640px){ #govform.formgrid{grid-template-columns:minmax(0,1fr)} }

/* ---- 1.4.1: σπάνιες ενέργειες γραμμής σε μενού «⋯» ---- */
.rowmore{position:relative;display:inline-block}
.rowmore>.btn{padding-left:10px;padding-right:10px}
.rowmore>.btn svg{width:16px;height:16px;margin:0}
.rowmore .menu{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:220px;background:var(--panel);border:1px solid var(--rule);border-radius:3px;box-shadow:var(--shadow-float);padding:6px;text-align:left}
.rowmore .menu button{display:block;width:100%;background:none;border:none;text-align:left;padding:8px 10px;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;border-radius:2px}
.rowmore .menu button:hover,.rowmore .menu button:focus-visible{background:var(--navy-tint);color:var(--navy);outline:none}
.aadepay{color:var(--ok)}
@media (max-width:640px){ .govmenu{position:fixed;left:12px;right:12px;min-width:0;max-width:none;max-height:calc(100vh - 140px);overflow:auto} }

/* ---- 1.4.2: «Έναρξη ημέρας» στο μενού Δημόσιο ---- */
.govstart span:first-child{font-weight:700;color:var(--navy)}
:root[data-theme="dark"] .govstart span:first-child{color:var(--gold)}
.govstartset{border:0;padding:0;margin:0;min-width:0}
.govstartset legend{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:5px}
.govstartopts{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:8px}
.govstartopts .check{font-size:13.5px}

/* ---- 1.4.2: Κατηγορία › Υποκατηγορία ειδών ---- */
.cattg{font-size:13.5px;letter-spacing:.02em}
.ecatbox.catnone{border-style:dashed;background:var(--panel-2)}
#cattree.dragmode .ecatbox:not(.catnone){border-style:dashed;border-color:var(--rule)}
#cattree .ecathead .sub{font-size:12px}

/* ---- 1.4.3: σύνδεσμος Λίστες → Αποθήκη / Υπηρεσίες ---- */
.panel.lijump{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 20px;text-decoration:none;color:var(--muted);font-size:13.5px}
.panel.lijump b{color:var(--navy);font-weight:700}
:root[data-theme="dark"] .panel.lijump b{color:var(--gold)}
.panel.lijump:hover{border-color:var(--navy)}
#cattree .ecatsubs > .sub{font-size:13px;color:var(--muted)}

/* ---- 1.4.4: QR στην ενεργοποίηση του δεύτερου κλειδιού ---- */
.totp-qrwrap{margin:8px 0 18px}
.totp-qr{width:200px;max-width:100%;aspect-ratio:1;background:#fff;padding:8px;border:1px solid var(--rule);border-radius:2px;box-sizing:border-box}
.totp-qr svg{display:block;width:100%;height:100%}
.totp-manual{margin-top:10px;font-size:13px}
.totp-manual summary{cursor:pointer;color:var(--navy);font-weight:600}
:root[data-theme="dark"] .totp-manual summary{color:var(--gold)}
.totp-manual[open] summary{margin-bottom:8px}
.totp-manual .btn{margin-top:8px}
.gate .totp-qr{margin:0 auto}

/* ---- 1.4.4: ρόλος λογιστή — μόνο προβολή ---- */
[data-role="accountant"] :is(#newbtn, #adde, #addc, #addi, #addp, #ibfetch, #confirmissue, #mdsend,
  a[href="#/documents/intake"], a[href="#/documents/new"], a[href$="/issue"], a[href="#/customers/new"], a[href="#/suppliers/new"],
  .segmented a[href="#/payments"], .rowmore, .epick, #e_bulk, .rowedit .edit, .ackbtn){display:none !important}

/* ---- 1.4.4: Γραφείο λογιστή ---- */
.accqs{flex-wrap:wrap}
.accqs a.on{background:var(--navy);color:#fff}
:root[data-theme="dark"] .accqs a.on{background:var(--gold);color:var(--bg)}
.acclead{margin:0 0 16px;font-size:14.5px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.acclead b{color:var(--ink);font-size:15.5px}
.accgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}
.acccol{padding:18px 22px 16px;border-right:1px solid var(--rule-soft)}
.acccol:last-child{border-right:none}
.accbig{display:block;margin:6px 0 2px;text-decoration:none;color:var(--muted);font-size:15px}
.accbig b{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums;margin-right:4px}
:root[data-theme="dark"] .accbig b{color:var(--ink)}
.accbig:hover b{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.accsplit{font-size:13px;color:var(--muted);margin-bottom:12px}
.accm{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--rule-soft);font-size:14px;font-variant-numeric:tabular-nums}
.accm span{color:var(--muted)}
.accm.tot{border-bottom:none;font-size:15px}
.accm.tot b{color:var(--ink)}
.accflag,.accok,.accnote{margin:12px 0 0;font-size:13px}
.accflag{color:var(--danger);font-weight:600}
.accok{color:var(--ok)}
.accnote{color:var(--muted)}
.accfunnel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.accfunnel a{position:relative;display:flex;flex-direction:column;gap:2px;padding:16px 22px 14px;text-decoration:none;color:inherit;border-right:1px solid var(--rule-soft);transition:background .12s ease-out}
.accfunnel a:last-child{border-right:none}
.accfunnel a:hover{background:var(--panel-2)}
.accfunnel a:not(:last-child)::after{content:'›';position:absolute;right:-6px;top:50%;transform:translateY(-50%);color:var(--rule);font-size:19px;font-weight:700;background:var(--panel);line-height:1;padding:2px 0}
.accfunnel b{font-size:28px;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
:root[data-theme="dark"] .accfunnel b{color:var(--ink)}
.accfunnel small{font-size:12.5px;color:var(--muted)}
.accfunnel a.miss{background:var(--danger-soft)}
.accfunnel a.miss b{color:var(--danger)}
.accfunnel a.none b{color:var(--ok)}
.accaside{padding-top:10px;padding-bottom:12px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--rule-soft)}
.panel-head .sub{font-size:12px;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400}
.accvat{box-shadow:none;border:none;border-radius:0}
.accfiles{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--rule-soft)}
.accfiles .label{margin-right:4px}
.accpend{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
.accrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 20px;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:var(--ink);font-size:14px}
.accrow:hover{background:var(--panel-2)}
.accrow b{font-variant-numeric:tabular-nums;white-space:nowrap}
.accrow.warn b{color:var(--danger)}
.accdl{padding:14px 20px;border-left:1px solid var(--rule-soft);background:var(--panel-2)}
.accdlrow{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--rule-soft);font-size:13.5px}
.accdlrow:last-child{border-bottom:none}
.accdlrow small{display:block;font-size:12px;color:var(--muted)}
.accdate{font-weight:700;font-variant-numeric:tabular-nums;color:var(--navy)}
:root[data-theme="dark"] .accdate{color:var(--gold)}
#accbody .panel + .panel{margin-top:18px}
@media (max-width:760px){
  .accfunnel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .accfunnel a:nth-child(2){border-right:none}
  .accfunnel a:nth-child(-n+2){border-bottom:1px solid var(--rule-soft)}
  .accfunnel a::after{display:none}
  .accpend{grid-template-columns:minmax(0,1fr)}
  .accdl{border-left:none;border-top:1px solid var(--rule-soft)}
  .acccol{border-right:none;border-bottom:1px solid var(--rule-soft)}
}

.accrow{border-left:none;border-right:none;border-top:none;border-radius:0}
