/* E5545 Φ3/Φ4 + Γ-31: οι ανακτημένοι legacy κανόνες ισχύουν μόνο χωρίς data-odb-ds. */
/* ODB — κέλυφος (Κ0-B). Ένα αρχείο, vanilla, χωρίς build.
   Η ΕΜΦΑΝΙΣΗ είναι αυτή που ξέρει ο owner (σκούρα αριστερή στήλη ομάδων, breadcrumb, κάρτες, πίνακες)·
   ο κώδικας είναι νέος (Α11). Γράμματα μενού 15px (λέξη owner, ΠΡΟΣΦΟΡΕΣ_RESPONSIVE §0). */
:root{
  --fs-keimeno-megalo:15.5px;   /* E3624: κείμενο + ιστορικό στην εισερχόμενη κλήση (popup) — ένα σκαλί πάνω από το --fs-keimeno */
  --fs-keimeno:13.5px;   /* E2335/E2341 (E1995): ΕΝΑ μέγεθος για όλα τα κείμενα κλήσεων (= .note-t των Σημειώσεων)· φρουρός Arch: κανένα font-size < 12.5px στο UI κλήσεων */
  /* E1941: κλίμακα z-index του κελύφους — η πάνω μπάρα (και το dropdown της καθολικής αναζήτησης μέσα της) πάνω από ΚΑΘΕ sticky/popover της σελίδας (ως 30–40), κάτω από το συρτάρι/scrim κινητού και τα modals (≥60). */
  --z-top:50;--z-scrim:55;--z-side-drawer:58;--z-mpara-popup:1101;/* E5473QF γ: 1101 > .dl-panels 1100 (dlack.css:226) */
  --navy:#1B2A4A;--navy-2:#26375F;--navy-on:#3A5BA8;--gold:#FFB454;
  --accent:#2563C7;--accent-ink:#1A4A9C;--accent-soft:#E4EDFB;
  --purple:#7B3FA0;--purple-soft:#F1E8F8;--orange:#D9731A;--orange-soft:#FDEEDF;
  --green:#1E8E5A;--green-soft:#E3F3EA;--danger:#C62828;--danger-soft:#F8E4E4;--warn:#B4571E;--warn-soft:#F6E9DF;
  --odb-provlepsi:var(--accent);--odb-provlepsi-soft:var(--accent-soft);--odb-ekkremis:var(--orange);--odb-ekkremis-soft:var(--orange-soft);/* E1249/E1250: μελλοντική πρόβλεψη = μπλε διακεκομμένο· εκδομένη/εκκρεμής είσπραξη = πορτοκαλί */
  --ink:#1B2229;--ink2:#3D474F;--muted:#4A4A4A;--bg:#F0F2F5;--card:#FFFFFF;--line:#DDE1E6;--paper2:#E6E9EE;
  --side-w:236px;
  --sans:"Segoe UI",system-ui,-apple-system,Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"Cascadia Mono",Consolas,monospace;
}
*{box-sizing:border-box}
/* Κ3-Kylisi (E1036, owner αυτούσια μετά από διευκρίνιση: «προς τα κάτω δεν υπάρχει καν μπάρα κύλισης»): η
   σελίδα ΚΥΛΟΥΣΕ ήδη σωστά (επιβεβαιωμένο) — απλώς η μπάρα κύλισης ήταν «overlay» (αόρατη, εμφανίζεται μόνο
   την ώρα του scroll/hover) σε πολλές ρυθμίσεις Windows/Chrome, οπότε φαινόταν σαν να μην υπάρχει καθόλου.
   Πάντα ορατή, λεπτή μπάρα στη ρίζα (σελίδα) — καθολικό, καμία ανά-σελίδα ρύθμιση. */
html{scrollbar-width:thin;scrollbar-color:#AEB6C2 var(--bg)}
html::-webkit-scrollbar{width:14px}
html::-webkit-scrollbar-track{background:var(--bg)}
html::-webkit-scrollbar-thumb{background:#AEB6C2;border-radius:8px;border:3px solid var(--bg)}
html::-webkit-scrollbar-thumb:hover{background:#8D97A6}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans);font-variant-numeric:tabular-nums}
a{color:var(--accent-ink)}
h1{font-size:22px;margin:0 0 6px;letter-spacing:-.01em}h2{font-size:16px;margin:26px 0 10px}h3{font-size:14px;margin:18px 0 8px;color:var(--ink2)}
.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12.5px;white-space:pre-wrap;word-break:break-word}
.inline{display:inline}

/* ── κέλυφος ── */
/* E1088-Δ: το κέλυφος είναι GRID (στήλη μενού | περιεχόμενο 1fr) — το πλάτος του περιεχομένου βγαίνει ΠΑΝΤΑ από το --side-w, ποτέ από το intrinsic μέγεθος των παιδιών. */
.shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100vh}
.side{grid-column:1;width:auto;min-width:0;background:var(--navy);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:20;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) var(--navy)}
.side::-webkit-scrollbar{width:10px}
.side::-webkit-scrollbar-track{background:var(--navy)}
.side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.35);border-radius:8px}
.side::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.55)}
/* E1485: λευκό λογότυπο DARC στο κενό πάνω από το «ODB» */
.side-darc{padding:14px 18px 0;line-height:0}
.side-darc img{display:block;height:28px;width:auto;max-width:100%}
.side .brand{display:block;padding:12px 18px;font-weight:800;font-size:18px;color:#fff;text-decoration:none;letter-spacing:.02em;border-bottom:1px solid rgba(255,255,255,.1)}
/* E1499: λευκό λογότυπο ODB (στήλες + «ODB») στη στήλη· στη μαζεμένη μόνο το σήμα */
.side .brand .brand-logo{display:block;width:auto;height:80px}
.side .brand .brand-mark{display:none;width:auto;height:34px;margin:0 auto}
/* E1515/E1516: λογότυπα DARC και ODB στην ΙΔΙΑ γραμμή πάνω σε ΟΛΑ τα πλάτη· το ODB μικρότερο (ύψος περίπου όσο το DARC), χωρίς κόψιμο */
.side-top{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.1);min-width:0}
.side-top .side-darc{padding:0;flex:0 1 auto;min-width:0}
.side-top .brand{padding:0;border-bottom:0;flex:0 0 auto}
.side-top .brand .brand-logo{height:32px;width:auto}
.side .nav{flex:1;padding:6px 0 10px}
.side .grp{padding:6px 0 2px}
.side .grp-l{padding:8px 18px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.5);font-weight:700}
.side button.grp-l{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:transparent;border:0;cursor:pointer;text-align:left;font-family:inherit;line-height:inherit}
.side button.grp-l:hover{color:#fff}
.side button.grp-l:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.side .grp-chev{width:14px;height:14px;flex:none;transition:transform .15s}
.side .grp.is-kleisti .grp-chev{transform:rotate(-90deg)}
.side .grp.is-kleisti>a{display:none}
.side .nav a{display:block;padding:7px 18px 7px 15px;color:rgba(255,255,255,.85);text-decoration:none;font-size:15px;font-weight:500;border-left:3px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .nav a:hover{background:var(--navy-2);color:#fff}
.side .nav a.is-on{background:var(--navy-on);color:#fff;font-weight:700;border-left-color:var(--gold)}
.side-foot{padding:12px 18px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.side-foot .who{font-weight:700;color:#fff;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-foot .role{color:rgba(255,255,255,.6);font-size:12px;width:100%;order:3}
.side-foot .tag-actor{display:inline-block;background:var(--gold);color:#3A2600;font-size:10px;font-weight:800;padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;vertical-align:1px;margin-left:4px}
.side-foot .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.side-foot .btn-ghost:hover{border-color:#fff}
.main{grid-column:2;min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:14px;padding:9px 22px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:var(--z-top,50);min-height:54px}
.burger{display:none;width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:18px;cursor:pointer;color:var(--ink2);flex:0 0 36px}
.crumb{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:17px;font-weight:700}
.crumb a{color:var(--muted);text-decoration:none;font-weight:600;white-space:nowrap}
.crumb a:hover{color:var(--accent-ink)}
.crumb i{font-style:normal;color:var(--muted)}
.crumb span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Μ-169 Κ4: ⚙ προς την κάρτα θέματος (κεφαλίδα: σκέτο εικονίδιο, πολλά θέματα ➜ μικρό μενού· μέσα σε στοιχείο: σύνδεσμος με κείμενο) */
.granazi-thematos{color:var(--muted);text-decoration:none;font-weight:600;font-size:14px}
.granazi-thematos:hover,.granazi-menou summary:hover{color:var(--accent-ink)}
.granazi-menou{position:relative}
.granazi-menou summary{list-style:none;cursor:pointer}
.granazi-menou summary::-webkit-details-marker{display:none}
.granazi-lista{position:absolute;z-index:30;top:100%;left:0;min-width:240px;display:flex;flex-direction:column;background:var(--card,#fff);border:1px solid var(--line,#ddd);border-radius:8px;padding:4px 0;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.granazi-lista a{padding:6px 12px;color:inherit;font-weight:500;white-space:nowrap}
.granazi-keimeno{font-size:13px}
.search{display:flex;align-items:stretch;flex:0 1 340px;min-width:140px}
.search input{flex:1;min-width:0;height:34px;border-radius:8px 0 0 8px}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.search button){height:34px;padding:0 10px;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;background:#fff;color:var(--ink2);cursor:pointer}


.top .actions{display:flex;gap:8px;align-items:center;flex:0 0 auto}
/* ── Κ3-Anazitisi: καθολική αναζήτηση της πάνω μπάρας ── */
.gsearch{position:relative;flex:0 1 300px;min-width:160px}
.gsearch input{width:100%;height:34px;border-radius:8px;border:1px solid var(--line);padding:0 10px;font:inherit}
.gsearch-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:70vh;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.14);z-index:30;padding:6px}
.gsearch-cat{padding:4px 0}
.gsearch-cat-h{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:6px 8px 2px}
.gsearch-item{display:flex;flex-direction:column;gap:1px;padding:7px 8px;border-radius:8px;text-decoration:none;color:var(--ink)}
.gsearch-item:hover,.gsearch-item.is-active{background:var(--accent-soft)}
.gsearch-t{font-weight:600;font-size:14px}
.gsearch-sub{font-size:12px;color:var(--muted)}
.gsearch-empty{padding:10px 8px;color:var(--muted);font-size:13px}
.gsearch-all{display:block;margin-top:4px;padding:8px;border-top:1px solid var(--line);text-align:center;font-size:13px;font-weight:700;color:var(--accent-ink);text-decoration:none;border-radius:0 0 8px 8px}
.gsearch-all:hover,.gsearch-all.is-active{background:var(--accent-soft)}
/* ── Κ3-Epilogeas-Pelati: επιλογέας αντισυμβαλλομένου (🔍) — Nea/Tamio/… ── */
.epig{position:relative;max-width:420px}
.epig-chip{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);color:var(--accent-ink);border-radius:8px;padding:6px 10px;font-weight:600}
.epig-row{display:flex;gap:6px}
.epig-input{flex:1 1 auto;height:34px;border-radius:8px;border:1px solid var(--line);padding:0 10px;font:inherit}
.epig-searchbtn{flex:0 0 auto;width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:15px;line-height:1}
.epig-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:60vh;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.14);z-index:30;padding:4px;margin:0;list-style:none}
.epig-item{display:flex;flex-direction:column;gap:1px;padding:7px 8px;border-radius:8px;cursor:pointer}
.epig-item:hover,.epig-item.is-active{background:var(--accent-soft)}
.epig-t{font-weight:600;font-size:14px}
.epig-sub{font-size:12px;color:var(--muted)}
.epig-empty{padding:10px 8px;color:var(--muted);font-size:13px}
.epig-modal-head{display:flex;gap:8px;padding:14px;border-bottom:1px solid var(--line)}
.epig-modal-q{flex:1 1 auto;height:36px;border-radius:8px;border:1px solid var(--line);padding:0 10px;font:inherit}
.epig-modal-body{overflow-y:auto;padding:0 14px}
.epig-modal-table th a{color:var(--ink2);text-decoration:none}
.epig-modal-table tr:hover td{background:var(--accent-soft);cursor:pointer}
.epig-modal-pager{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line)}
.epig-pager-info{color:var(--muted);font-size:12.5px;margin-right:auto}
.epig-size{height:30px;border-radius:8px;border:1px solid var(--line)}
.scrim{display:none;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:var(--z-scrim,55)}
.page{width:100%;max-width:none;margin:0;padding:20px 24px}/* E3084QF: περιεχόμενο κελύφους ΠΑΝΤΑ πλήρες πλάτος (καμία max-width/κεντράρισμα)· μένει μόνο το padding των άκρων */
.flash{max-width:1392px;margin:12px auto 0;width:calc(100% - 48px);padding:10px 14px;background:var(--green-soft);color:var(--green);border-radius:8px;font-weight:600}
.flash.bad{background:var(--danger-soft);color:var(--danger)}

/* ── κάρτες, πίνακες, ετικέτες, κουμπιά, φόρμες ── */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:0 0 20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.card-l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.card-v{font-size:22px;font-weight:700;margin-top:2px}
.card-s{font-size:12.5px;color:var(--muted);margin-top:4px}
.card.placeholder .card-v{color:var(--line)}
/* Κ3-Pinakas-C (owner E1041, αυτούσια: «οριζόντια δεν θέλω να είναι πλαίσιο») — ΚΑΝΕΝΑ κουτί (φόντο/περίγραμμα/
   στρογγύλεμα) γύρω από πίνακα, ούτε στους ένθετους πίνακες σχετικών εγγραφών μέσα σε .rel-b (ήδη μηδενίζουν
   border/border-radius παρακάτω — τώρα το ίδιο ισχύει ούτως ή άλλως από εδώ, καμία αλλαγή όψης εκεί). */
.tw{overflow-x:auto;margin:0 0 18px}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{text-align:left;vertical-align:top;padding:8px 10px;border-bottom:1px solid var(--line)}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--paper2);white-space:nowrap}
tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;white-space:nowrap}
tbody tr:hover{background:#F7F9FC}
.tag.t-xreos{background:var(--navy);color:#fff}
.tag{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--paper2);color:var(--muted);white-space:nowrap}
/* Γ-31/E2171: αρχικοί ρόλοι μόνο στο παλιό κέλυφος, χωρίς νέο CSS με OFF. */
:where(html:not([data-odb-ds])) .btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 14px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
:where(html:not([data-odb-ds])) .btn:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
:where(html:not([data-odb-ds])) .btn-ghost{display:inline-flex;align-items:center;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink2);font:inherit;font-size:13px;cursor:pointer;text-decoration:none}
:where(html:not([data-odb-ds])) .btn-ghost:hover{border-color:var(--ink2)}
:where(html:not([data-odb-ds])) .btn-sm{height:28px;padding:0 10px;font-size:12.5px}
.apostoli-stis09{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
input,select,textarea{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink)}
textarea{height:auto;padding:8px 10px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.callout{border-left:3px solid var(--accent);background:var(--accent-soft);padding:10px 14px;border-radius:0 8px 8px 0;margin:0 0 14px}
.callout.bad{border-color:var(--danger);background:var(--danger-soft)}
details summary{cursor:pointer;color:var(--accent-ink);font-weight:600;font-size:13px}

/* ── είσοδος ── */
.login-body{display:grid;place-items:center;min-height:100vh;background:var(--bg)}
.login{background:var(--card);border:1px solid var(--line);border-radius:14px;width:min(400px,92vw);overflow:hidden;box-shadow:0 12px 40px rgba(27,42,74,.12)}
.login-or{display:flex;align-items:center;gap:10px;margin:16px 0 12px;color:var(--ink2);font-size:12.5px}
.login-or::before,.login-or::after{content:"";flex:1;border-top:1px solid var(--line)}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.btn-google){display:flex;align-items:center;justify-content:center;gap:10px;height:40px;border-radius:8px;border:1px solid #dadce0;background:#fff;color:#3c4043;font:inherit;font-weight:500;text-decoration:none}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.btn-google:hover){background:#f8f9fa;border-color:#d2e3fc}



.login-top{background:#fff;color:var(--navy);padding:26px 26px 6px;text-align:center;line-height:0}
.login-top img{display:inline-block;width:132px;height:auto}
.login-b{padding:22px 26px 26px}
.login h1{font-size:18px;margin:0 0 4px}
.login form{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.login label{font-size:12.5px;color:var(--muted);font-weight:600}
.login .err{color:var(--danger);font-weight:600;margin:12px 0 0}

/* ── ΚΥΜΑ Κ2-Aisthitiki (dotnet): τα κοινά δομικά της διάταξης του παλιού CRM, 1:1 από worker/html.js CSS
   (ΓΝΩΣΗ/aisthitiki.md §1,§2,§4,§8 · ΑΙΣΘΗΤΙΚΗ_AGENT_BRIEF.md §1α). Οι τιμές χρωμάτων εδώ ήδη ταιριάζουν
   με τα τοκενς πιο πάνω (--purple/--orange/--green/…) — καμία αλλαγή στα tokens, μόνο προσθήκες κλάσεων. */
:root{--priv:#6B4E9B;--priv-soft:#EEE8F6;--bad:var(--danger);--bad-soft:var(--danger-soft)}
.n{display:inline-block;font-size:11.5px;background:var(--paper2);color:var(--muted);padding:0 7px;border-radius:999px;margin-left:6px;font-weight:700;vertical-align:middle}
.views{display:flex;gap:2px;flex-wrap:wrap;border-bottom:2px solid var(--line);margin:0 0 14px}
.views a{padding:8px 12px;text-decoration:none;color:var(--ink2);font-weight:600;font-size:13.5px;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap}
.views a:hover{color:var(--accent-ink)}.views a.is-on{color:var(--accent-ink);border-bottom-color:var(--accent)}.views a.is-on .n{background:var(--accent-soft);color:var(--accent-ink)}
.with-panel{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}.with-panel>*{min-width:0}
.fpanel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:4px 0;font-size:13.5px;position:sticky;top:66px;max-height:calc(100vh - 80px);overflow-y:auto}
.fsec{padding:8px 0;border-bottom:1px solid var(--line)}.fsec:last-child{border-bottom:0}
.fsec-t{padding:4px 14px 6px;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.fsec a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 14px;color:var(--ink2);text-decoration:none}.fsec a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fsec a:hover{background:var(--bg)}.fsec a.is-on{color:var(--orange);font-weight:700;background:var(--orange-soft)}.fsec a.is-on .n{background:#fff;color:var(--orange)}
.fsec .n{margin-left:auto}.fsec-h{padding:4px 14px}
.lrows{background:var(--card);border:1px solid var(--line);border-radius:10px;margin:0 0 18px}
.lrow{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}.lrows .lrow:last-child{border-bottom:0}.lrow:hover{background:#F7F9FC}.lrow.is-hit{outline:2px solid var(--accent)}
.lrow-c input{width:16px;height:16px;margin:0;display:block}.lrow-ic{width:28px;flex:0 0 28px;text-align:center;font-size:18px;line-height:1}
.lrow-b{flex:1;min-width:0}.lrow-t{font-weight:700;color:var(--ink);text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.lrow-t:hover{color:var(--accent-ink)}
.lrow-m{font-size:12.5px;color:var(--muted);margin-top:2px}.lrow-r{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.racts{display:inline-flex;gap:2px;align-items:center;white-space:nowrap}.racts form{display:inline}
.ract{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--ink2);text-decoration:none;font:inherit;font-size:14px;cursor:pointer;padding:0}
.ract:hover{background:var(--paper2);border-color:var(--line)}
/* Κ3-Kylisi-C (E1036/E1038 follow-up, owner αυτούσια: «δεν βλέπω πουθενά pagination» στο /eispraxeis — καθολικό,
   σε ΚΑΘΕ λίστα που καλεί Domika.Pager). Η σελίδα κυλά σωστά (επιβεβαιωμένο, Playwright σε πραγματικό odb.gr) —
   το πρόβλημα είναι ότι η σελιδοποίηση ζούσε ΜΟΝΟ στο τέλος, μετά από ίσως χιλιάδες px λίστας, οπότε δεν
   φαινόταν ΠΟΤΕ χωρίς να κυλήσεις ως το τέλος πρώτα — και η μπάρα κύλισης του html είναι λεπτή/εύκολο να μη
   την προσέξεις. sticky στο κάτω μέρος του viewport: πάντα ορατή, καμία αλλαγή στο Razor κάθε σελίδας (ένα
   CSS, όλες οι σελίδες που καλούν @Pager(...)). */
.pgr{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;font-size:13px;color:var(--muted);flex-wrap:wrap;position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--line);margin:0 -2px;z-index:6}.pgr b{color:var(--ink)}
.pgr-r{display:flex;align-items:center;gap:6px}.pgr-r a,.pgr-r span.off{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:#fff;text-decoration:none;color:var(--ink2);font-size:16px}
.pgr-r a:hover{border-color:var(--ink2)}.pgr-r span.off{opacity:.4}
.pgr-sz{display:flex;align-items:center;gap:5px}.pgr-sz a,.pgr-sz b{padding:2px 6px;border-radius:5px}.pgr-sz a{color:var(--ink2);text-decoration:none}.pgr-sz a:hover{background:var(--paper2)}.pgr-sz b{color:var(--accent-ink);background:var(--orange-soft)}
.rec{display:grid;grid-template-columns:minmax(280px,30%) minmax(0,1fr);gap:18px;align-items:start}
.rec-l,.rec-r{min-width:0;display:flex;flex-direction:column;gap:14px}.rec-l>*,.rec-r>*{margin:0}.rec .tw{margin:0}
.ident{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.ident-back{font-size:13px;margin:0 0 8px}.ident-back a{text-decoration:none}.ident-logo{max-height:60px;max-width:200px;display:block;margin:0 0 10px}
.ident-t{font-size:24px;font-weight:800;margin:0 0 4px;letter-spacing:-.01em;word-break:break-word;line-height:1.2}
.ident-s{color:var(--ink2);font-size:14px}.ident-o{font-size:13px;color:var(--muted);margin-top:6px}.ident-o b{color:var(--warn)}
.ident-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.ident-a{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.fcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px 6px}
.fcard-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 6px}.fcard-t{margin:0;font-size:14px;font-weight:800;color:var(--fc,var(--purple))}
.fcard-g{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin:0}.fcard-g.one{grid-template-columns:1fr}
.fld{padding:6px 0;border-bottom:1px solid var(--paper2);min-width:0}.fld dt{font-size:11.5px;color:var(--muted);margin:0}.fld dd{margin:2px 0 0;font-size:13.5px;word-break:break-word}
.fcard-g.one .fld{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:12px;align-items:baseline}.fcard-g.one .fld dt{font-size:12.5px}.fcard-g.one .fld dd{margin:0}
.fld.important dt{color:var(--orange);font-weight:700}.fld.bold dd{font-weight:700}.fld.empty dd{color:var(--muted)}.fld .pill{white-space:normal}
.rtabs>input{display:none}.rtabs-l{display:flex;gap:2px;flex-wrap:wrap;border-bottom:2px solid var(--line);margin:0 0 14px}
.rtabs-l label{padding:8px 14px;font-weight:600;font-size:13.5px;color:var(--ink2);cursor:pointer;border-radius:8px 8px 0 0;border:2px solid transparent;border-bottom:0;margin-bottom:-2px;user-select:none}
.rtabs-l label:hover{background:var(--paper2)}.rtabs-l label .n{vertical-align:baseline}.rtabs-pane{display:none}.rtabs-pane>*+*{margin-top:14px}
.stages{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.stages-h{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin:0 0 10px;letter-spacing:.04em}.stages-h b{color:var(--ink);margin-left:4px}
.stages-r{display:flex;align-items:center;gap:12px}.stages-l{display:flex;flex:1;list-style:none;margin:0;padding:0;overflow-x:auto;gap:3px;min-width:0}
.stages-l li{flex:1 0 auto;max-width:240px;text-align:center;padding:9px 16px 9px 22px;font-size:12.5px;font-weight:600;background:var(--paper2);color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%)}
.stages-l li:first-child{padding-left:14px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%)}
.stages-l li.done{background:var(--navy);color:#fff}.stages-l li.is-on{background:var(--orange);color:#fff;font-weight:800}
/* E1782 ΚΣ5: η κοινή μπάρα σταδίων (Domika.ΜπάραΣταδίων) — τίτλος/υπόσημο και συμπαγής μορφή popover (Λίστα ημέρας). */
.stages-t{font-size:12px;font-weight:700;color:var(--ink2);margin:0 0 4px}.stages-f{margin-top:6px}
.stages-l li .stage-f{margin:0;display:contents}.stages-l li .stage-btn{all:unset;cursor:pointer;display:block;width:100%;font:inherit;color:inherit;white-space:nowrap}
.stages-l li:hover:not(.is-on){outline:1px solid var(--accent)}
.stages-pop .stages-l li{font-size:11.5px;padding:6px 12px 6px 18px}
.stages-l li form{display:contents}:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.stages-l li button){background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0;width:100%;height:auto}:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.stages-l li:not(.is-on) button:hover){text-decoration:underline}
.stages-x{display:flex;gap:6px;flex:0 0 auto}.stages-x form{display:inline}.thumb{width:36px;height:36px;border-radius:50%;border:0;font-size:17px;cursor:pointer;color:#fff;padding:0}.thumb.up{background:var(--green)}.thumb.down{background:var(--danger)}.thumb:hover{filter:brightness(1.1)}
.prog{display:inline-flex;align-items:center;background:var(--orange-soft);color:var(--orange);font-weight:700;font-size:12.5px;padding:4px 12px;border-radius:999px;position:relative;overflow:hidden;white-space:nowrap}
.prog i{position:absolute;left:0;top:0;bottom:0;background:rgba(217,115,26,.18)}.prog b{position:relative}
.rel,.notecard,.rel-box{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;overflow:clip}   /* E4071QF (T-40): clip ΔΕΝ γίνεται scroll container ➜ το sticky .pl-table th των πινάκων μέσα στις κάρτες κολλά στο viewport, όχι στο κουτί (έπεφτε 54px κάτω και κάλυπτε την 1η γραμμή). hidden = fallback για παλιούς browsers. */
.rel>header,.notecard>header,.rel-box>header{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:#FAFBFC}
.rel>header h3,.notecard>header h3,.rel-box>header h3{margin:0;font-size:14px;color:var(--ink);flex:1}.rel-a{display:flex;gap:6px;align-items:center}.rel-a form{display:inline}
.rel-add{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--accent-ink);text-decoration:none;font-weight:800;cursor:pointer;font:inherit;font-size:16px;padding:0}.rel-add:hover{border-color:var(--accent)}
.rel-b{padding:10px 16px}.rel-b>.tw{margin:-10px -16px;border:0;border-radius:0;width:calc(100% + 32px)}.rel-b .emptystate{border:0;padding:14px}
.note-add{display:flex;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line);align-items:flex-start}.note-add textarea{flex:1;min-height:40px}
.notelist{list-style:none;margin:0;padding:6px 16px}.notelist li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--paper2)}.notelist li:last-child{border-bottom:0}
/* E1747: καρτέλες σημειώσεων «Ανθρώπων · AI · Όλα» — χωρίς JS: τρία radio πριν από τη λίστα + :checked ~ (η επιλογή δεν θυμάται· πάντα ανοίγει «Ανθρώπων») */
.nt-tabs{position:relative}
.nt-tabs .nt-r{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.nt-tabbar{display:flex;gap:4px;padding:8px 16px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.nt-tabbar .nt-l{cursor:pointer;padding:6px 12px;font-size:13px;color:var(--muted);border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;margin-bottom:-1px;user-select:none}
.nt-tabbar .nt-l .n{margin-left:4px}
.nt-r-h:checked~.nt-tabbar .nt-l-h,.nt-r-a:checked~.nt-tabbar .nt-l-a,.nt-r-all:checked~.nt-tabbar .nt-l-all{color:var(--ink);font-weight:600;background:var(--card);border-color:var(--line)}
.nt-r-h:focus-visible~.nt-tabbar .nt-l-h,.nt-r-a:focus-visible~.nt-tabbar .nt-l-a,.nt-r-all:focus-visible~.nt-tabbar .nt-l-all{outline:2px solid var(--accent,#2563C7);outline-offset:1px}
/* E1845: ένα παράθυρο ανά καρτέλα (3 ανοιχτές + «Προηγούμενες σημειώσεις (N)») — φαίνεται μόνο της επιλεγμένης */
.nt-body .nt-pane{display:none}
.nt-r-h:checked~.nt-body .nt-pane-h,.nt-r-a:checked~.nt-body .nt-pane-a,.nt-r-all:checked~.nt-body .nt-pane-all{display:block}
/* E1853: ο κοινός pager μέσα στο «Προηγούμενες σημειώσεις» — όχι sticky εδώ */
.nt-more .pgr{position:static;margin:4px 0 0;padding:6px 4px;background:none;z-index:auto}
.nt-body .nt-empty{display:none}
.nt-r-h:checked~.nt-body .nt-empty-h,.nt-r-a:checked~.nt-body .nt-empty-a,.nt-r-all:checked~.nt-body .nt-empty-all{display:block}
.note-ai{display:inline-block;margin-left:8px;padding:1px 7px;font-size:11px;border-radius:999px;background:var(--paper2);color:var(--muted);white-space:nowrap}
.note-ai-spot{background:#FFF4CC;color:#7A5B00}
/* E1747 Κ4: pins — λωρίδα ≤2 στην κορυφή, «📌 Καρφιτσωμένα (N)» με popover (σαν το Pinned Messages του Cliq) */
.nt-pinmsg{margin:0;padding:8px 16px;background:#FDECEA;color:#8A1C12;font-size:13px;border-bottom:1px solid var(--line)}
.nt-pinbar{position:relative;display:flex;gap:10px;align-items:flex-start;padding:8px 16px;background:#FFFBEA;border-bottom:1px solid var(--line)}
.nt-pinlane{list-style:none;margin:0;padding:0;flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.nt-pinlink{display:block;color:var(--ink);text-decoration:none;font-size:13px;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.nt-pinlink:hover{text-decoration:underline}
.nt-pint{color:var(--muted)}
.nt-pinsbtn{flex:none;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer;color:var(--ink)}
.nt-pinsbtn[aria-expanded="true"]{background:#FFF1C2}
.nt-pinsbtn{position:relative}  /* E2640: το κοινό .dl-badge στη γωνία της πινέζας */
.nt-pinsbtn>.dl-badge{top:0;right:0;transform:translate(35%,-35%);pointer-events:none}
.nt-pinpop{position:absolute;right:12px;top:100%;z-index:30;width:min(420px,calc(100vw - 32px));max-height:60vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.18)}
.nt-pinpop[hidden]{display:none}
.nt-pinpop>header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);background:#FAFBFC}
.nt-pinpop ul{list-style:none;margin:0;padding:0}
.nt-pinpop li{display:flex;gap:8px;align-items:flex-start;padding:10px 14px;border-bottom:1px solid var(--paper2)}
.nt-pinpop li:last-child{border-bottom:0}
.nt-popitem{flex:1;min-width:0;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;gap:2px;font-size:13px}
.nt-popmeta time{color:var(--muted);font-size:12px;margin-left:6px}
.nt-pinx{border:0;background:none;cursor:pointer;font-size:16px;color:var(--muted)}
.nt-pinform{display:inline;margin-left:auto}
.nt-pinbtn{border:0;background:none;cursor:pointer;font-size:13px;opacity:.6;padding:0 4px}
.nt-pinbtn:hover,.nt-pinbtn:focus-visible,.nt-pinbtn.is-on{opacity:1}
.nt-pinauto{cursor:default}
/* E1840: ✎ και 📌 ΟΡΑΤΑ, μαζί δεξιά στην κεφαλίδα της σημείωσης — όχι μόνο στο hover */
.note-h{display:flex;align-items:center;flex-wrap:wrap;gap:0 4px}
.nt-acts{display:inline-flex;align-items:center;gap:2px;margin-left:auto}.nt-acts .nt-pinform{margin-left:0}
.nt-editbtn{font-size:14px;color:var(--ink);opacity:.75}.nt-editbtn:hover,.nt-editbtn:focus-visible{opacity:1}
.notelist li.is-pinned{background:#FFFDF3}
.notelist li.nt-flash{animation:nt-flash 1.6s ease-out}
@keyframes nt-flash{0%{background:#FFE48A}100%{background:transparent}}
@media (prefers-reduced-motion:reduce){.notelist li.nt-flash{animation:none;background:#FFE48A}}
/* E1747 Κ6: υποδοχή Spot γέφυρας στη λωρίδα — hidden/κενή μέχρι την απάντηση, «Ο Spot ενώνει τα ενεργά…» με κινούμενες τελείες (σέβεται prefers-reduced-motion) */
.nt-gf[hidden],.nt-gf [hidden]{display:none}
.nt-gf-think{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.nt-gf-dots::after{content:"";display:inline-block;width:1.2em;text-align:left;animation:nt-gf-dots 1.2s steps(4,end) infinite}
@keyframes nt-gf-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
@media (prefers-reduced-motion:reduce){.nt-gf-dots::after{animation:none;content:"…"}}
.nt-gf-ok b{font-weight:600}
.nt-gf-ok time{color:var(--muted);font-size:12px;margin-left:6px}
.nt-gf-fail{margin:0}
.nt-gf-prev{font-size:12.5px}
.nt-gf-prev p{margin:4px 0 0;color:var(--muted)}
.nt-popitem-gf{border-left:3px solid #E6B800;padding-left:8px}

.note-b{flex:1;min-width:0}.note-h{font-size:12.5px;color:var(--muted)}.note-h b{color:var(--ink)}.note-h time{margin-left:8px}.note-t{white-space:pre-wrap;font-size:13.5px;margin-top:2px;word-break:break-word}.note-s{font-size:12px;color:var(--muted);margin-top:4px}
.thread{display:flex;flex-direction:column;gap:10px}
.msg{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;display:flex;gap:12px}.msg.internal{background:#FFF8E8;border-color:#F3DFA8}.msg.me{border-left:3px solid var(--accent)}
.msg-b{flex:1;min-width:0}.msg-h{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.msg-h b{color:var(--ink);font-size:13.5px}.msg-h .ch{margin-left:auto}
.msg-t{white-space:pre-wrap;margin-top:6px;font-size:13.5px;word-break:break-word}
.reply{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.reply textarea{min-height:80px;width:100%}
.chat{display:inline-flex;align-items:center;gap:3px;text-decoration:none;color:var(--ink2);font-size:14px;white-space:nowrap;line-height:1}.chat b{font-size:11.5px;background:var(--accent-soft);color:var(--accent-ink);padding:1px 6px;border-radius:999px}.chat.zero b{background:var(--paper2);color:var(--muted)}
.wa{display:inline-flex;vertical-align:middle;margin-left:6px;color:#25D366;line-height:0}.wa svg{width:18px;height:18px}.wa:hover{color:#128C7E}.viber{display:inline-flex;vertical-align:middle;margin-left:6px;color:#7360F2;line-height:0}.viber svg{width:18px;height:18px}.viber:hover{color:#59267C}
.pill{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 10px;border-radius:999px;background:var(--paper2);color:var(--ink2);white-space:nowrap;line-height:1.5}
.pill-orange{background:var(--orange);color:#fff}.pill-green{background:var(--green-soft);color:var(--green)}.pill-blue{background:var(--accent-soft);color:var(--accent-ink)}.pill-purple{background:var(--purple-soft);color:var(--purple)}
.pill-risk-mh{background:var(--orange);color:#fff;box-shadow:inset 0 0 0 2px var(--danger)}/* E5572: μέτριος προς υψηλός — πορτοκαλί με κόκκινο δαχτυλίδι (μόνο υπάρχοντα tokens) */
.pill-red,.pill-danger{background:var(--bad-soft);color:var(--danger)}.pill-navy{background:var(--navy);color:#fff}.pill-yellow{background:#FFF1D6;color:#8A5A00}.pill-grey{background:var(--paper2);color:var(--ink2)}.pill-critical{background:var(--danger);color:#fff;font-weight:700}
/* E4118: «Ελλιπή στοιχεία στοιχειώδη» — κόκκινο κινδύνου, τα πεδία που λείπουν στο tap (details) */
.tm-elleipi{display:inline-block;position:relative}.tm-elleipi>summary{cursor:pointer;list-style:none}.tm-elleipi>summary::-webkit-details-marker{display:none}.tm-elleipi-l{display:block;color:var(--danger);margin-top:2px}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:700;flex:0 0 30px;letter-spacing:.02em;vertical-align:middle}
.avatar.sm{width:22px;height:22px;font-size:10px;flex-basis:22px}.avatar.lg{width:44px;height:44px;font-size:16px;flex-basis:44px}
img.avatar{object-fit:cover}
.avatar.xs{width:18px;height:18px;font-size:8px;flex-basis:18px}
.xr-chip{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}
.emptystate{text-align:center;color:var(--muted);padding:26px 16px;background:var(--card);border:1px dashed var(--line);border-radius:12px}.emptystate p{margin:0 0 6px}.emptystate p:last-child{margin:0}
/* CSS-only καρτέλες (tabs — TagHelper OdbTabs): η k-οστή radio ➜ k-οστή label ενεργή, k-οστό pane ορατό (μέχρι 12). */
.rtabs>input:nth-of-type(1):checked~.rtabs-l label:nth-of-type(1){background:var(--navy);color:#fff;border-color:var(--navy)}.rtabs>input:nth-of-type(1):checked~.rtabs-p>.rtabs-pane:nth-of-type(1){display:block}
.rtabs>input:nth-of-type(2):checked~.rtabs-l label:nth-of-type(2){background:var(--navy);color:#fff;border-color:var(--navy)}.rtabs>input:nth-of-type(2):checked~.rtabs-p>.rtabs-pane:nth-of-type(2){display:block}
.rtabs>input:nth-of-type(3):checked~.rtabs-l label:nth-of-type(3){background:var(--navy);color:#fff;border-color:var(--navy)}.rtabs>input:nth-of-type(3):checked~.rtabs-p>.rtabs-pane:nth-of-type(3){display:block}
.rtabs>input:nth-of-type(4):checked~.rtabs-l label:nth-of-type(4){background:var(--navy);color:#fff;border-color:var(--navy)}.rtabs>input:nth-of-type(4):checked~.rtabs-p>.rtabs-pane:nth-of-type(4){display:block}
.rtabs>input:nth-of-type(5):checked~.rtabs-l label:nth-of-type(5){background:var(--navy);color:#fff;border-color:var(--navy)}.rtabs>input:nth-of-type(5):checked~.rtabs-p>.rtabs-pane:nth-of-type(5){display:block}
.rtabs>input:nth-of-type(6):checked~.rtabs-l label:nth-of-type(6){background:var(--navy);color:#fff;border-color:var(--navy)}.rtabs>input:nth-of-type(6):checked~.rtabs-p>.rtabs-pane:nth-of-type(6){display:block}
.rtabs>input:nth-of-type(7):checked~.rtabs-l label:nth-of-type(7){background:var(--navy);color:#fff;border-color:var(--navy)}.rtabs>input:nth-of-type(7):checked~.rtabs-p>.rtabs-pane:nth-of-type(7){display:block}
.rtabs>input:nth-of-type(8):checked~.rtabs-l label:nth-of-type(8){background:var(--navy);color:#fff;border-color:var(--navy)}.rtabs>input:nth-of-type(8):checked~.rtabs-p>.rtabs-pane:nth-of-type(8){display:block}
/* ── E1088/E1088-Δ: σύμπτυξη της αριστερής στήλης (πλήρης ↔ στενή με εικονίδια Lucide από το sprite) ── */
.side .ni{width:20px;height:20px;flex:0 0 20px;display:block}
.side .nav a{display:flex;align-items:center;gap:10px}
.side .nav a .nl{overflow:hidden;text-overflow:ellipsis}
.side .nav a .nbadge{margin-left:auto;min-width:20px;padding:0 6px;border-radius:10px;background:var(--gold);color:var(--navy,#0b1f3a);font-size:12px;line-height:20px;font-weight:700;text-align:center}
body.side-collapsed .side .nav a .nbadge{display:none}
.side .brand .ni{display:none}
.side-collapse{display:flex;align-items:center;justify-content:flex-end;width:100%;padding:9px 16px;background:var(--navy-2);border:0;border-bottom:1px solid rgba(255,255,255,.18);color:#fff;line-height:1;cursor:pointer}
.side-collapse:hover{background:var(--navy-on)}
.side-collapse:focus-visible,.side .nav a:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.side-collapse .chev{width:22px;height:22px;display:block;transition:transform .15s}
@media (min-width:901px){
  .shell{transition:grid-template-columns .12s}
  body.side-collapsed{--side-w:64px}
  body.side-collapsed .side-collapse{justify-content:center;padding:9px 0}
  body.side-collapsed .side-collapse .chev{transform:rotate(180deg)}
  body.side-collapsed .side .nl,body.side-collapsed .side .grp-l,body.side-collapsed .side-foot .who,body.side-collapsed .side-foot .role,body.side-collapsed .side-foot a.btn-ghost{display:none}
  body.side-collapsed .side-foot form button{padding:3px 4px;font-size:11px}
  body.side-collapsed .side-darc{display:none}
  body.side-collapsed .side-top{padding:12px 0;justify-content:center}
  body.side-collapsed .side .side-top .brand{padding:0}
  body.side-collapsed .side .brand{padding:12px 0;text-align:center}
  body.side-collapsed .side .brand .nl{display:none}
  body.side-collapsed .side .brand .ni{display:block}
  body.side-collapsed .side .nav a{padding:9px 0;justify-content:center;border-left-width:3px}
  body.side-collapsed .side .nav a.is-on{background:var(--navy-on);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
  body.side-collapsed .side .grp.is-kleisti>a{display:flex}
  body.side-collapsed .side .grp{border-top:1px solid rgba(255,255,255,.1);padding:4px 0}
  body.side-collapsed .side-foot{justify-content:center;padding:12px 4px}
}
@media (max-width:900px){.side-collapse{display:none}.shell{grid-template-columns:minmax(0,1fr)}.main{grid-column:1}.side .brand .ni{display:none!important}}
/* ── E2169: στο DLACK η κεντρική στήλη είναι ΤΕΛΕΙΩΣ κρυφή (πλάτος 0)· ανοίγει ως επικάλυψη από το διακριτικό κουμπί πάνω από το σήμα DLACK (kelyfos.js, κλάση dl-mpara-anoikti) ── */
@media (min-width:901px){
  body:has(main.page-syzitiseis) .shell{grid-template-columns:minmax(0,1fr);transition:none}
  body:has(main.page-syzitiseis) .shell{background-image:none}/* E5477QF: ίδιο — κρυφή στήλη ⇒ καμία σκούρα λωρίδα φόντου */
  body:has(main.page-syzitiseis) .main{grid-column:1}
  body:has(main.page-syzitiseis) .side{position:fixed;left:0;top:0;bottom:0;height:auto;width:var(--side-w);transform:translateX(-100%);visibility:hidden;transition:transform .15s,visibility 0s .15s;z-index:var(--z-side-drawer,58);box-shadow:none}
  body.dl-mpara-anoikti:has(main.page-syzitiseis) .side{transform:none;visibility:visible;transition:transform .15s;box-shadow:0 0 24px rgba(0,0,0,.35)}
}
/* ── κινητό: η στήλη γίνεται συρτάρι ── */
@media (max-width:900px){
  .side{position:fixed;left:0;top:0;width:var(--side-w);transform:translateX(-100%);transition:transform .2s;z-index:var(--z-side-drawer,58)}
  body.side-open .side{transform:none}
  body.side-open .scrim{display:block}
  .burger{display:inline-flex;align-items:center;justify-content:center}
  .top{padding:9px 14px;flex-wrap:wrap}
  .search{flex:1 1 100%;order:5}
  .gsearch{flex:1 1 100%;order:4;min-width:0}
  .page{padding:16px}
  .rec,.with-panel{grid-template-columns:1fr}
  .fpanel{position:static;max-height:none}
  .fcard-g{grid-template-columns:1fr}
  .stages-r{flex-wrap:wrap}
}
@media (max-width:600px){.lrow{flex-wrap:wrap}.lrow-r{flex:1 1 100%;justify-content:flex-end}}

/* ── ΚΥΜΑ Κ3-Pinakas (dotnet, owner E1036): «πίνακα τύπου Excel» — Domika.Grid<T>/PlegmaModels.cs. Ενότητα
   ξεχωριστή, δικό της πρόθεμα class «pl-» (Πλέγμα) — ώστε να μην συγκρούεται με τα .tw/.lrow* πιο πάνω, όσο
   παράλληλα δουλεύει η κύλιση λιστών (Κ3-Kylisi) στο ίδιο αρχείο. */
.pl-chooser{margin:0 0 10px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:2px 12px}
.pl-chooser summary{padding:8px 0}
.pl-chooser-f{padding:4px 0 12px}
.pl-chooser-l{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 10px}
.pl-chooser-l li{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:13px}
.pl-chooser-l label{display:flex;align-items:center;gap:6px;cursor:pointer;flex:1;min-width:0}
.pl-chooser-l input{width:15px;height:15px;margin:0;flex:0 0 auto}
/* overflow-x/y:visible (ΟΧΙ auto — Κ3-Pinakas-D, βλ. σχόλιο «ΚΥΜΑ Κ3-Pinakas-D» πιο κάτω): visible ώστε το
   .pl-wrap να ΜΗΝ γίνεται scroll container, το sticky thead δουλεύει με ΜΟΝΟ CSS. is-overflow-x/@media(κινητό)
   πιο κάτω το ξαναγυρίζουν σε auto ΜΟΝΟ όταν πραγματικά χρειάζεται οριζόντια κύλιση. */
.pl-wrap{overflow-x:visible;overflow-y:visible;margin:0 0 18px}
.pl-table{border-collapse:collapse;width:100%;font-size:13.5px}
.pl-table th,.pl-table td{text-align:left;vertical-align:top;padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
/* top:54px (ΟΧΙ 0) — κάτω ΑΚΡΙΒΩΣ από το ήδη sticky .top του κελύφους (54px ύψος στο desktop, μετρημένο
   πραγματικό Chromium), βλ. «ΚΥΜΑ Κ3-Pinakas-D» πιο κάτω για το γιατί/την παγίδα με το overflow-x. */
.pl-table th{position:sticky;top:calc(var(--top-h,54px) + var(--pl-bar-h,0px));font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--paper2);z-index:1}
.pl-table th a{color:inherit;text-decoration:none}.pl-table th a:hover{color:var(--accent-ink)}
.pl-table tr:last-child td{border-bottom:0}.pl-table td.num,.pl-table th.num{text-align:right}
.pl-table tbody tr:hover{background:#F7F9FC}
.pl-table td.pl-chk,.pl-table th.pl-chk{width:32px;white-space:nowrap}
/* E1095 (Κ7-Γ): γραμμή ΠΡΟΒΛΕΨΗΣ («θα γεννηθεί») — γκρι, μόνο ανάγνωση (χωρίς checkbox). Χρώματα μόνο· καμία επίδραση σε ύψος/κύλιση (E1111). */
.pl-table tbody tr.pl-provlepsi td{color:var(--muted);background:var(--paper2)}
.pl-table tbody tr.pl-provlepsi:hover td{background:var(--paper2)}
/* Κ3-Xristes (E1044, owner screenshot): στήλη ΣτήληΠλέγματος με ΝαΤυλίγεται=true (π.χ. «Ενέργειες» — πολλές φόρμες
   ανά γραμμή) — ΧΩΡΙΣ αυτό η προεπιλογή nowrap/ellipsis πιο πάνω έκοβε τις φόρμες με «…», η φόρμα κωδικού δεν
   φαινόταν καν χωρίς οριζόντια κύλιση. Οι φόρμες τυλίγονται η μία κάτω από την άλλη (inline-flex — atomic inline
   box, σπάει σε νέα γραμμή σαν λέξη), ΚΑΘΕ φόρμα μένει μονοκόμματη (τα πεδία μέσα της δεν σπάνε ποτέ).*/
.pl-table td.pl-wrap-cell{white-space:normal;overflow:visible;text-overflow:clip;max-width:440px}
.pl-table td.pl-wrap-cell form.inline{display:inline-flex;align-items:center;gap:4px;margin:2px 8px 2px 0}
@media (max-width:600px){.pl-chooser-l{grid-template-columns:1fr 1fr}}

/* ── ΚΥΜΑ Κ3-Pinakas-D (dotnet, owner E1047 αυτούσια, ΔΙΟΡΘΩΝΕΙ το Κ3-Pinakas-C/E1040 — screenshot: το πλέγμα
   στριμωγμένο σε κουτί 3 γραμμών): «ρε εννοούσα να σκρολάρει στο βάθος οθόνης ο πίνακας με σταθερή την πρώτη
   γραμμή. Ανάλογα τις γραμμές πχ 100 να έχει 100 γραμμές και να πάω κάτω» — το ΑΝΤΙΘΕΤΟ του Pinakas-C: η ΣΕΛΙΔΑ
   κυλά κανονικά ως το τέλος (καμία κλειδωμένη html/body/.main/.page 100vh — αυτό ΗΤΑΝ η παρεξήγηση, αφαιρέθηκε
   εξ ολοκλήρου, καμία :has(.pl-wrap) στο html/body/.main/.page πια), ο πίνακας δείχνει ΟΛΕΣ τις γραμμές της
   σελίδας (καμία εσωτερική κατακόρυφη κύλιση/min-height στο .pl-wrap) — μόνο η ΕΠΙΚΕΦΑΛΙΔΑ μένει sticky στην
   κορυφή του viewport («πάγωμα πρώτης γραμμής» τύπου Excel), κάτω ΑΠΟ την ήδη sticky .top του κελύφους. Το .pgr
   ξαναγίνεται το ΚΑΘΟΛΙΚΟ sticky-bottom (Κ3-Kylisi-C, .pgr πιο πάνω) χωρίς καμία ειδική εξαίρεση εδώ πια.
   E1041 (αμετάβλητο, ίδια κάρτα) «και οριζόντια δεν θέλω να είναι πλαίσιο» — ΚΑΝΕΝΑ κουτί (φόντο/περίγραμμα/
   στρογγύλεμα) γύρω από πίνακα, ΚΑΙ max-width:none στη .page όταν έχει πλέγμα/πίνακα πρώτου επιπέδου. ΜΕΝΕΙ.

   Sticky thead + οριζόντια κύλιση ΔΕΝ συνυπάρχουν με CSS overflow-x:auto στο ίδιο wrapper (μετρημένο,
   πραγματικό Chromium/Playwright, γνωστή παγίδα CSS): το CSS Overflow §3 λέει ότι όταν το ένα από τα
   overflow-x/overflow-y δεν είναι visible/clip, ο browser αναγκάζει ΚΑΙ το άλλο να γίνει «auto» — άρα
   overflow-x:auto κάνει το .pl-wrap scroll container ΚΑΙ στους δύο άξονες, ό,τι κι αν γράψεις. Ένα τέτοιο
   scroll container γίνεται ο «πλησιέστερος κυλιόμενος πρόγονος» για το sticky thead μέσα του· αφού το ίδιο το
   .pl-wrap ΔΕΝ κυλά ποτέ εσωτερικά καθέτως (ύψος αυτόματο = ύψος περιεχομένου, τίποτα να κυλήσει), το thead
   ΔΕΝ «κολλάει» ποτέ στο viewport — μένει στη φυσική του θέση και φεύγει μαζί με τη σελίδα όταν αυτή κυλά
   (το ίδιο σύμπτωμα με το γνωστό «sticky δεν δουλεύει μέσα σε overflow:auto» των browsers).

   Δοκιμάστηκε πρώτα «overflow-x:visible πάντα, ό,τι δεν χωράει σέρνει όλη τη σελίδα οριζόντια» — απορρίφθηκε:
   μετρημένο πραγματικό /eispraxeis σε 1366×768 (10 στήλες, ΔΕΝ είναι σπάνια περίπτωση — ΑΚΡΙΒΩΣ μία από τις
   δύο σελίδες ελέγχου του owner) ΔΕΝ χωράει (1415px πίνακας έναντι 1082px διαθέσιμου πλάτους) — θα έσερνε ΚΑΙ
   τη στήλη μενού οριζόντια, κακή εμπειρία, ΟΧΙ «no horizontal scroll» στο 1366 που ζητήθηκε. Αντί για
   JS-κλώνο επικεφαλίδας (συγχρονισμένο scrollLeft σε ΚΑΘΕ frame — εύθραυστο, εύκολο να αποσυγχρονιστεί σε
   resize/zoom) ή διπλή («ζευγαρωμένη») οριζόντια μπάρα πάνω από τον πίνακα (δύο scrollbars για τον ίδιο
   πίνακα, ένα ακόμη στοιχείο UI): μία γραμμή μέτρησης, wwwroot/js/odb.js (ήδη το shell-level αρχείο των
   Domika.Grid interactions — Κ3-Pinakas-B) προσθέτει «is-overflow-x» ΜΟΝΟ στο .pl-wrap που ΠΡΑΓΜΑΤΙΚΑ δεν
   χωράει (table.scrollWidth>wrap.clientWidth) — καθολικό, καμία αλλαγή Razor, ΚΑΜΙΑ σελίδα δεν «ξέρει» ότι
   υπάρχει το τρικ:
     · Η ΣΥΝΗΘΙΣΜΕΝΗ περίπτωση (χωράει — π.χ. /crm/deals σε 1920×1080 ΚΑΙ 1366×768, μετρημένο): ΚΑΜΙΑ κλάση,
       .pl-wrap μένει overflow:visible — ΔΕΝ γίνεται scroll container, sticky thead δουλεύει με ΜΟΝΟ CSS
       (top:54px, ίδιο ύψος με το πραγματικό .top — μετρημένο getBoundingClientRect). ΚΑΜΙΑ οριζόντια κύλιση
       πουθενά (ούτε σελίδα ούτε wrapper) — επαληθευμένο.
     · Η σπάνια/όχι-και-τόσο-σπάνια περίπτωση (δεν χωράει — π.χ. /eispraxeis σε 1366×768): is-overflow-x
       ενεργοποιεί overflow-x:auto ΜΟΝΟ σε ΑΥΤΟ το .pl-wrap — οριζόντια κύλιση ΠΕΡΙΟΡΙΣΜΕΝΗ στο ίδιο το
       πλέγμα (ΟΧΙ ολόκληρη η σελίδα/στήλη μενού), αντάλλαγμα ίδιο με το κινητό: το sticky χαλαρώνει ΜΟΝΟ εκεί
       (ο πίνακας φεύγει με τη σελίδα αντί να κολλάει — αποδεκτό, ο owner ζήτησε ρητά τη χαλάρωση όταν
       χρειάζεται πραγματική οριζόντια κύλιση, «sticky header can be relaxed there»).
     · @media (max-width:900px) ξαναφέρνει ΠΑΝΤΑ overflow-x:auto (χωρίς να χρειάζεται η μέτρηση JS — στο
       κινητό οι στήλες ΣΧΕΔΟΝ ΠΑΝΤΑ δεν χωράνε, ντετερμινιστικό CSS αντί να περιμένουμε το πρώτο resize/JS
       πέρασμα, καμία στιγμιαία λανθασμένη διάταξη πριν προλάβει να τρέξει το script).
   Καμία αλλαγή σε καμία από τις 21 σελίδες Domika.Grid — CSS + ένα μικρό, καθολικό script, το ίδιο
   πλέγμα/selector όπως πριν.
*/
.page:has(.pl-wrap),.page:has(>.tw){max-width:none}
/* overflow-x/y:visible του .pl-wrap ζει στην ΑΡΧΙΚΗ δήλωση πιο πάνω (Κ3-Pinakas), όχι εδώ — ίδιος λόγος με το
   top:54px του .pl-table th παρακάτω (ένα ΜΟΝΟ σημείο αλήθειας ανά selector, τα τεστ το επιβεβαιώνουν). */
.pl-wrap{scrollbar-width:thin;scrollbar-color:#AEB6C2 var(--bg)}
.pl-wrap::-webkit-scrollbar{width:14px;height:14px}
.pl-wrap::-webkit-scrollbar-track{background:var(--bg)}
.pl-wrap::-webkit-scrollbar-thumb{background:#AEB6C2;border-radius:8px;border:3px solid var(--bg)}
.pl-wrap::-webkit-scrollbar-thumb:hover{background:#8D97A6}
/* Το top:54px του .pl-table th ζει στην ΑΡΧΙΚΗ δήλωση πιο πάνω (Κ3-Pinakas, γραμμή με το position:sticky) —
   όχι εδώ, ώστε ένα ΜΟΝΟ Rule() σε τεστ να βλέπει πάντα τη σωστή τιμή. .top (κέλυφος) είναι sticky top:0
   z-index:5, 54px ύψος στο desktop (μετρημένο, real Chromium) — το thead κολλάει ΑΚΡΙΒΩΣ από κάτω, ίδιο
   z-index ζώνη (1, ήδη ορισμένο στο .pl-table th) ώστε οι γραμμές να κυλούν από κάτω του, όχι από πάνω.
   ΠΑΓΙΔΑ (μετρημένο, πραγματικό Chromium/Playwright, screenshot στο κινητό): όταν το .pl-wrap ΓΙΝΕΤΑΙ scroll
   container (is-overflow-x ΚΑΙ το @media κινητού πιο κάτω), το «top:54px» ΔΕΝ γίνεται απλώς αδρανές — ο
   browser μετατοπίζει ΜΟΝΙΜΑ το th κατά 54px ΜΕΣΑ στο .pl-wrap (η στατική θέση του thead είναι στην κορυφή
   του πίνακα, μικρότερη από το ζητούμενο top:54 σχετικά με το ΔΙΚΟ ΤΟΥ scrollport· ο browser το σπρώχνει να
   ικανοποιήσει το inset ΑΝΕΞΑΡΤΗΤΑ από το ότι το .pl-wrap ποτέ δεν κυλά εσωτερικά, scrollTop πάντα 0) —
   αποτέλεσμα: η επικεφαλίδα «πέφτει» 54px μέσα στον πίνακα και επικαλύπτει την πρώτη γραμμή. Λύση: ΟΠΟΥ το
   .pl-wrap γίνεται scroll container, το th ξαναγίνεται static/top:auto — πραγματική χαλάρωση, όχι μισή. */
/* E1111 (owner 06/10: «δεν μπορώ να σκρολάρω κάτω … ό,τι πάρει η πρώτη οθόνη» ➜ απόφαση «ας μην είναι σταθερή, να
   δουλέψει πρώτα»): ΒΓΗΚΕ ο τρόπος (α) του E1091β — το .pl-wrap ως κουτί κύλισης με max-height σε dvh + sticky. Η ΣΕΛΙΔΑ
   ήταν σχεδόν ακίνητη (μόνο το κουτί κυλούσε): wheel έξω από τον πίνακα, PageDown/End/Space δεν έκαναν τίποτα. Ξανά το
   μοντέλο Κ3-Pinakas-D: η σελίδα κυλά ως την τελευταία γραμμή και τη σελιδοποίηση· η κεφαλίδα κολλά στο viewport κάτω
   από .top + .pl-bar· οριζόντια κύλιση ΜΟΝΟ στο .pl-wrap που δεν χωρά (is-overflow-x, odb.js) — η μπάρα της είναι στο
   τέλος του πίνακα, ΟΧΙ σταθερή κάτω (θα βρεθεί λύση αργότερα). Όπου το .pl-wrap γίνεται scroll container η κεφαλίδα
   χαλαρώνει (παγίδα Κ3-Pinakas-D πιο πάνω) σε relative, ώστε οι λαβές πλάτους .pl-rs (absolute) να μένουν στο κελί. */
.pl-wrap.is-overflow-x{overflow-x:auto}
.pl-wrap.is-overflow-x .pl-table th{position:relative;top:auto}
/* E2961QF: ΚΟΙΝΗ «μήτρα» (πίνακας με σταθερή πρώτη στήλη + κολλημένη επικεφαλίδα — π.χ. Ρυθμίσεις ➜ Προφίλ & δικαιώματα).
   Ίδιο συμβόλαιο με το .pl-wrap: wrapper overflow:visible (sticky thead κάτω από το .top), .is-overflow-x από odb.js μόνο όταν
   δεν χωράει. Η πρώτη στήλη (th.pl-freeze) είναι sticky αριστερά ΠΑΝΤΑ· η επικεφαλίδα ακολουθεί την ίδια χαλάρωση με το πλέγμα. */
.pl-mitra{overflow-x:visible;overflow-y:visible;max-width:100%;margin:0 0 18px}
.pl-mitra.is-overflow-x{overflow-x:auto}
.pl-mitra table{border-collapse:separate;border-spacing:0;background:var(--card)}
.pl-mitra thead th{position:sticky;top:var(--top-h,54px);z-index:3;background:var(--paper2)}
.pl-mitra.is-overflow-x thead th{position:relative;top:auto}
.pl-mitra th.pl-freeze{position:sticky;left:0;z-index:2;background:var(--card);box-shadow:inset -1px 0 0 var(--line)}
.pl-mitra thead th.pl-freeze{z-index:4;background:var(--paper2)}
.pl-mitra.is-overflow-x thead th.pl-freeze{position:sticky;left:0;top:auto}
@media (max-width:900px){.pl-wrap{overflow-x:auto}.pl-table th{position:relative;top:auto}}
/* E2961: ΚΟΙΝΕΣ προσθήκες για πίνακες Razor (Ρυθμίσεις κ.ά.) με ελεύθερο περιεχόμενο στα κελιά (πεδία, φόρμες, μακριά κείμενα):
   .pl-anoikto = τα κελιά ΔΕΝ κόβονται με «…» (ίδια τιμή με το td.pl-wrap-cell, για όλο τον πίνακα)· .pl-mitra tbody th = επικεφαλίδα γραμμής
   (παγωμένη πρώτη στήλη μήτρας) με κανονικό, όχι κεφαλαίο, γράμμα. */
.pl-table.pl-anoikto td{white-space:normal;overflow:visible;text-overflow:clip;max-width:none}
.pl-mitra tbody th{text-transform:none;letter-spacing:normal;font-size:inherit;color:var(--ink);font-weight:600}
/* E2961 (αίτημα chat Γ): παραλλαγή «πίνακας μέσα σε modal» — .pl-wrap.pl-modal / .pl-mitra.pl-modal. Ο πίνακας κυλά μέσα στο σώμα του modal
   (αυτό είναι ο scroll container), άρα η κεφαλίδα κολλά στο top:0 του σώματος (όχι κάτω από το .top) και το wrapper δεν γίνεται δικός του
   scroll container (αλλιώς σπάει το sticky). Χρήση: <div class="modal-body"><div class="pl-wrap pl-modal"><table class="pl-table">…</table></div></div>. */
.pl-wrap.pl-modal.is-overflow-x,.pl-mitra.pl-modal.is-overflow-x{overflow-x:visible}
.pl-wrap.pl-modal .pl-table th,.pl-wrap.pl-modal.is-overflow-x .pl-table th,.pl-mitra.pl-modal thead th,.pl-mitra.pl-modal.is-overflow-x thead th{position:sticky;top:0}
.pl-mitra.pl-modal.is-overflow-x thead th.pl-freeze{top:0}
.pl-table th{box-shadow:inset 0 -1px 0 var(--line)}
/* E1091: ΜΙΑ κολλημένη μπάρα (προβολές + Στήλες + μαζικά) — φόντο όχι διαφανές, λεπτή σκιά, κινητό ≤40% ύψους. */
.pl-bar{position:sticky;top:var(--top-h,54px);z-index:7;background:var(--bg);padding:6px 0 2px;margin:0 0 6px;max-height:40vh;box-shadow:0 3px 5px -3px rgba(15,23,42,.28)}
.pl-bar>*:last-child{margin-bottom:6px}
/* E1092 + E1213: «ασφαλής ζώνη Spot» — ΜΙΑ πηγή αλήθειας. Το πλωτό widget του Spot (fixed, κάτω δεξιά) πιάνει από τη γωνία: ≥1366px
   right 38 + 107 πλάτος, bottom 24 + 105 ύψος (avatar + πλακέτα «Live Chat»)· <1366px right/bottom 16 (μετρημένο με headless Chromium
   στο πραγματικό vendor/spot-crm.css). Οι τιμές = αποτύπωμα + ~7px αέρας. Ισχύουν ΜΟΝΟ όταν αποδίδεται ο Spot (body.has-spot, από το
   _Layout)· αλλιώς 0px. Κάθε fixed/sticky κανόνας με bottom/right χρησιμοποιεί αυτές τις μεταβλητές (φρουρός Arch SpotSafeAreaTests). */
:root{--spot-safe-w:0px;--spot-safe-h:0px}
:root{--spot-open-w:0px}
/* E2791: --spot-open-w = πλάτος του ΑΝΟΙΧΤΟΥ πάνελ Spot (το ορίζει το spot-gear.js, 0 όταν κλειστό)· οι fixed αναδυόμενοι δεξιά παίρνουν max(var(--spot-safe-w), var(--spot-open-w)) (η ζώνη του εικονιδίου ή το ανοιχτό πάνελ, όποιο είναι μεγαλύτερο). */
body.has-spot{--spot-safe-w:152px;--spot-safe-h:136px}
@media (max-width:1365.98px){body.has-spot{--spot-safe-w:130px;--spot-safe-h:128px}}
/* E1514 (owner: «στο κινητό μόνο κεφάλι — τρώει πολύ χώρο πριν ανοίξει»): κλειστός Spot σε κινητό = ΜΟΝΟ το κεφάλι 56px (spot-plan.css κρύβει callout + πλακέτα «Live Chat»)
   ➜ η ζώνη μικραίνει: κεφάλι 56 + περιθώριο 12 + αέρας 8 (+ safe-area κάτω για APK/TWA). Όριο 700px = ίδιο με το spot-plan.css. */
@media (max-width:700px){body.has-spot{--spot-safe-w:72px;--spot-safe-h:calc(76px + env(safe-area-inset-bottom,0px))}}
/* E1469 (owner): ΚΛΕΙΣΤΟΣ ο Spot επιπλέει ΠΑΝΩ από τη σελίδα — καμία κολώνα (το πλέγμα πιάνει όλο το πλάτος)· προστατεύεται ΜΟΝΟ το κουτάκι του
   κάτω δεξιά (padding-bottom εδώ + .pgr/composers παρακάτω). Η κολώνα δεξιά κρατιέται ΜΟΝΟ όσο το πάνελ είναι ΑΝΟΙΧΤΟ (body.spot-open, από spot-gear.js). */
/* E2413QF: κουμπί «Ν κλήσεις τώρα» (kliseis-popup.css) κάτω από το ρομπότ ➜ η ζώνη μεγαλώνει όσο ανεβαίνει ο Spot (body.kl-pill-on, από kliseis-popup.js) */
body.has-spot.kl-pill-on{--spot-safe-h:calc(136px + 22px)}
@media (max-width:1365.98px){body.has-spot.kl-pill-on{--spot-safe-h:calc(128px + 30px)}}
@media (max-width:700px){body.has-spot.kl-pill-on{--spot-safe-h:calc(76px + 34px + env(safe-area-inset-bottom,0px))}}
body.has-spot .page{padding-bottom:var(--spot-safe-h)}
body.has-spot.spot-open .page{padding-right:max(24px,var(--spot-safe-w))}
@media (max-width:900px){body.has-spot.spot-open .page{padding-right:16px}}
body.has-spot .pgr{padding-right:calc(14px + var(--spot-safe-w))}
body.has-spot .kmodal{padding-right:max(16px,var(--spot-safe-w));padding-bottom:var(--spot-safe-h)}
/* ── ΚΥΜΑ Κ3-Karta (dotnet, owner E1042 αυτούσια για https://odb.gr/eispraxeis/<id>: «φτιάξε πιο εργονομικά την
   διάταξη μέσα — χάνεις χώρο»). Καθολικό στην κάρτα εγγραφής (Kelyfos/Domika.cs — Record/Identity/FieldCard),
   ΚΑΘΕ σελίδα κάρτας (Eispraxi/Pliroteo, Pelates, Epafes, Crm Leads/Deals/Accounts, Ergasies, Prosfores,
   Syndromes, Projects) — όχι per-page. Λόγος: σε 9 από τις 10 κάρτες το Record(...) καλείται με tabs:null,
   right:null· η δεξιά στήλη 70% έμενε ΚΕΝΗ (επιβεβαιωμένο σε πραγματικό odb.gr, Playwright, before/after στο
   ~/odb-exports/karta/) ενώ 10-15 πεδία στριμώχνονταν σε 2 στήλες μέσα σε ~400px. Ενότητα ξεχωριστή από το
   «ΚΥΜΑ Κ3-Pinakas» πιο πάνω — ΔΕΝ αγγίζει .page ή τις κλάσεις .pl- των λιστών (δουλειά Κ3-Pinakas-C). Οι κανόνες εδώ παίρνουν
   προτεραιότητα με τη ΣΕΙΡΑ στο αρχείο (ίδια ειδικότητα, χωρίς !important) πάνω στους αρχικούς ορισμούς
   .rec/.ident/.fcard-g/.fld πιο πάνω («ΚΥΜΑ Κ2-Aisthitiki»). */

/* Χωρίς tabs/right (η συνηθισμένη περίπτωση) η αριστερή στήλη παίρνει ΟΛΟ το πλάτος — το <div class="rec-r">
   βγαίνει κυριολεκτικά κενό από το Domika.Record όταν tabs=null ΚΑΙ right=null, άρα :empty το εντοπίζει. */
.rec:has(> .rec-r:empty){grid-template-columns:1fr}
.rec:has(> .rec-r:empty)>.rec-r{display:none}

/* Ταυτότητα πιο σφιχτή: λιγότερο padding, μικρότερος τίτλος (ήταν 24px — «oversized headers» σε μακριές
   περιγραφές-τίτλους όπως στις εισπράξεις), ΚΑΙ subtitle/owner/tags/actions σε ΜΙΑ οριζόντια ζώνη
   (Domika.Identity ➜ .ident-band) αντί για έως 4 ξεχωριστές κάθετες σειρές — «key facts + status/actions σε
   ένα band» (owner). Ίδιες εσωτερικές κλάσεις (.ident-s/.ident-o/.ident-tags/.ident-a) — μόνο νέος γονέας. */
.ident{padding:13px 18px}
.ident-t{font-size:21px;margin:0 0 2px;line-height:1.25}
.ident-band{display:flex;flex-wrap:wrap;align-items:center;gap:5px 16px;margin-top:4px}
.ident-band .ident-s{color:var(--ink2);font-size:14px;margin:0}
.ident-band .ident-o,.ident-band .ident-tags,.ident-band .ident-a{margin:0}

/* Κάρτα πεδίων: πλέγμα ΠΟΛΛΩΝ στηλών ανάλογα με το διαθέσιμο πλάτος (auto-fill) αντί για σταθερές 2 στήλες —
   4-5 στήλες σε πλατιά κάρτα πλήρους πλάτους, λιγότερες σε στενή στήλη (π.χ. Deals με stageBar στα δεξιά),
   1 στήλη σε κινητό — χωρίς media query, το ίδιο το auto-fill το κάνει. Πιο σφιχτό ύψος ανά πεδίο («compact
   label/value») — ετικέτα πάνω/τιμή κάτω παραμένει (label-αριστερά δεν χωράει τις μεγαλύτερες ελληνικές
   ετικέτες μέσα σε ~240px στήλη πλέγματος). */
.fcard{padding:10px 16px 4px}
.fcard-g{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 16px}
.fld{padding:4px 0}

/* Σχετικές λίστες/σημειώσεις (Related/Notes) ζουν ΗΔΗ εκτός Record, σε πλήρες πλάτος — εδώ μόνο πιο σφιχτές
   γραμμές/κεφαλίδες («compact rows»). Το ίδιο πλέγμα τύπου Excel (.pl-*) θα τις αντικαταστήσει αργότερα. */
.rel>header,.notecard>header,.rel-box>header{padding:8px 16px}
.rel-b{padding:8px 14px}
.lrow{padding:8px 14px}

/* ΚΥΜΑ Κ3-Karta-Eispraxis (E1069): η καρτέλα είσπραξης — δεξιά στήλη κατά σειρά σημαντικότητας, όλα σε μία οθόνη.
   Ίδια tokens/dark mode με το υπόλοιπο odb.css· ΧΩΡΙΣ εσωτερικά scroll boxes (E1047). */
.eis-rec .cards-r{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;gap:8px}
.eis-rec .cards-r .card{padding:8px 12px}.eis-rec .cards-r .card-v{font-size:20px}
.eis-rec form.act{margin:0;padding:8px 10px;gap:6px 8px}
.eis-rec form.act-c>b{width:auto;flex:0 0 100%}
.eis-rec form.act .grow{flex:1 1 140px;min-width:0}.eis-rec form.act .grow input{width:100%;min-width:0}
.eis-rec form.act input.n.sm{width:56px}
.eis-rec form.act input.w,.eis-rec form.act select.w{min-width:0;width:100%}
.eis-rec details.box{margin:0;padding:8px 12px}
.eis-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}
.eis-pair form.act{height:100%;box-sizing:border-box}
.eis-rec .panel{margin:0;padding:10px 12px}.eis-rec .panel>h2{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px}
.eis-tax-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.eis-tax-g form.act{height:100%;box-sizing:border-box;align-items:center}
.eis-tax-g form.act select{min-width:0;flex:1 1 120px;max-width:100%}
.eis-tax .box{margin:8px 0 0}
.eis-symf{flex:1 1 120px;min-width:0;word-break:break-word}
.eis-danger{border-color:var(--danger);background:var(--danger-soft)}
.eis-danger>h2{color:var(--danger)}.eis-danger form.act{background:var(--card)}
.eis-hist .rtabs-l{margin-bottom:8px}.eis-sub{margin:10px 0 6px;font-size:12.5px;color:var(--muted)}
.ident-note{flex:0 0 100%;order:-1;margin:0;line-height:1.3}
@media (max-width:1100px){.eis-rec.rec{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.eis-pair,.eis-tax-g{grid-template-columns:minmax(0,1fr)}}

@media print{.shc-root,.shc-launcher-wrap,.shc-launcher,[class^="shc-"],[class*=" shc-"],#spot-crm-root,#spot-crm-planbar,.spot-plan-overlay,.spm-overlay,.odb-spot-anchors{display:none!important}.side,.top,.scrim,form,.bulkbar{display:none!important}.shell{display:block}.main{display:block}.page{padding:0;max-width:none}body{background:#fff}.pgr{position:static}}
/* Το UA [hidden]{display:none} χάνεται από ΚΑΘΕ author κανόνα display (π.χ. .kmodal{display:flex}) — E1061: το modal δεν έκλεινε. */
[hidden]{display:none!important}

/* E1100 — καθολική ένδειξη φόρτωσης: μπάρα στην κορυφή (πάνω από το .top) + spinner στο στοιχείο που πατήθηκε.
   Tokens (--accent), ίδια σε φωτεινό/σκοτεινό. Χωρίς κίνηση όταν prefers-reduced-motion. */
.fortosi{position:fixed;top:0;left:0;right:0;height:3px;z-index:1000;overflow:hidden;background:var(--accent-soft);pointer-events:none}
.fortosi>span{position:absolute;top:0;bottom:0;left:0;width:40%;background:var(--accent);border-radius:0 2px 2px 0;animation:fortosi-bar 1.1s ease-in-out infinite}
@keyframes fortosi-bar{0%{left:-40%}100%{left:100%}}
.is-loading{cursor:progress}
button.is-loading::after,a.is-loading::after,.btn.is-loading::after{content:"";display:inline-block;width:.9em;height:.9em;margin-left:.5em;vertical-align:-.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:fortosi-spin .7s linear infinite}
@keyframes fortosi-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .fortosi>span{animation:none;left:0;width:100%;opacity:.6}
  button.is-loading::after,a.is-loading::after,.btn.is-loading::after{animation:none}
}
/* E1102 — ελληνική μορφή ημερομηνίας/ώρας παντού (wwwroot/js/imerominies.js): ορατό κείμενο ηη/μμ/εεεε + κουμπί ημερολογίου. */
.gr-date{display:inline-flex;align-items:stretch;position:relative;vertical-align:middle;max-width:100%}
.gr-date-text{width:112px;min-width:0;border-radius:8px 0 0 8px}
.gr-datetime .gr-date-text{width:158px}
.gr-time .gr-date-text{width:70px;border-radius:8px}
.gr-date-btn{flex:0 0 auto}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.gr-date-btn){flex:0 0 auto;width:34px;height:34px;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;background:#fff;color:var(--ink2);cursor:pointer;font-size:15px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.gr-date-btn:hover){border-color:var(--accent);color:var(--accent-ink)}


.gr-date-native{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0;margin:0}
.gr-date.is-invalid .gr-date-text{border-color:var(--danger);color:var(--danger)}
/* E1119-Ρ2: σελίδες Ραντεβού — φόρμες σε στήλη, ώρες/ημέρες που τυλίγονται στα 390px */
.rv-form{display:grid;gap:10px;max-width:520px;margin:8px 0 16px}.rv-form label{display:grid;gap:4px;font-weight:600}.rv-form fieldset{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-wrap:wrap;gap:6px 14px}.rv-form legend{font-weight:700;padding:0 4px}
.rv-form .rv-ora{display:inline-flex;gap:6px;align-items:center}
.rv-oraria{display:grid;gap:8px;max-width:640px;margin:8px 0 16px}.rv-day{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}.rv-day>strong{flex:0 0 96px}.rv-win{display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.rv-days{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}

/* E1186/Α47 — κοινό στοιχείο κειμένου (μικρόφωνο από fwni.js) + «ai copy»/«ai grammar» (Kelyfos/DomikaKeimenoMeAi.cs) */
.kma{display:block;min-width:0}.kma textarea{display:block;width:100%;box-sizing:border-box;resize:vertical;overflow-y:auto}
.kma textarea{max-height:var(--kma-max-h)}
.kma textarea.kma-grow{resize:none}
.kma-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.kma-msg{display:block;margin-top:4px;color:var(--muted,#6b7280)}
.note-add .kma,.reply .kma{flex:1}
.kma .htmx-request{opacity:.6}
/* E1878 — checkbox «✨ AI act» μέσα στη μπάρα του κοινού στοιχείου */
/* QF-44 (E2120): μικρό toggle-εικονίδιο ✨ (tooltip «AI act»), τσεκαρισμένο = τονισμένο· χωρίς δικό του κουτί/πλαίσιο, το «AI act» μένει για screen reader */
.kma-auto{display:inline-flex;align-items:center;position:relative;cursor:pointer;margin-left:auto}
.kma-auto input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.kma-auto-i{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:8px;font-size:15px;opacity:.55;filter:grayscale(1)}
.kma-auto:hover .kma-auto-i{opacity:.85}
.kma-auto input:checked+.kma-auto-i{opacity:1;filter:none;background:color-mix(in srgb,var(--accent,#2563eb) 18%,transparent);box-shadow:inset 0 0 0 1px var(--accent,#2563eb)}
.kma-auto input:focus-visible+.kma-auto-i{outline:2px solid var(--accent,#2563eb)}
.kma-auto-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* E1192 (Δ0-Β): σελίδα πλήρους πλάτους (DLACK) — χωρίς max-width/padding/κύλιση σελίδας· κυλούν μόνο τα εσωτερικά πάνελ. */
body .page.page-plires,body.has-spot .page.page-plires{max-width:none;margin:0;padding:0;height:calc(100vh - var(--top-h,54px));overflow:hidden}
.page.page-plires>*{height:100%}

/* E1322 + E4100 — κοινός επιλογέας ώρας (Kelyfos/Koina/Imerominia/OraEpilogeas.cs): 3 ζώνες + «Άλλη ώρα…» + edit επί τόπου (σχέδιο sxedia/E4100_ora).
   Μένει μέσα στη ροή (.page) ➜ σέβεται το spot-safe padding του has-spot. Μόνο var(--…)· τα --ora-* ζουν στο tokens.css (φωτεινό + σκούρο). */
.ora-ep{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;max-width:100%;min-width:0}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-chip){font:inherit;font-size:13px;line-height:1;padding:7px 9px;min-height:32px;min-width:52px;border:1px solid var(--ora-chip-line);border-radius:8px;background:var(--ora-chip-bg);color:var(--ink);cursor:pointer}:where(html[data-odb-ds],html[data-odb-ds] *):is(.ora-chip.ora-editpill){font:inherit;font-size:13px;line-height:1;padding:7px 9px;min-height:32px;min-width:52px;border:1px solid var(--ora-chip-line);border-radius:8px;background:var(--ora-chip-bg);color:var(--ink);cursor:pointer}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-chip:hover){border-color:var(--ora-on)}:where(html[data-odb-ds],html[data-odb-ds] *):is(.ora-chip.ora-editpill:hover){border-color:var(--ora-on)}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-chip:focus-visible){outline:2px solid var(--ora-on);outline-offset:1px}:where(html[data-odb-ds],html[data-odb-ds] *):is(.ora-chip.ora-editpill:focus-visible){outline:2px solid var(--ora-on);outline-offset:1px}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-chip.is-on){background:var(--ora-on);border-color:var(--ora-on);color:var(--ora-on-ink);font-weight:600}:where(html[data-odb-ds],html[data-odb-ds] *):is(.ora-chip.ora-editpill.is-on){background:var(--ora-on);border-color:var(--ora-on);color:var(--ora-on-ink);font-weight:600}
.ora-ep-date{max-width:100%}
.ora-req{position:absolute;width:1px;height:1px;padding:0;margin:0;border:0;opacity:0;pointer-events:none}
.ora-z{display:flex;flex-direction:column;gap:10px;flex:1 1 100%;max-width:100%;min-width:0;container-type:inline-size}
.ora-z-date{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1 1 100%;min-width:0}
.ora-z-zones{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0}
@container (min-width:720px){.ora-z-zones{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ora-zone{display:block;margin:0;padding:8px 10px 10px;border:1px solid var(--ora-zone-line);border-radius:10px;background:var(--ora-zone-bg);min-width:0}
.ora-zone.has-on{border-color:var(--ora-on);box-shadow:inset 0 0 0 1px var(--ora-on)}
.ora-zone-h{display:flex;align-items:center;gap:6px;font-size:13px;line-height:1.2;color:var(--ink)}
.ora-zone-h b{font-weight:700}
.ora-zone-r{color:var(--muted);font-size:12px;margin-left:auto;font-variant-numeric:tabular-nums}
.ora-zone-ic{width:18px;height:18px;flex:0 0 auto;color:var(--zc,var(--ora-alli));stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ora-zone-slots{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip){padding:0 9px;height:32px;min-height:0;min-width:58px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-variant-numeric:tabular-nums;flex:0 0 auto}:where(html[data-odb-ds],html[data-odb-ds] *):is(.ora-z .ora-chip.ora-editpill){padding:0 9px;height:32px;min-height:0;min-width:58px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-variant-numeric:tabular-nums;flex:0 0 auto}
.ora-z .ora-chip[hidden]{display:none}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip.is-on){font-weight:700}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip.is-on:hover){filter:brightness(1.06)}
:where(html[data-odb-ds],html[data-odb-ds] *):is(.ora-z .ora-chip.ora-editpill.is-on){font-weight:700}

/* η επιλεγμένη πάνω της έγινε «άλλη» ώρα (π.χ. 15:35) ➜ μικρή τελεία-σημάδι */
.ora-z .ora-chip.is-on.is-shifted::after{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.8;margin-left:2px}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip.is-on.is-shifted)::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--ora-on-ink);opacity:.8;margin-left:2px}
/* edit επί τόπου: στη θέση του pill μπαίνει [−] ωω:λλ [+] — τίποτα κάτω */
.ora-z .ora-editpill{padding:0;min-width:124px;cursor:default;gap:0;overflow:hidden}
.ora-nudge{font:inherit;font-size:15px;line-height:1;width:30px;height:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.ora-nudge:hover{background:var(--ora-nudge-hover)}
.ora-nudge:focus-visible{outline:2px solid currentColor;outline-offset:-3px}
.ora-z .ora-edit{font:inherit;font-size:13px;font-weight:700;width:62px;height:100%;min-width:0;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:center;outline:0;box-shadow:none;font-variant-numeric:tabular-nums}
.ora-edit::placeholder{color:inherit;opacity:.55;font-weight:400}
.ora-edit:invalid{text-decoration:underline wavy var(--danger)}
/* «Άλλη ώρα…» — διακεκομμένη, με φεγγάρι· με τιμή γίνεται κανονικό επιλεγμένο pill */
.ora-z-alli{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip-alli){border-style:dashed;color:var(--ink2,var(--ink));min-width:0;padding:0 11px}


.ora-z .ora-chip-alli .ora-zone-ic{width:15px;height:15px;color:var(--ora-alli)}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip-alli.is-on),:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip-alli.ora-editpill){border-style:solid}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip-alli.is-on){color:var(--ora-on-ink)}
:where(html[data-odb-ds],html[data-odb-ds] *):is(.ora-z .ora-chip-alli.ora-editpill){border-style:solid}

.ora-z .ora-chip-alli.is-on .ora-zone-ic{color:inherit}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip-alli.is-on .ora-zone-ic){color:var(--ora-on-ink)}
.ora-z .ora-chip-alli.ora-editpill{padding:0}
.ora-z-hint{font-size:12px;color:var(--muted)}
/* κινητό: 4 pills ανά σειρά στα 390px, καμία οριζόντια κύλιση */
@media (max-width:600px){:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.ora-z .ora-chip){min-width:70px;height:36px}:where(html[data-odb-ds],html[data-odb-ds] *):is(.ora-z .ora-chip.ora-editpill){min-width:70px;height:36px}.ora-z .ora-chip-alli{min-width:0}.ora-z .ora-editpill{min-width:138px}.ora-nudge{width:36px}.ora-zone-r{display:none}.ora-z-hint{display:none}}

/* Ai Rate / AI Conversion Rate (σχέδιο E1237 §6/§11): κυκλάκι-δακτύλιος. Χρώμα = ζώνη, ΠΟΤΕ κόκκινο (το χαμηλό είναι «θέλει ενέργεια», όχι «κακό»). */
.ident{position:relative}
/* .ident-badge: από E1843 flex item της .ident-head (βλ. §E1843 στο τέλος) — όχι absolute. */
.airate-wrap{display:flex;flex-direction:column;align-items:center;gap:2px}.airate-wrap small{font-size:10.5px;color:var(--muted);font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.airate{--c:var(--muted);--ring:var(--paper2);--d:28px;display:inline-flex;align-items:center;justify-content:center;width:var(--d);height:var(--d);border-radius:50%;
  background:conic-gradient(var(--c) calc(var(--p,0)*1%),var(--ring) 0);position:relative;font-weight:800;font-size:11px;color:var(--ink);cursor:help;vertical-align:middle}
.airate>i{font-style:normal;position:absolute;inset:3px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center}
.airate-lg{--d:56px;font-size:17px}.airate-lg>i{inset:5px}
.airate-z0{--c:#7b8aa6}.airate-z1{--c:#9aa0a6}.airate-z2{--c:#e0b020}.airate-z3{--c:#7fc47f}.airate-z4{--c:#2e9e57}
.airate-xamili{border:1px dashed var(--muted);background:conic-gradient(var(--c) calc(var(--p,0)*1%),var(--ring) 0)}
.airate-closed,.airate-none{background:none;width:auto;min-width:var(--d);border-radius:14px;padding:0 6px;font-size:12px}
.airate-won{color:#2e9e57}.airate-lost{color:var(--muted)}.airate-none{color:var(--muted);font-weight:600}

.airate-miss{padding:10px 0;border-bottom:1px solid var(--line)}.airate-miss p{margin:3px 0}.airate-logoi{margin:0;padding-left:18px}.airate-logoi li{margin:2px 0}
.airate-pinakas{width:100%;table-layout:fixed;font-size:12.5px}/* E2961: border-collapse/κύλιση/sticky από το κοινό .pl-mitra */.airate-pinakas th,.airate-pinakas td{padding:3px 4px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere;word-break:break-word}.airate-pinakas thead th{color:var(--muted);font-weight:600}
.airate-pinakas .airate-omada th{background:var(--soft,rgba(127,127,127,.08));font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.airate-bar{white-space:nowrap}.airate-bar>span{display:inline-block;position:relative;width:40px;height:8px;vertical-align:middle;background:var(--soft,rgba(127,127,127,.12));border-radius:4px;margin-right:6px}
.airate-bar>span::before{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--muted)}.airate-bar>span>i{position:absolute;top:0;bottom:0;border-radius:4px}
.airate-bar>span>i.pos{left:50%;background:#3a8f5c}.airate-bar>span>i.neg{right:50%;background:#b8860b}.airate-bar b{font-weight:600;font-size:11px}.airate-xwris{margin-top:6px;color:var(--muted)}
/* E1837: «Γιατί αυτό το Ai Rate» — ΚΛΕΙΣΤΟ από προεπιλογή (<details>, ▸ ανοίγει) και τίποτα δεν βγαίνει έξω από το κουτί: σταθερός πίνακας, στενή «Επίδραση», αναδίπλωση παντού. */
.airate-giati{--fc:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 16px;min-width:0;max-width:100%;box-sizing:border-box}
.airate-giati>summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:14px;font-weight:800;color:var(--fc);user-select:none;overflow-wrap:anywhere}
.airate-giati>summary::-webkit-details-marker{display:none}.airate-giati>summary::before{content:"▸";font-weight:400}.airate-giati[open]>summary::before{content:"▾"}
.airate-giati-p{color:var(--ink);font-weight:700}
.airate-giati>.fcard{border:0;border-radius:0;background:none;box-shadow:none;padding:6px 0 0}
.airate-giati .fcard-g.one .fld{grid-template-columns:minmax(0,38%) minmax(0,1fr)}.airate-giati .fld dd{min-width:0;overflow-wrap:anywhere}
.airate-giati .fcard-g.one .fld.wide{grid-template-columns:minmax(0,1fr);gap:4px}
.airate-pinakas thead th:nth-child(2){width:26%}.airate-pinakas thead th:nth-child(3){width:72px}
.airate-giati .airate-logoi li{overflow-wrap:anywhere}

/* E1498: το εικονίδιο DLACK στο μενού είναι εικόνα, όχι sprite */
.side .ni-logo{object-fit:contain;border-radius:50%}

/* Τυπικά φίλτρα (χωνί) — λειτουργική βάση· την τελική εμφάνιση τη σχεδιάζει ο Fable */
.tf{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 0;margin:0 0 12px;font-size:13.5px}
.tf-sec+.tf-sec{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.tf-t{padding:2px 12px;color:var(--ink2);font-size:12px;font-weight:600}
.tf-ul,.tf-sub{list-style:none;margin:0;padding:0}
.tf-sub{padding-left:14px}
.tf-a{display:flex;justify-content:space-between;gap:8px;padding:5px 12px;text-decoration:none;color:var(--ink2)}
.tf-a:hover{color:var(--accent-ink)}.tf-a.is-on{color:var(--accent-ink);font-weight:600;background:var(--accent-soft)}
.tf-grp>summary{cursor:pointer;list-style:none}.tf-grp>summary::-webkit-details-marker{display:none}
.klisi-kentrou-x[hidden]{display:none}

/* E1675 Κ2 — μετρητής-φίλτρο (Domika.ΜετρητήςΦίλτρο): ο αριθμός είναι σύνδεσμος· ενεργός = τονισμένος + «✕» καθαρισμού. */
.mf-w{position:relative;display:inline-block}
a.mf{display:block;color:inherit;text-decoration:none;border-radius:8px;outline-offset:2px}
a.mf:hover,a.mf:focus-visible{background:rgba(37,99,235,.08)}
a.mf.is-on{background:rgba(37,99,235,.14);box-shadow:inset 0 0 0 2px #2563eb}
.mf-x{position:absolute;top:-6px;right:-6px;width:18px;height:18px;line-height:18px;text-align:center;font-size:11px;border-radius:50%;background:#2563eb;color:#fff;text-decoration:none}
.mf-x:hover{background:#1d4ed8}

/* E1735 (Ν22): κουμπιά αναζήτησης δίπλα στο όνομα της ταυτότητας (Lead/Deal/Επαφή/Λογαριασμός) — μικρά, διακριτικά, tooltip στα ελληνικά. */
.ident-name{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px}
.ident-name .ident-t{margin-right:0}
.anz{display:inline-flex;align-items:center;gap:4px;position:relative}
.anz-b{display:inline-flex;align-items:center;gap:1px;min-width:24px;height:22px;padding:0 6px;border:1px solid var(--line,#d9dde3);border-radius:11px;font-size:12px;line-height:1;color:var(--ink2,#5b6573);text-decoration:none;background:transparent;opacity:.7}
.anz-b:hover,.anz-b:focus-visible{opacity:1;color:var(--ink,#1b2330);border-color:var(--ink2,#5b6573);text-decoration:none}
.anz-g{font-weight:700;font-family:Arial,sans-serif;margin-right:1px}
.anz-w{flex-basis:100%;font-size:12px;color:var(--danger,#b3261e)}
@media (max-width:640px){.anz-b{height:28px;min-width:30px}}
/* ΚΣ10α: τα αποτελέσματα εύρεσης του ΕΝΟΣ partial _Evresi (Pages/Shared) — βάση για κάθε σελίδα· τα .proionta/.yp-pick ειδικεύουν */
.pr-hits{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;max-height:280px;overflow:auto;background:#fff}
.pr-hit{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--line)}
.pr-hit:last-child{border-bottom:0}.pr-hit-t{flex:1 1 220px;min-width:0}.pr-hit-p{white-space:nowrap;font-weight:600}
/* ώρα-popover (ΚΣ11: κοινό — ζει στο odb.css, δεν χρειάζεται milisa-popup.css) */
.ora-ep-pop{position:relative;align-items:center}
.ora-pop-btn{font:inherit;font-size:13px;padding:7px 10px;min-height:32px;border:1px solid var(--ora-chip-line);border-radius:8px;background:var(--ora-chip-bg);color:var(--ink);cursor:pointer}
.ora-pop-btn[aria-expanded="true"]{border-color:var(--ora-on)}
.ora-quick{min-width:0;white-space:nowrap}
.ora-ep-panel{position:absolute;top:100%;left:0;z-index:30;margin-top:4px;padding:8px;width:min(760px,92vw);display:flex;flex-direction:column;gap:6px;
  border:1px solid var(--ora-chip-line);border-radius:10px;background:var(--ora-zone-bg);box-shadow:var(--ora-panel-shadow)}
.ora-ep-panel[hidden]{display:none}
/* ΚΣ11: chips «Σήμερα · Αύριο» του <odb-imera> (φτιάχνονται από το imerominies.js) */
.gr-date-chips{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}
:where(html:not([data-odb-ds]),html:not([data-odb-ds]) *):is(.gr-date-chips .btn-sm){padding:4px 8px}


/* E1873 — ΤΟ ΕΝΑ κελί «Call Result» σε κάθε λίστα/κουτί κλήσεων (Pages/Kliseis/CallResultKlisis.cs): έκβαση + σύντομο σχόλιο, ⤢ για όλο, ✎· κενό ➜ «—» + «+ Call Result» */
.kcr{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-size:13px;min-width:0}
.kcr-x>summary{cursor:pointer;list-style:none}
.kcr-x>summary::-webkit-details-marker{display:none}
.kcr-x[open] .kcr-s{display:none}
.kcr-o{color:var(--muted,#888);font-size:12px}
.kcr-add .kl-log>summary{font-size:12px;padding:0 6px}
/* QF-09 — σημειώσεις: 🗑 διαγραφή, 📎 επισύναψη, μικρογραφίες συνημμένων */
.nt-delform{display:inline;margin-left:auto}.nt-delbtn{border:0;background:none;cursor:pointer;font-size:13px;opacity:.35;padding:0 4px}.nt-delbtn:hover,.nt-delbtn:focus-visible{opacity:1}
.nt-attach{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}.nt-attbtn{cursor:pointer}.nt-pending{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.nt-pending li{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:2px 6px;font-size:12px}.nt-pending img{height:36px;width:auto;border-radius:4px}
.nt-pendx{border:0;background:none;cursor:pointer;opacity:.6}.note-add.is-drop{outline:2px dashed var(--accent);outline-offset:2px;border-radius:8px}.nt-attmsg{flex-basis:100%;margin:0;color:var(--danger,#b42318);font-size:12px}
.nt-atts{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.nt-att img{display:block;max-height:140px;max-width:220px;border:1px solid var(--line);border-radius:8px}.nt-att-f{font-size:13px}

/* ══ E1843 — ενιαία στήλη ταυτότητας ΟΛΩΝ των records (σχέδιο dotnet/docs/sxedio_e1843_stili_taftotitas.md §2–§3· κάρτες E1837/E1839/E1841/E1842) ══
   Μία διάταξη: κεφαλή [κύκλος AI Rate + ⚙ | τίτλος] ως flex (ΠΟΤΕ absolute ➜ καμία επικάλυψη) → band (στάδιο/ετικέτες/πωλητής/κουμπιά) → κάρτες Spot
   [Σύνοψη | Google Spot] με την αποθηκευμένη κλειστή από κάτω → «Γιατί αυτό το Ai Rate» κλειστό → κλειδιά. Η «στενή» ταυτότητα (αριστερή στήλη στα
   1280/1024, όλη η σελίδα στα 390) κρίνεται με container query πάνω στο ΙΔΙΟ το κουτί — όχι με το viewport — ώστε οι ταυτότητες πλήρους πλάτους
   (Προσφορά, Είσπραξη, Εργασία) να μένουν σε μία γραμμή. Όλα εδώ· καμία inline CSS (ΚΣ0 «Inline style» = 0 εξαιρέσεις). */
.ident{position:relative;container-type:inline-size;min-width:0}
.ident-head{display:flex;flex-direction:row-reverse;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:6px 14px}
.ident-head>.ident-name{flex:1 1 180px;min-width:0;max-width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px}
.ident-head>.ident-badge{position:static;top:auto;right:auto;flex:0 0 auto;max-width:100%;width:auto;display:flex;align-items:flex-start;justify-content:flex-end;gap:4px;margin:0}
.ident-t{flex:1 1 auto;min-width:0;max-width:100%;margin:0 0 2px;font-size:clamp(16px,6cqi,21px);line-height:1.2;overflow-wrap:anywhere;word-break:normal;hyphens:auto;-webkit-hyphens:auto}
.ident-back{margin-bottom:4px}
/* ⚙ (E1841): μικρό, δίπλα στον κύκλο· popover absolute (δεν αλλάζει τη ροή), ποτέ πλατύτερο από το κουτί της ταυτότητας. */
.airate-gear{position:relative;flex:0 0 auto;margin-top:16px}
.airate-gear>summary{list-style:none;cursor:pointer;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px;line-height:1;color:var(--muted);border:1px solid transparent}
.airate-gear>summary::-webkit-details-marker{display:none}
.airate-gear>summary:hover,.airate-gear[open]>summary{color:var(--ink);border-color:var(--line);background:var(--paper2)}
.airate-pop{position:absolute;top:100%;right:0;z-index:30;margin-top:4px;width:min(320px,calc(100cqi - 36px));padding:10px 12px;text-align:left;font-size:13px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.airate-pop .sg-box{margin-top:0}
/* Band: στάδιο/ετικέτες/πωλητής/κουμπιά. Στενή ταυτότητα ➜ στήλη, με τα κουμπιά πλήρους πλάτους σε ΜΙΑ γραμμή κειμένου το καθένα. */
.ident-band>*{min-width:0;max-width:100%}
.ident-a>.btn,.ident-a>.btn-ghost,.ident-a>form>.btn,.ident-a>form>.btn-ghost{max-width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@container (max-width:560px){
  .ident-band{flex-direction:column;align-items:stretch;gap:6px}
  .ident-band>.ident-s{order:0}.ident-band>.ident-tags{order:1}.ident-band>.ident-o{order:2}.ident-band>.ident-a{order:3}
  .ident-a{flex-direction:column;align-items:stretch;gap:6px}
  .ident-a>.btn,.ident-a>.btn-ghost,.ident-a>form,.ident-a>form>.btn,.ident-a>form>.btn-ghost{width:100%;box-sizing:border-box;justify-content:center;text-align:center;display:inline-flex}
  .ident-a>form{display:block}
}
/* E1839 (8) — κάρτες AI του κουτιού ταυτότητας (partial _KartesAi, ΙΔΙΟ σε Lead/Deal/Επαφή/Λογαριασμό): «Σύνοψη AI» αριστερά, «Google Spot» ΔΕΞΙΑ της, στην ΙΔΙΑ σειρά.
   Χωρίς αναδίπλωση: η στήλη .rec-l είναι ≥280px — οι κάρτες (130px η καθεμία) μικραίνουν αναλογικά αντί να πέσει η δεύτερη από κάτω.
   E1843: κάθε στήλη .ai-stili = η κάρτα + η αποθηκευμένη (κλειστή, .spot-last) από κάτω· σε πλατιά ταυτότητα οι στήλες ανοίγουν ως 260px για το κείμενο. */
.ident-synopsi{margin-top:10px}
.ai-kartes{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:10px;max-width:100%}
.ai-stili{flex:1 1 130px;min-width:0;max-width:260px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.ai-stili>.syn-card,.ai-stili>.gs-box{width:100%;max-width:130px;box-sizing:border-box}
.ai-kartes .syn-ico,.ai-kartes .gs-ico{width:100%;max-width:130px;height:auto;aspect-ratio:1/1}
.spot-last{width:100%;min-width:0;font-size:12.5px;color:var(--ink2)}
.spot-last>summary{list-style:none;cursor:pointer;overflow-wrap:anywhere;color:var(--ink2);font-weight:600;line-height:1.3}
.spot-last>summary::-webkit-details-marker{display:none}
.spot-last>summary::after{content:" ▸";color:var(--muted)}.spot-last[open]>summary::after{content:" ▾"}
.spot-last-t{margin:4px 0;line-height:1.5;overflow-wrap:anywhere;color:var(--ink)}
.spot-last-k,.spot-last-m{margin:2px 0}
.spot-last-l{margin:4px 0;padding-left:16px}.spot-last-l li{overflow-wrap:anywhere}.spot-last-l a{overflow-wrap:anywhere}
.spot-last-a{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
/* E1855: η θέση του μικρού «✨ Πες στον Spot» (Identity(spot:)) — κάτω από τις κάρτες Spot, πάνω από το «Γιατί»· μικρό κουμπί, όχι πεδίο· σε στενή ταυτότητα παίρνει όλο το πλάτος όπως τα κουμπιά. */
.ident-spot{margin-top:8px;min-width:0;display:flex;flex-wrap:wrap;gap:6px}
.ident-spot>*{min-width:0;max-width:100%}.ident-spot:empty{display:none}
@container (max-width:560px){.ident-spot>.btn,.ident-spot>.btn-ghost,.ident-spot>button{width:100%;box-sizing:border-box;justify-content:center}}
/* Το «Γιατί» (E1837 — οι κανόνες του κουτιού πιο πάνω, §E1837): μέσα στην ταυτότητα, με απόσταση από τις κάρτες Spot· ετικέτες/λίστες ποτέ πλατύτερες από τη στήλη. */
.airate-giati{margin-top:10px}
.airate-giati .fld dt{min-width:0;overflow-wrap:anywhere}
.airate-giati .airate-xwris,.airate-giati .airate-logoi{min-width:0}
/* E2238QF: «ai grammar» = μόνο το εικονίδιο spell-check (SVG του owner), ίδιο μέγεθος με τα γειτονικά κουμπιά (μικρόφωνο, ai copy) */
.kma-ai-ikon{display:inline-flex;align-items:center;justify-content:center;min-width:30px}
.kma-ikon{width:18px;height:18px;flex:0 0 auto;display:block}
/* E2483: προεπισκόπηση της εικόνας κατάστασης (Ρυθμίσεις › Σχετικά sites) δίπλα στο πεδίο ανεβάσματος. */
.kat-eikona-mini{max-width:96px;height:auto;vertical-align:middle;border-radius:6px}

/* E3136QF — η γραμμή «Ετικέτες» της κοινής ταυτότητας (πάνω αριστερά, κάτω από τον τίτλο): chips + «+ Ετικέτα». Χρώμα chip: --etk (όπως στο πλέγμα). */
.ident-etk{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 2px}
.ident-etk .etk-l{font-size:12px;color:var(--muted,#6b7280)}
.ident-etk .etk-chips{display:inline-flex;flex-wrap:wrap;gap:4px}
.ident-etk .etk-chip{display:inline-flex;align-items:center;gap:4px;margin:0}
.ident-etk .etk-x{border:0;background:transparent;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;color:inherit;opacity:.6}
.ident-etk .etk-x:hover{opacity:1}
.ident-etk .etk-form[hidden]{display:none}
.ident-etk .etk-form{display:inline-flex;gap:4px;align-items:center}
.ident-etk .etk-in{width:12em}
.ident-etk .etk-msg{font-size:12px;color:var(--red,#b91c1c)}

/* E3147: χρώμα σήματος και το κοινό μενού της ετικέτας. */
.ident-etk .etk-sima{color:var(--accent);font-size:1.1em}
.ident-etk .etk-chip>.menu-3{display:inline-block}

/* E4084: ο κοινός διακόπτης «Εμφάνιση ακυρωμένων (N)» και οι ακυρωμένες γραμμές όταν φαίνονται (κάθε λίστα δραστηριοτήτων). */
.akyr-sw{display:inline-block;margin:0 0 0 8px;vertical-align:middle}
.akyr-sw .is-on{background:var(--accent-soft);color:var(--accent-ink)}
.dr-akyr,.im-akyr{opacity:.6}
.dr-akyr td{text-decoration:line-through;text-decoration-color:var(--line)}
.dr-akyr td[data-col="katastasi"]{text-decoration:none}
