
  .lz-host{display:contents}
  /* Sentinel γραμμή για lazy μέσα σε <tbody> (lazyBoxRows — 02e-lazy).
     Ειδικότητα 0,1,2 ώστε να νικά το `.gate-tbl td` (0,1,1) χωρίς !important. */
  tr.lz-sent-row{height:0}
  tr.lz-sent-row>td{padding:0;border:0;height:0;line-height:0}
  :root{
    --navy:#15243b; --navy-2:#1d3050; --accent:#e8622d; --accent-soft:#fdeee6;
    --bg:#f4f6fa; --card:#ffffff; --border:#e3e8f0; --text:#1c2536; --muted:#66738a;
    --green:#1e9e5a; --green-soft:#e2f5ea; --red:#d64541; --amber:#e09c1a; --amber-soft:#fdf3df; --blue:#2e6fd8; --blue-soft:#e7effc;
    /* Συντελεστής zoom προβολής (04-zoom). ΤΟ 100vh ΔΕΝ ΚΛΙΜΑΚΩΝΕΤΑΙ με το
       body.style.zoom: μένει το ύψος του viewport σε CSS px και ΜΕΤΑ σμικρύνεται,
       οπότε στο 70% ένα height:100vh έφτανε ως το 70% της οθόνης. Ό,τι πρέπει να
       πιάνει ΟΛΟ το ύψος γράφεται calc(100vh / var(--zf,1)). */
    --zf:1;
    --radius:12px; --shadow:0 1px 3px rgba(21,36,59,.08), 0 4px 16px rgba(21,36,59,.06);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  /* Boot: κρύβει το app μέχρι να ξέρουμε αν είναι πραγματική συνεδρία ή mock —
     αλλιώς φαίνεται στιγμιαία το demo topbar (Ρόλος/Τμήμα) σε κάθε ανανέωση.
     Αποκαλύπτεται από JS στο src/services/22-supabase-*.js (initSupabase/onLogin/showLogin). */
  body.boot .layout{visibility:hidden}
  body{font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
  button{font-family:inherit;cursor:pointer}
  input,select,textarea{font-family:inherit;font-size:13px}

  /* ---------- Topbar (χωρίς χρωματιστό header) — ανοιχτόχρωμα toolbars ---------- */
  .toolbar{display:flex;align-items:center;gap:6px;height:46px;background:#e1edff;border:1px solid #c7dbfb;border-radius:14px;padding:5px;box-shadow:0 3px 10px rgba(37,73,150,.14),0 1px 2px rgba(37,73,150,.08)}
  .tb-sep{width:1px;height:22px;background:#b9d0f5;margin:0 3px;flex:none}
  .hdr-ctrl{display:flex;align-items:center;gap:6px;background:transparent;border:none;border-radius:10px;padding:5px 9px}
  .hdr-ctrl label{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#6b83a8}
  .hdr-ctrl select{background:transparent;color:#1c2536;border:none;outline:none;font-size:13px;font-weight:600;max-width:170px}
  .hdr-ctrl select option{color:#1c2536}
  .icon-btn{position:relative;width:34px;height:34px;border-radius:9px;border:none;background:transparent;color:#3f5578;font-size:17px;display:grid;place-items:center}
  .icon-btn:hover{background:#cfe0fb}
  .badge{position:absolute;top:1px;right:1px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#ff0000;color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;border:2px solid #e1edff}
  #logoutBtn{height:46px;display:inline-flex;align-items:center;background:#e1edff;color:#c0322e;border:1px solid #c7dbfb;border-radius:12px;padding:0 16px;font-weight:600;box-shadow:0 3px 10px rgba(37,73,150,.14),0 1px 2px rgba(37,73,150,.08)}
  #logoutBtn:hover{background:#d3e3fe}
  /* God Mode badge — ορατό μόνο στον ίδιο, δίπλα στο όνομά του */
  .god-badge{display:inline-flex;align-items:center;gap:3px;vertical-align:middle;margin-left:6px;padding:1px 7px 1px 5px;border-radius:999px;font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#fff;background:linear-gradient(120deg,#6d28d9,#c026d3 55%,#f59e0b);box-shadow:0 1px 4px rgba(192,38,211,.45);border:1px solid rgba(255,255,255,.35)}
  .god-badge svg{width:10px;height:10px}
  /* ---------- Live search ---------- */
  /* ΠΑΓΙΔΑ flex-wrap: το σπάσιμο γραμμής μετράει το ΜΗ-συρρικνωμένο basis.
     Με basis 480 τα .toolbar/.user-chip έπεφταν σε 2η γραμμή πριν προλάβει
     η αναζήτηση να στενέψει (ίδιο bug με το mobile topbar). basis 0 =>
     μετράει ως μηδέν, γεμίζει με grow, max-width κρατά την παλιά όψη. */
  .search{position:relative;flex:1 1 0%;min-width:120px;max-width:480px}
  .search .sic{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#98a0ad;pointer-events:none;display:flex}
  .search input{width:100%;height:46px;background:#fff;border:1px solid #ccd4de;border-radius:14px;padding:0 16px 0 44px;color:#1c2536;outline:none;font-size:14px;transition:.15s;box-shadow:0 3px 10px rgba(37,73,150,.14),0 1px 2px rgba(37,73,150,.08)}
  .search input::placeholder{color:#98a0ad}
  .search input:focus{border-color:#4478c4;box-shadow:0 0 0 4px rgba(68,120,196,.16)}
  .search-drop{position:absolute;top:54px;left:0;right:0;min-width:300px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 38px rgba(21,36,59,.25);overflow:hidden;display:none;z-index:95;color:var(--text)}
  .search-drop.open{display:block}
  .sd-h{padding:8px 14px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);background:#fafbfd;border-bottom:1px solid var(--border)}
  .sd-list{max-height:330px;overflow-y:auto}
  .s-res{display:flex;align-items:center;gap:10px;padding:9px 14px;cursor:pointer;border-bottom:1px solid #f2f4f8}
  .s-res:last-child{border-bottom:none}
  .s-res:hover,.s-res.hover{background:var(--accent-soft)}
  .s-res .sn{font-size:13px;font-weight:600}
  .s-res .sd{font-size:11px;color:var(--muted);margin-top:1px}
  .s-res mark{background:var(--amber-soft);color:inherit;border-radius:3px;padding:0 1px}
  .s-res .go{margin-left:auto;color:var(--muted);opacity:.5;font-size:13px}
  .sd-empty{padding:18px;text-align:center;color:var(--muted);font-size:12.5px}
  .s-res.dir{background:linear-gradient(90deg,#f4eeff 0%,#fff 75%)}
  .s-res.dir:hover,.s-res.dir.hover{background:#ece1ff}
  .s-res.dir .avatar{background:#6d3fd4}
  .rrole{color:#6d3fd4;font-weight:700}
  svg.i{vertical-align:-2px;flex:none;display:inline-block}
  .btn svg.i{vertical-align:-2.5px;margin-right:3px}
  .nav-item svg.i{flex:none}
  .ic.task{color:var(--accent)} .ic.note{color:var(--blue)} .ic.rem{color:#b98410} .ic.report{color:var(--green)}
  /* ---------- Spotlight (διπλό Ctrl): overlay με blur, μεγάλο & ευδιάκριτο ---------- */
  .spot-ov{position:fixed;inset:0;z-index:1200;display:none;align-items:flex-start;justify-content:center;
    background:rgba(18,28,48,.42);backdrop-filter:blur(7px) saturate(1.05);-webkit-backdrop-filter:blur(7px) saturate(1.05);padding:12vh 16px 16px}
  .spot-ov.open{display:flex}
  .spot-box{width:min(680px,94vw);max-height:82vh;display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;
    box-shadow:0 30px 80px rgba(15,26,48,.5),0 2px 8px rgba(15,26,48,.25);animation:spotIn .14s ease-out}
  @keyframes spotIn{from{opacity:0;transform:translateY(-10px) scale(.985)}to{opacity:1;transform:none}}
  .spot-in{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border);flex:none}
  .spot-in .spot-ic{color:#4478c4;display:flex;flex:none}
  .spot-in input{flex:1;min-width:0;border:none;outline:none;font-size:20px;color:#1c2536;background:none}
  .spot-in input::placeholder{color:#98a0ad}
  .spot-esc{flex:none;font-size:10.5px;font-weight:700;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:2px 7px;text-transform:uppercase;letter-spacing:.5px}
  .spot-body{overflow-y:auto}
  .spot-body .sd-list{max-height:none}
  .spot-tip{padding:22px 18px;text-align:center;color:var(--muted);font-size:12.5px}
  /* ---------- Zoom (προσβασιμότητα / πρεσβυωπία) ---------- */
  .zoom-ctrl{display:flex;align-items:center;background:transparent;border:none;border-radius:10px;overflow:hidden}
  .zoom-ctrl button{border:none;background:none;color:#3f5578;width:30px;height:34px;font-size:17px;font-weight:700;display:grid;place-items:center;border-radius:8px}
  .zoom-ctrl button:hover{background:#cfe0fb}
  .zoom-ctrl .zl{width:auto;min-width:44px;padding:0 6px;font-size:11.5px;font-weight:700;color:#4a6285;border-left:1px solid #b9d0f5;border-right:1px solid #b9d0f5;border-radius:0}
  .user-chip{display:flex;align-items:center;gap:8px;height:46px;background:#e1edff;border:1px solid #c7dbfb;border-radius:14px;padding:0 12px 0 6px;box-shadow:0 3px 10px rgba(37,73,150,.14),0 1px 2px rgba(37,73,150,.08)}
  .avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none;overflow:hidden}
  .avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
  .user-chip .nm{font-size:12.5px;font-weight:600;line-height:1.15;color:#1c2536}
  .user-chip .rl{font-size:10px;color:#8a94a8}

  /* ---------- Layout ---------- */
  .layout{display:flex;min-height:calc(100vh / var(--zf,1))}
  /* Πλαϊνό μενού full-height (χωρίς header) — μένει σταθερό, λογότυπο πάνω */
  aside{width:240px;flex:none;background:linear-gradient(180deg,#15243b,#182a47);border-right:1px solid #0e1a2c;padding:0;display:flex;flex-direction:column;position:sticky;top:0;height:calc(100vh / var(--zf,1));align-self:flex-start}
  .side-brand{display:flex;align-items:center;gap:9px;padding:16px 14px 12px;flex:none}
  .side-brand .mark{width:36px;height:36px;border-radius:9px;background:#fff;display:grid;place-items:center;padding:3px;box-shadow:0 1px 3px rgba(0,0,0,.3);flex:none}
  .side-brand .mark img{width:100%;height:100%;object-fit:contain;display:block}
  .side-brand .brandtxt{color:#fff;font-weight:700;font-size:15px;line-height:1.1}
  .side-brand small{display:block;font-weight:400;font-size:9.5px;color:#8595ad;letter-spacing:.3px;margin-top:2px}
  /* Badge «Beta» στο τέλος του ονόματος. Flex ώστε να ΜΗΝ πέφτει ποτέ σε δεύτερη
     γραμμή: αν στενέψει ο χώρος, κόβεται το όνομα με «…», όχι το badge. */
  .side-brand .brow{display:flex;align-items:baseline;gap:6px;min-width:0}
  .side-brand .bname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .side-brand .beta{flex:none;padding:2px 5px 3px;border-radius:999px;
    font-size:8px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
    line-height:1;color:#fff;background:linear-gradient(135deg,#f0723d,#c4470f);
    box-shadow:0 1px 3px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.28)}
  #sidebar{flex:1;min-height:0;overflow-y:auto;padding:2px 10px 14px}
  .mainwrap{flex:1;min-width:0;display:flex;flex-direction:column}
  .spacer{flex:1}
  #topbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;padding:16px 26px 2px}
  .nav-title{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#7f8ea8;padding:8px 10px 6px}
  .nav-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:11px 12px;border:none;background:none;border-radius:8px;font-size:15px;color:#dde3ee;line-height:1.25}
  .nav-item svg.i{width:20px;height:20px;flex:none}
  .nav-item:hover{background:rgba(255,255,255,.07)}
  /* χρώμα εικονιδίου ανά module — ίδιο με το banner του περιεχομένου του */
  .nav-item.ni-ann  svg.i{color:#818cf8}
  .nav-item.ni-meet svg.i{color:#a78bfa}
  .nav-item.ni-proj svg.i{color:#4f8ef7}
  .nav-item.ni-cal  svg.i{color:#ef4444}
  .nav-item.ni-note svg.i{color:#7fb0f5}
  .nav-item.ni-todo svg.i{color:#fbbf24}
  .nav-item.ni-rep  svg.i{color:#34d399}
  .nav-item.ni-ct   svg.i{color:#38bdf8}
  .nav-item.ni-doc  svg.i{color:#eab308}
  .nav-item.ni-need svg.i{color:#2dd4bf}
  .nav-item.ni-task svg.i{color:#ff7a3d}
  .nav-item.ni-team svg.i{color:#93c5fd}
  .nav-item.ni-bug  svg.i{color:#e879f9}
  .nav-item.ni-set  svg.i{color:#94a3b8}
  .nav-item.god-nav svg.i{color:#ff5a4d}
  /* ενεργό μενού — έντονο πορτοκαλί, εικονίδιο & κείμενο λευκά */
  .nav-item.active{background:linear-gradient(90deg,#e8622d,#ff7a3d);color:#fff;font-weight:700;box-shadow:0 2px 10px rgba(232,98,45,.45)}
  .nav-item.active svg.i{color:#fff}
  /* badges — ένα έντονο χρώμα */
  .nav-item .cnt{margin-left:auto;font-size:12px;font-weight:700;background:#ff3b47;border-radius:9px;padding:2px 8px;color:#fff}
  .nav-item.active .cnt{background:#fff;color:#e8622d}
  .nav-scroll{max-height:none;overflow:visible}
  .priv-note{margin:14px 8px 0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:9px;padding:9px 11px;font-size:11px;color:#c3cde0;line-height:1.5}
  .priv-note svg{color:#9fb0cc}
  main{flex:1;padding:14px 26px 104px;min-width:0}

  
  /* ---------- Ομαδοποίηση πλαϊνού μενού (God Mode → Μενού, module 47) ----------
     Τρία στυλ: γραμμή / κενό / πλαίσιο. Το ίδιο CSS δουλεύει και στην
     προεπισκόπηση του πάνελ, γιατί χρησιμοποιεί τις ίδιες κλάσεις. */
  .nav-sep{height:1px;margin:9px 10px;background:rgba(255,255,255,.14);border-radius:1px}
  .nav-sep.gap{height:0;background:none;margin:14px 0 0}
  .nav-grp{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);
    border-radius:12px;padding:5px;margin-bottom:9px}
  .nav-grp .nav-item{border-radius:7px}
/* ---------- Calculator ---------- */
  .calc{width:302px;background:linear-gradient(160deg,#1d2637,#131b2a);border-radius:22px;padding:14px 16px 16px;box-shadow:0 24px 60px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.09)}
  .calc-head{display:flex;align-items:center;color:rgba(255,255,255,.55);font-size:12px;font-weight:700;padding-bottom:2px}
  .calc-head button{margin-left:auto;border:none;background:none;color:rgba(255,255,255,.5);cursor:pointer;display:flex}
  .calc-head button:hover{color:#fff}
  .calc-hist{max-height:62px;overflow-y:auto;margin:2px 0}
  .calc-hist div{font-size:10.5px;color:rgba(255,255,255,.38);text-align:right;padding:1px 5px;cursor:pointer;border-radius:5px;font-variant-numeric:tabular-nums}
  .calc-hist div:hover{color:#fff;background:rgba(255,255,255,.09)}
  .calc-expr{height:18px;font-size:13px;color:rgba(255,255,255,.5);text-align:right;padding-right:6px;font-variant-numeric:tabular-nums}
  .calc-disp{font-size:37px;font-weight:300;color:#fff;text-align:right;padding:0 6px 12px;overflow:hidden;white-space:nowrap;font-variant-numeric:tabular-nums}
  .calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
  .calc-grid button{height:55px;border:none;border-radius:50%;font-size:20px;font-weight:600;cursor:pointer;background:#33415c;color:#fff;transition:filter .1s,transform .08s}
  .calc-grid button:hover{filter:brightness(1.25)}
  .calc-grid button:active{transform:scale(.93)}
  .calc-grid .fn{background:#9aa4b8;color:#141c2b}
  .calc-grid .op{background:var(--accent);font-size:24px}
  .calc-grid .op.on{background:#fff;color:var(--accent)}
  .calc-grid .zero{grid-column:span 2;border-radius:28px}

  /* ---------- Κειμενογράφος ---------- */
  .wp-ov{position:fixed;inset:0;background:rgba(15,23,40,.45);z-index:98;display:grid;place-items:center;padding:18px;animation:fadeIn .15s}
  .wp{width:min(920px,95vw);height:min(700px,90vh);background:#f2f4f8;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.4)}
  /* Κεφαλίδα όπως όλα τα παράθυρα: εικονίδιο · τίτλος (επεξεργάσιμος) · ? · − · ✕ */
  .wp-title{display:flex;align-items:center;gap:12px;background:linear-gradient(115deg,#103f91,#2b7cd3 140%);padding:14px 18px;color:#fff}
  .wp-title .mh-ic{color:#fff}
  .wp-tt{flex:1;min-width:0}
  .wp-title input{display:block;width:100%;max-width:420px;background:transparent;border:1px solid transparent;border-radius:7px;color:#fff;
    font-size:16px;font-weight:700;padding:2px 7px;margin-left:-8px;outline:none;text-overflow:ellipsis;transition:background .15s,border-color .15s}
  .wp-title input:hover{background:rgba(255,255,255,.1)}
  .wp-title input:focus{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35)}
  .wp-title input::placeholder{color:rgba(255,255,255,.6)}
  .wp-tt .sub{font-size:12px;color:rgba(255,255,255,.75);margin-top:2px}
  .wp-title .mh-help{margin-left:0}
  .wp-hb{flex:none;border:none;background:none;color:rgba(255,255,255,.85);cursor:pointer;padding:0;width:27px;height:27px;border-radius:8px;display:grid;place-items:center}
  .wp-hb:hover{background:rgba(255,255,255,.2);color:#fff}
  .wp-hb.wp-x{margin-left:-6px}
  .wp-tools{display:flex;align-items:center;gap:6px;background:#fff;border-bottom:1px solid var(--border);padding:8px 12px;flex-wrap:wrap}
  .wp-tools select{border:1px solid var(--border);border-radius:8px;padding:6px 9px;font-size:12.5px;outline:none;background:#fff}
  .wp-btn{width:32px;height:32px;border:1px solid transparent;background:none;border-radius:8px;cursor:pointer;color:#3c4761;display:grid;place-items:center;font-size:14px}
  .wp-btn:hover{background:var(--bg)}
  .wp-btn.on{background:#e8f1fc;color:#185abd;border-color:#b9d3f5}
  .wp-sep{width:1px;height:22px;background:var(--border);margin:0 4px}
  .wp-color{position:relative;width:34px;height:32px;border-radius:8px;display:grid;place-items:center;cursor:pointer}
  .wp-color:hover{background:var(--bg)}
  .wp-color .a{font-weight:800;font-size:14.5px;line-height:1;color:#3c4761;margin-bottom:5px}
  .wp-color .bar{position:absolute;bottom:5px;left:8px;right:8px;height:4px;border-radius:2px;background:#e8622d}
  .wp-color input{position:absolute;inset:0;opacity:0;cursor:pointer}
  .wp-body{flex:1;overflow:auto;padding:26px 16px;background:linear-gradient(180deg,#e8ebf2,#eef0f6)}
  .wp-pages{display:flex;flex-direction:column;gap:28px;align-items:center;min-width:min-content;width:100%}
  .wp-page{width:794px;height:1123px;flex:none;background:#fff;border-radius:3px;box-shadow:0 3px 18px rgba(21,36,59,.18);padding:76px 72px;outline:none;font-size:14.5px;line-height:1.75;color:#1c2536;overflow:visible;position:relative}
  .wp-page:focus{box-shadow:0 3px 18px rgba(21,36,59,.18),0 0 0 3px rgba(24,90,189,.15)}
  .wp-page::after{content:attr(data-num);position:absolute;bottom:30px;left:50%;transform:translateX(-50%);font-size:10px;color:#aab3c2;pointer-events:none}
  .wp-foot{display:flex;gap:14px;align-items:center;background:#fff;border-top:1px solid var(--border);padding:7px 14px;font-size:11px;color:var(--muted)}
  .dock-item.temp .dock-ic{outline:2.5px solid var(--accent);outline-offset:2px;background:linear-gradient(135deg,#20b2aa,#0e8a84)!important}
  .temp-dot{position:absolute;top:-3px;right:-3px;width:11px;height:11px;border-radius:50%;background:var(--red);border:2px solid #fff;animation:tpulse 1.2s ease-in-out infinite}
  @keyframes tpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}

  /* ---------- Έγγραφα (Finder-style) ---------- */
  .fd-left{width:230px;flex:none;border-right:1px solid var(--border);background:#fafbfd;display:flex;flex-direction:column;min-height:0}
  .fd-left h6{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);padding:12px 14px 6px}
  .fd-root{display:flex;align-items:center;gap:9px;padding:8px 14px;cursor:pointer;font-size:12.5px;font-weight:600;border-left:3px solid transparent;color:var(--text)}
  .fd-root:hover{background:var(--bg)}
  .fd-root.sel{background:var(--accent-soft);border-left-color:var(--accent);color:#b34a17}
  .fd-root .fico{color:#e9b64c;display:flex}
  .fd-newroot{margin:8px 10px;display:flex;gap:5px}
  .fd-newroot input{flex:1;border:1.5px solid var(--accent);border-radius:8px;padding:6px 8px;font-size:11.5px;outline:none;min-width:0}
  .fd-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}
  .fd-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:#fff}
  .fd-crumb{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:12px;font-weight:600;color:var(--muted)}
  .fd-crumb span{cursor:pointer;padding:3px 7px;border-radius:6px}
  .fd-crumb span:hover{background:var(--bg);color:var(--text)}
  .fd-crumb b{color:var(--text);padding:3px 7px}
  .fd-scroll{flex:1;overflow-y:auto}
  .fd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;padding:16px}
  .fd-item{text-align:center;cursor:pointer;padding:12px 6px 9px;border-radius:12px;border:1.5px solid transparent;position:relative}
  .fd-item:hover{background:var(--bg);border-color:var(--border)}
  .fd-ic{width:52px;height:52px;margin:0 auto;display:grid;place-items:center}
  .fd-ic.folder{color:#e9b64c}
  .fd-ic.doc{color:var(--blue);background:var(--blue-soft);border-radius:12px;width:46px;height:52px}
  .fd-name{font-size:11.5px;font-weight:600;margin-top:6px;word-break:break-word;line-height:1.3}
  .fd-meta{font-size:9.5px;color:var(--muted);margin-top:2px}
  .fd-x{position:absolute;top:4px;right:4px;border:none;background:#fff;border-radius:6px;color:var(--muted);cursor:pointer;padding:3px;display:flex;opacity:0;transition:.15s;box-shadow:0 1px 4px rgba(21,36,59,.15)}
  .fd-item:hover .fd-x{opacity:.9}
  .fd-x:hover{color:var(--red)}
  .fd-s{right:30px!important}
  .fd-s:hover{color:var(--blue)!important}
  .fd-pickrow{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:12.5px}
  .fd-pickrow:hover{background:var(--bg)}
  .fd-pickrow.sel{background:var(--accent-soft);color:#b34a17;font-weight:700}
  .fd-item.dragging{opacity:.45;transform:scale(.96)}
  .fd-item.drop,.fd-root.drop{outline:2.5px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)!important}
  .fd-crumb span.drop{background:var(--accent-soft);color:#b34a17;outline:1.5px dashed var(--accent)}

  /* ---------- Διάλογος κλεισίματος κειμενογράφου ---------- */
  .wpc-opt{display:flex;align-items:center;gap:12px;width:100%;border:1.5px solid var(--border);background:#fff;border-radius:12px;padding:12px 14px;cursor:pointer;text-align:left;margin-top:9px;transition:.15s;font-family:inherit}
  .wpc-opt:hover{border-color:var(--accent);background:#fff9f5;transform:translateY(-1px);box-shadow:0 3px 10px rgba(21,36,59,.08)}
  .wpc-opt .wic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;flex:none}
  .wpc-opt .wt b{font-size:13.5px;display:block}
  .wpc-opt .wt span{font-size:11px;color:var(--muted)}
  .wpc-opt .wgo{margin-left:auto;color:var(--muted);opacity:.5;font-size:15px}
  .wpc-discard{border:none;background:none;color:var(--red);font-size:12.5px;font-weight:600;cursor:pointer;padding:8px 4px}
  .wpc-discard:hover{text-decoration:underline}

  /* ---------- Ανάγκες ---------- */
  .np{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;padding:3px 10px;border-radius:9px;white-space:nowrap;letter-spacing:.2px}
  .np.pending{background:var(--amber-soft);color:#8a6408}
  .np.delayed{background:#fdeaea;color:var(--red)}
  .np.admin{background:#f0e9fd;color:#6d3fd4}
  .np.approved{background:var(--green-soft);color:var(--green)}
  .nd-row{display:flex;gap:12px;padding:13px 16px;border-bottom:1px solid #f2f4f8;align-items:flex-start;transition:background .3s}
  .nd-row:last-child{border-bottom:none}
  .nd-row:hover{background:#fafbfd}
  .nd-main{flex:1;min-width:0}
  .nd-item{font-size:13.5px;font-weight:700}
  .nd-item .q{color:var(--accent);font-weight:800}
  .nd-why{font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.5}
  .nd-meta{font-size:10px;color:var(--muted);margin-top:4px}
  .nd-com{background:var(--blue-soft);border-radius:9px;padding:7px 10px;font-size:11.5px;margin-top:7px;line-height:1.5}
  .nd-com b{font-size:10.5px;color:#2b4d86}
  .nd-acts{display:flex;gap:5px;flex-wrap:wrap;flex:none;align-items:flex-start}
  .nd-acts .btn{padding:6px 10px;font-size:11px}
  .nd-grp{position:sticky;top:0;background:#f4f6fa;padding:8px 16px;font-size:11px;font-weight:800;color:#3c4761;
    display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.4px;z-index:1}
  .nd-grp span{color:var(--muted);font-weight:600;text-transform:none}
  .nd-dept{background:#e7effc;color:#2b4d86;font-weight:800;font-size:10px;padding:2.5px 9px;border-radius:8px;
    display:inline-flex;gap:4px;align-items:center;white-space:nowrap}
  .nd-name{font-size:14px;font-weight:800}
  .nd-open{font-size:10.5px;color:var(--muted);display:flex;align-items:center;gap:3px;margin-top:6px}
  .nd-row.click{cursor:pointer}
  .nd-row.click:hover{background:var(--accent-soft)}
  .nda-btn{display:flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:11px;
    padding:12px 16px;font-size:13px;font-weight:700;cursor:pointer;transition:.15s;font-family:inherit;flex:1;min-width:150px}
  .nda-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}
  .nda-btn.ok{background:var(--green);color:#fff;box-shadow:0 3px 10px rgba(30,158,90,.3)}
  .nda-btn.fwd{background:#f0e9fd;color:#6d3fd4;border:1.5px solid #d9c8f7}
  .nda-btn.late{background:#fdeaea;color:var(--red);border:1.5px solid #f3c3c1}
  .nd-cin{display:flex;gap:6px;margin-top:8px;width:100%}
  .nd-cin input{flex:1;border:1.5px solid var(--accent);border-radius:9px;padding:7px 10px;font-size:12px;outline:none}
  /* Συζήτηση ανάγκης (αιτών ↔ Γραμματεία) */
  .nd-thread{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;padding:2px}
  .nd-msg{align-self:flex-start;max-width:85%;background:#eef2f7;border-radius:12px 12px 12px 4px;padding:7px 11px;
    font-size:12.5px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap}
  .nd-msg.me{align-self:flex-end;background:#d6f5f1;border-radius:12px 12px 4px 12px}
  .nd-msg b{display:block;font-size:10.5px;color:#0b5f57;margin-bottom:1px;white-space:normal}
  .nd-msg .t{color:var(--muted);font-weight:600;margin-left:6px}
  .nd-side{display:flex;flex-direction:column;gap:7px;align-items:flex-end;flex:none}
  .nd-chat{color:#0d9488;font-weight:700}
  .nd-q{background:var(--amber-soft);color:#8a6408;font-weight:800;padding:1px 7px;border-radius:7px;margin-left:4px}
  .nd-del{display:inline-flex;align-items:center;gap:4px;background:none;border:1.5px solid #f3c3c1;color:var(--red);
    border-radius:8px;padding:4px 9px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit}
  .nd-del:hover{background:#fdeaea}

  

/* ---------- HR · απόφαση · προώθηση · δύο νήματα (docs/sql/81) ---------- */
  .np.rejected{background:#fdeaea;color:var(--red)}
  .nda-btn.no{background:#fdeaea;color:var(--red);border:1.5px solid #f3c3c1}
  .nd-acts{display:flex;gap:9px;flex-wrap:wrap}
  .nd-acts .nda-btn{flex:1 1 150px}
  .nd-mhic{background:#d6f5f1!important;color:#0d9488}
  .nd-note{margin-top:12px;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
  .nd-rej{color:var(--red)!important;font-weight:600}
  .nd-verdict{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:13px 15px;margin-top:14px;font-size:13px}
  .nd-verdict>svg{flex:none;margin-top:1px}
  .nd-verdict b{font-size:14.5px}
  .nd-verdict span{color:var(--muted);font-size:12px;margin-left:4px}
  .nd-verdict.ok{background:var(--green-soft);color:var(--green)}
  .nd-verdict.no{background:#fdeaea;color:var(--red)}
  .nd-vnote{margin-top:5px;color:var(--text);font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
  .nd-fwdinfo{display:flex;gap:8px;align-items:center;margin-top:14px;background:#f0e9fd;color:#4c2a9e;border-radius:12px;padding:11px 14px;font-size:12.5px;line-height:1.5}
  .nd-fwdinfo svg{flex:none;color:#6d3fd4}
  .nd-chans{display:flex;gap:4px;background:var(--bg);border-radius:10px;padding:3px;margin-bottom:8px}
  .nd-chans button{flex:1;min-width:0;border:none;background:none;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nd-chans button.on{background:#fff;color:#0b5f57;box-shadow:0 1px 3px rgba(15,23,40,.12)}
  .nd-chans button span{margin-left:4px;font-weight:800;opacity:.7}
  .nd-lock{display:flex;align-items:center;gap:5px;font-size:11px;color:#6d3fd4;font-weight:700;margin-bottom:6px}
  .nd-lbl{display:block;margin-top:12px;font-size:12px;font-weight:700;color:var(--text)}
  .nd-lbl span{font-weight:500;color:var(--muted)}
  .nd-lbl .req{color:var(--red);font-weight:800}
  .nd-ta{width:100%;margin-top:5px;border:1.5px solid var(--border);border-radius:10px;padding:8px 10px;font:inherit;font-size:13px;resize:vertical;outline:none}
  .nd-ta:focus{border-color:#0d9488}
  .nd-adms{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:240px;overflow-y:auto}
  .nd-adm{display:flex;align-items:center;gap:10px;border:1.5px solid var(--border);background:#fff;border-radius:11px;padding:8px 11px;cursor:pointer;text-align:left;width:100%}
  .nd-adm:hover{border-color:#b9a3ee}
  .nd-adm .nm{flex:1;min-width:0;font-size:13px;font-weight:700;display:flex;flex-direction:column}
  .nd-adm .nm small{font-size:11px;font-weight:500;color:var(--muted)}
  .nd-adm .rd{width:18px;height:18px;border-radius:50%;border:2px solid #c8cfda;flex:none}
  .nd-adm.on{border-color:#6d3fd4;background:#f7f3fe}
  .nd-adm.on .rd{border-color:#6d3fd4;background:radial-gradient(circle,#6d3fd4 45%,transparent 50%)}
/* ---------- Dock (macOS-style) ---------- */
  .dock{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:64;display:flex;gap:11px;align-items:flex-end;padding:10px 15px;background:rgba(255,255,255,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(21,36,59,.13);border-radius:20px;box-shadow:0 12px 34px rgba(21,36,59,.24)}
  .dock-item{position:relative;border:none;background:none;padding:0;cursor:pointer}
  /* Κουμπί "+" που ξεχωρίζει */
  .dock-item.plus .dock-ic{width:52px;height:52px;border-radius:15px;color:#fff;
    background:linear-gradient(135deg,#ff9d5c,#e8622d 55%,#c2410c);
    box-shadow:0 5px 16px rgba(232,98,45,.5),inset 0 1.5px 0 rgba(255,255,255,.45)}
  .dock-item.plus:hover .dock-ic{transform:scale(1.12) translateY(-6px)}
  /* Συννεφάκι γρήγορης δημιουργίας */
  .qa-pop{position:absolute;bottom:66px;left:50%;transform:translateX(-50%) translateY(16px) scale(.65);
    transform-origin:50% 100%;opacity:0;pointer-events:none;z-index:80;
    transition:transform .3s cubic-bezier(.22,1.3,.32,1),opacity .22s ease}
  .qa-pop.open{opacity:1;pointer-events:auto;transform:translateX(-50%)}
  .qa-pop::after{content:"";position:absolute;top:calc(100% - 9px);left:50%;
    transform:translateX(-50%) rotate(45deg);width:16px;height:16px;
    background:rgba(255,255,255,.92);border-right:1px solid rgba(21,36,59,.14);border-bottom:1px solid rgba(21,36,59,.14)}
  .qa-card{background:rgba(255,255,255,.92);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
    border:1px solid rgba(21,36,59,.14);border-radius:18px;box-shadow:0 16px 42px rgba(21,36,59,.3);padding:12px}
  .qa-grid{display:grid;grid-template-columns:repeat(2,96px);gap:10px}
  .qa-grid.c3{grid-template-columns:repeat(3,96px)} /* + «Project» για όσους δημιουργούν έργα */
  .qa-t{border:1px solid rgba(21,36,59,.08);background:rgba(255,255,255,.65);border-radius:14px;
    padding:12px 6px 10px;display:flex;flex-direction:column;align-items:center;gap:7px;
    font-size:11.5px;font-weight:700;color:var(--text);cursor:pointer;transition:.15s;font-family:inherit}
  .qa-t:hover{transform:translateY(-3px);background:#fff;box-shadow:0 7px 18px rgba(21,36,59,.16)}
  .qa-i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
  .dock-item.plus .qa-pop.open~.dock-tip,.dock-item.plus:hover .qa-pop.open+.dock-tip{opacity:0!important}
  .dock-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;box-shadow:0 4px 10px rgba(21,36,59,.22),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .18s ease}
  .dock-item:hover .dock-ic{transform:scale(1.1) translateY(-5px)}
  .dock-item:active .dock-ic{transform:scale(1.02) translateY(-1px)}
  .dock-tip{position:absolute;bottom:60px;left:50%;transform:translateX(-50%) translateY(5px);background:var(--navy);color:#fff;font-size:11px;font-weight:600;padding:5px 11px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:.16s ease}
  .dock-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--navy)}
  .dock-item:hover .dock-tip{opacity:1;transform:translateX(-50%) translateY(0)}
  .page-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;flex-wrap:wrap}
  .page-hero{display:flex;align-items:center;gap:13px;flex-wrap:wrap;border-radius:16px;padding:17px 22px;color:#fff;margin-bottom:16px;box-shadow:0 8px 24px rgba(21,36,59,.22)}
  .page-hero h1{font-size:19px;color:#fff}
  .page-hero p{font-size:12px;color:rgba(255,255,255,.78);margin-top:3px}
  .ph-ic{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
  .page-hero .hactions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
  .page-head h1{font-size:20px}
  .page-head p{color:var(--muted);font-size:13px;margin-top:3px}
  .btn{border:none;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600}
  .btn-primary{background:var(--accent);color:#fff}
  .btn-primary:hover{background:#d1531f}
  .btn-ghost{background:#fff;border:1px solid var(--border);color:var(--text)}
  .btn-ghost:hover{background:var(--bg)}
  .btn-sm{padding:6px 11px;font-size:12px}

  /* ---------- Cards / stats ---------- */
  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:18px}
  .stat{background:var(--card);border:1px solid var(--border);border-left:4px solid transparent;border-radius:var(--radius);padding:13px 15px;box-shadow:var(--shadow);display:flex;gap:11px;align-items:center;cursor:pointer;transition:.15s}
  .stat:has(.ico[style*="--accent-soft"]){border-left-color:var(--accent);background:linear-gradient(135deg,#fff 45%,#fdeee6)}
  .stat:has(.ico[style*="--green-soft"]){border-left-color:var(--green);background:linear-gradient(135deg,#fff 45%,#e2f5ea)}
  .stat:has(.ico[style*="#fdeaea"]){border-left-color:var(--red);background:linear-gradient(135deg,#fff 45%,#fdeaea)}
  .stat:has(.ico[style*="--blue-soft"]){border-left-color:var(--blue);background:linear-gradient(135deg,#fff 45%,#e7effc)}
  .stat:has(.ico[style*="--amber-soft"]){border-left-color:var(--amber);background:linear-gradient(135deg,#fff 45%,#fdf3df)}
  .stat:hover{border-color:var(--accent);transform:translateY(-2px)}
  .stat .hint{margin-left:auto;color:var(--muted);font-size:13px;opacity:.5}
  .stat .ico{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:18px;flex:none}
  .stat .lbl{font-size:11px;color:var(--muted)}
  .stat .val{font-size:21px;font-weight:800;line-height:1.15}
  .card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
  /* Χρωματική ταυτότητα ανά τύπο κάρτας */
  .card.t-orange{border-left:4px solid var(--accent)}
  .card.t-orange>.card-h{background:linear-gradient(90deg,#fdeee6,#fff 75%);color:#a34412}
  .card.t-red{border-left:4px solid var(--red)}
  .card.t-red>.card-h{background:linear-gradient(90deg,#fdeaea,#fff 75%);color:#b4322e}
  .card.t-amber{border-left:4px solid var(--amber)}
  .card.t-amber>.card-h{background:linear-gradient(90deg,#fdf3df,#fff 75%);color:#8a6408}
  .card.t-blue{border-left:4px solid var(--blue)}
  .card.t-blue>.card-h{background:linear-gradient(90deg,#e7effc,#fff 75%);color:#2b4d86}
  .card.t-green{border-left:4px solid var(--green)}
  .card.t-green>.card-h{background:linear-gradient(90deg,#e2f5ea,#fff 75%);color:#177a46}
  .card.t-purple{border-left:4px solid #6d3fd4}
  .card.t-purple>.card-h{background:linear-gradient(90deg,#f0e9fd,#fff 75%);color:#5b2fc4}
  .card-h{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;font-weight:700;font-size:13.5px}
  .card-h .cnt{font-size:11px;font-weight:600;color:var(--muted);background:var(--bg);border-radius:8px;padding:2px 8px}
  .grid2{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;align-items:start;margin-bottom:16px}
  @media (max-width:1100px){ .grid2{grid-template-columns:1fr} }
  .stack{display:flex;flex-direction:column;gap:16px}

  .dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}
  .dept-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);cursor:pointer;transition:.15s}
  .dept-card:hover{border-color:var(--accent);transform:translateY(-2px)}
  .dept-card h3{font-size:13.5px;margin-bottom:2px}
  .dept-card .meta{font-size:11px;color:var(--muted);margin-bottom:9px}
  .mini-bar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden}
  .mini-bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
  .dept-card .foot{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:7px}
  .dept-card .warn{color:var(--red);font-weight:700}

  /* ---------- Donut / graphics ---------- */
  .donut-wrap{display:flex;align-items:center;gap:18px;padding:16px}
  .legend{display:flex;flex-direction:column;gap:8px;font-size:12.5px}
  .legend .li{display:flex;align-items:center;gap:8px}
  .legend .sw{width:11px;height:11px;border-radius:3px;flex:none}
  .legend b{margin-left:auto;padding-left:14px}

  /* ---------- Task list ---------- */
  .task-row{display:flex;align-items:center;gap:13px;padding:11px 16px;border-bottom:1px solid var(--border);cursor:pointer}
  .task-row:last-child{border-bottom:none}
  .task-row:hover{background:#fafbfd}
  .prio{width:4px;height:36px;border-radius:2px;flex:none}
  .prio.high{background:var(--red)} .prio.med{background:var(--amber)} .prio.low{background:var(--green)}
  .task-row .tt{font-weight:600;font-size:13.5px}
  .task-row .ts{font-size:11.5px;color:var(--muted);margin-top:2px}
  /* Task που προέρχεται από έργο: διακριτικό chip με το όνομα του έργου */
  .task-row.from-prj{border-left:2px solid var(--prj-soft)}
  .tr-prj{display:inline-flex;align-items:center;gap:3px;margin-left:7px;vertical-align:1px;
    font-size:10px;font-weight:700;color:var(--prj-d);background:var(--prj-soft);
    border-radius:6px;padding:1px 6px;max-width:210px;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap}
  /* Κεφαλίδα ομάδας έργου μέσα στη λίστα tasks */
  .tg-hd{display:flex;align-items:center;gap:7px;padding:9px 16px 7px;cursor:pointer;
    color:var(--prj-d);font-size:11.5px;font-weight:800;background:linear-gradient(90deg,var(--prj-soft),transparent 78%)}
  .tg-hd:hover{filter:brightness(.97)}
  .tg-hd .tg-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tg-hd .tg-n{background:#fff;border-radius:7px;padding:0 6px;font-size:10px;color:var(--prj-d);flex:none}
  .tg-hd .tg-bar{margin-left:auto;width:70px;height:5px;border-radius:3px;background:#fff;overflow:hidden;flex:none}
  .tg-hd .tg-bar i{display:block;height:100%;background:var(--prj);border-radius:3px}
  .tg-hd .tg-pct{font-size:10px;flex:none;min-width:28px;text-align:right}
  .tg-hd.loose{color:var(--muted);background:none;border-top:1px solid var(--border);margin-top:6px;cursor:default}
  .tg-hd.loose .tg-n{background:var(--bg);color:var(--muted)}
  .task-main{flex:1;min-width:0}
  .deadline{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:8px;background:var(--bg);color:var(--muted);white-space:nowrap}
  .deadline.overdue{background:#fdeaea;color:var(--red)}
  .deadline.soon{background:var(--amber-soft);color:#a06e07}
  .prog-wrap{width:100px;flex:none;text-align:right}
  .prog-wrap .pct{font-size:11px;font-weight:700;color:var(--muted)}
  .chip{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:8px;white-space:nowrap}
  .chip.done{background:var(--green-soft);color:var(--green)}
  .chip.run{background:var(--blue-soft);color:var(--blue)}
  .chip.open{background:var(--bg);color:var(--muted)}
  .empty{padding:26px;text-align:center;color:var(--muted);font-size:12.5px}

  
  /* ---- Ζωντανή αναζήτηση στη «Λίστα παρακολούθησης» ----
     ΙΔΙΑ γραμμή με τις καρτέλες: καρτέλες αριστερά, αναζήτηση στη δεξιά γωνία. */
  .wl-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px 4px}
  .wl-bar .tabs{flex:none;margin:0}
  .wl-find{display:flex;align-items:center;gap:8px;margin-left:auto;flex:0 1 300px;min-width:190px;
    padding:7px 11px;border:2px solid #f3c5ac;border-radius:12px;background:#fff;
    box-shadow:0 2px 10px rgba(232,98,45,.16),inset 0 1px 0 #fff;
    transition:border-color .16s,box-shadow .16s,transform .16s}
  .wl-find:hover{border-color:#eda87f;box-shadow:0 4px 14px rgba(232,98,45,.22)}
  .wl-find:focus-within{border-color:var(--accent);transform:translateY(-1px);
    box-shadow:0 6px 18px rgba(232,98,45,.3),0 0 0 3px rgba(232,98,45,.16)}
  .wl-find>svg{color:var(--accent);flex:none}
  .wl-find input{flex:1;min-width:0;border:none;background:none;outline:none;
    font:inherit;font-size:13px;font-weight:600;color:var(--text)}
  .wl-find input::placeholder{color:#c08a6c;font-weight:500}
  .wl-cnt{font-size:10.5px;font-weight:800;color:#b34a17;flex:none;white-space:nowrap}
  .wl-x{border:none;background:#f7ded1;color:#b34a17;flex:none;cursor:pointer;
    width:20px;height:20px;border-radius:50%;display:grid;place-items:center;padding:0;
    transition:background .15s,color .15s}
  .wl-x:hover{background:var(--accent);color:#fff}

  /* Το task βρέθηκε από συνομιλία: μικρή προεπισκόπηση του μηνύματος */
  .wl-hit{display:flex;align-items:center;gap:9px;cursor:pointer;
    padding:7px 16px 9px 33px;margin-top:-4px;font-size:11.5px;color:var(--muted);
    background:linear-gradient(90deg,#f6f9ff,transparent 85%);border-bottom:1px solid var(--border)}
  .wl-hit:hover{background:linear-gradient(90deg,#eef4ff,transparent 85%)}
  .wl-hit-ic{flex:none;color:var(--prj);display:flex}
  .wl-hit-tx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5}
  .wl-hit-tx b{color:var(--text);font-weight:700}
  .wl-hit-go{flex:none;color:var(--muted);opacity:.6;display:flex}
  .wl-hit mark{background:#ffe9a8;color:#6b4b00;border-radius:3px;padding:0 2px;font-weight:700}

  /* ---------- ΚΑΡΤΕΣ TASK (σελίδα «Tasks» διευθυντή) ----------
     Ίδια γεωμετρία με τις κάρτες project (.prj-card στο 32), με τα χρώματα του task.
     Η λωρίδα αριστερά είναι η προτεραιότητα. */
  .tk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:6px}
  .tk-grid>.lz-host{display:contents}
  .tk-grid .lz-sent{grid-column:1/-1;height:1px}
  .tk-card{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--border);
    border-radius:var(--radius);padding:14px 15px;cursor:pointer;
    transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
  .tk-card:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(232,98,45,.16);border-color:#f0c4ac;border-left-color:#e8622d}
  .tk-card.p-high{border-left-color:#d43a1e}
  .tk-card.p-med{border-left-color:#e09c1a}
  .tk-card.p-low{border-left-color:#1e9e5a}
  .tk-top{display:flex;align-items:center;gap:9px;margin-bottom:4px}
  .tk-ic{width:30px;height:30px;border-radius:9px;flex:none;display:grid;place-items:center;color:#fff;
    background:linear-gradient(135deg,#832f0d,#e8622d)}
  /* ΟΧΙ άλλο χρώμα για το σύνθετο: το task είναι πορτοκαλί παντού (dock, hero,
     popup). Ένα τσεκ = απλό · δύο τσεκ (το εικονίδιο του μενού) = σύνθετο. */
  .tk-ic.cx{background:linear-gradient(135deg,#8f3a12,#f0762f)}
  .tk-tt{font-weight:700;font-size:14.5px;line-height:1.25;flex:1;min-width:0;color:var(--text)}
  .tk-sub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin:2px 0 11px}
  .tk-sub .tk-who{display:inline-flex;align-items:center;gap:4px;color:var(--text);font-weight:600}
  .tk-bar{display:flex;align-items:center;gap:9px;margin-bottom:10px}
  .tk-bar b{font-size:12.5px;color:#832f0d;min-width:38px;text-align:right}
  .tk-bar .mini-bar i{background:linear-gradient(90deg,#832f0d,#e8622d)}
  .tk-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}
  /* Ενότητες της σελίδας «Tasks»: η σχέση μου με την εργασία δίνει το χρώμα —
     πορτοκαλί = δική μου δουλειά, τιρκουάζ = ανάθεση (ίδιος κώδικας με τα Projects),
     γκρι = ό,τι τρέχει στο τμήμα χωρίς να με αφορά άμεσα. */
  .tk-sec{display:flex;align-items:center;gap:7px;margin:22px 2px 10px;padding:2px 0 2px 10px;
    border-left:3px solid var(--border);color:var(--muted)}
  .tk-sec:first-of-type{margin-top:6px}
  .tk-sec .cnt{background:var(--bg);border-radius:7px;padding:1px 8px;font-size:11px;font-weight:800}
  .tk-sec.s-mine{border-left-color:#e8622d;color:#832f0d}
  .tk-sec.s-mine .cnt{background:#fdeadf;color:#832f0d}
  .tk-sec.s-given{border-left-color:#14b8a6;color:#0f766e}
  .tk-sec.s-given .cnt{background:#d9f5f1;color:#0f766e}
  .tk-sec.s-dept{border-left-color:#94a3b8}
  .tk-from{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}
/* ---------- Notes / reminders ---------- */
  .item-row{display:flex;gap:10px;padding:10px 16px;border-bottom:1px solid #f2f4f8;align-items:flex-start}
  .item-row:last-child{border-bottom:none}
  .item-row .ic{width:30px;height:30px;border-radius:9px;flex:none;display:grid;place-items:center;font-size:14px}
  .ic.note{background:var(--blue-soft)} .ic.rem{background:var(--amber-soft)} .ic.task{background:var(--accent-soft)}
  .item-row .it{font-size:12.5px;line-height:1.45}
  .item-row .id2{font-size:10.5px;color:var(--muted);margin-top:2px}
  .item-row .tm{margin-left:auto;font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap}

  /* ---------- Calendar ---------- */
  .cal-toolbar{display:flex;align-items:center;gap:9px;margin-bottom:14px;flex-wrap:wrap}
  .cal-toolbar h2{font-size:16px;min-width:210px;text-transform:capitalize}
  .seg{display:flex;background:#fff;border:1px solid var(--border);border-radius:9px;overflow:hidden}
  .seg button{border:none;background:none;padding:7px 13px;font-size:12px;font-weight:600;color:var(--muted)}
  .seg button.active{background:var(--navy);color:#fff}
  .cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--border);border-top:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}
  .cal-dow{padding:8px;font-size:11px;font-weight:700;text-align:center;color:var(--muted);background:#fafbfd;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
  .cal-cell{min-height:96px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:5px;cursor:pointer;background:#fff}
  .cal-cell:hover{background:#fafbfd}
  .cal-cell.dim{background:#f7f8fb;color:#aab3c2}
  .cal-cell.today .cal-num{background:var(--accent);color:#fff}
  .cal-num{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;margin-bottom:3px}
  .cal-chip{display:block;width:100%;text-align:left;border:none;font-size:10px;font-weight:600;padding:2px 5px;border-radius:5px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
  .cal-chip.task{background:var(--accent-soft);color:#b34a17}
  .cal-chip.note{background:var(--blue-soft);color:#2b4d86}
  .cal-chip.rem{background:var(--amber-soft);color:#8a6408}
  .cal-more{font-size:10px;color:var(--muted);padding-left:4px}
  .cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
  .cal-wcol{background:#fff;border:1px solid var(--border);border-radius:10px;min-height:230px;padding:9px;box-shadow:var(--shadow)}
  .cal-wcol.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
  .cal-wcol h4{font-size:11px;color:var(--muted);margin-bottom:7px}
  .cal-wcol h4 b{display:block;font-size:15px;color:var(--text)}
  .cal-year{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:13px}
  .cal-ycard{background:#fff;border:1px solid var(--border);border-radius:10px;padding:13px;cursor:pointer;box-shadow:var(--shadow)}
  .cal-ycard:hover{border-color:var(--accent)}
  .cal-ycard h4{font-size:13px;margin-bottom:8px;text-transform:capitalize}
  .cal-ycard .yline{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:2px 0}

  /* ---------- Popup ημέρας (calDayPopup) ----------
     Κλικ σε μέρα από Μήνα/Εβδομάδα ανοίγει ΕΔΩ, χωρίς αλλαγή προβολής.
     Το σώμα είναι το ίδιο HTML με την προβολή «Ημέρα» (calDayBodyHTML). */
  .cal-daypop .modal-b{padding:16px}
  .cal-daypop .card{margin-bottom:0}
  /* ΠΑΝΤΑ μονόστηλο: το .grid2 είναι 1.35fr/1fr για ΣΕΛΙΔΑ ~1200px. Μέσα σε
     modal 720px οι τίτλοι των task έσπαγαν σε 3 γραμμές ενώ η δεξιά στήλη
     έμενε μισοάδεια. Το media query του .grid2 μετράει viewport, όχι modal. */
  .cal-daypop .grid2{grid-template-columns:1fr;margin-bottom:0;gap:12px}

  /* Το dock ζει κάτω-κέντρο (bottom:14px, ~76px ύψος) και το popup είναι
     κεντραρισμένο: με max-height:90vh η κάτω ακμή έπεφτε ΠΑΝΩ στο dock και
     έκρυβε τα κουμπιά. Σε κινητό δεν ισχύει — εκεί το dock είναι κρυμμένο. */
  @media (min-width:901px){ .modal.cal-daypop{max-height:calc(100vh - 200px)} }

  /* Κινητό: τα δύο κουμπιά δεν χωρούν δίπλα-δίπλα → στοίβα, πρωτεύον πάνω. */
  @media (max-width:600px){
    .cal-daypop .modal-f{flex-direction:column-reverse;gap:8px}
    .cal-daypop .modal-f .btn{width:100%;justify-content:center}
  }

  /* ---------- Tabs (Αναφορές κ.ά.) ---------- */
  .tabs{display:flex;gap:7px;margin-bottom:14px;flex-wrap:wrap;align-items:center}
  .tabs .tab{border:1px solid var(--border);background:#fff;border-radius:9px;padding:7px 14px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer}
  .tabs .tab:hover{border-color:var(--accent)}
  .tabs .tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}
  .tabs .tab .tcnt{font-size:10px;background:var(--bg);border-radius:8px;padding:1px 6px;margin-left:5px;color:var(--muted)}
  .tabs .tab.active .tcnt{background:rgba(255,255,255,.2);color:#fff}
  .sd-tabs{display:flex;gap:3px;padding:7px 9px;background:#fafbfd;border-bottom:1px solid var(--border);flex-wrap:wrap}
  .sd-tabs button{border:1px solid transparent;background:none;border-radius:7px;padding:4px 8px;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer}
  .sd-tabs button:hover{background:var(--bg)}
  .sd-tabs button.active{background:var(--accent-soft);color:var(--accent)}
  .sd-tabs button .c{opacity:.5;font-weight:400}
  .sd-tabs button .c.has{opacity:1;font-weight:800;font-size:10.5px;color:var(--blue);background:var(--blue-soft);
    border-radius:6px;padding:1px 5px;margin-left:2px;letter-spacing:.2px}
  .sd-tabs button.active .c.has{background:#fff;box-shadow:inset 0 0 0 1px rgba(46,111,216,.28)}
  .s-res .sic2{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:14px;flex:none}

  /* ---------- Chat panel ---------- */
  /* πλάτος 510px (ίδιο με `.cs-panel.cs-over` στο 35q)· `min()` ώστε σε στενό desktop παράθυρο να μη
     σκεπάζει όλη την οθόνη — σε ≤900px το 36-mobile το κάνει ούτως ή άλλως 100% */
  #chatPanel{position:fixed;top:70px;right:0;bottom:0;width:min(510px,92vw);background:#fff;border-left:1px solid var(--border);border-top:1px solid var(--border);border-top-left-radius:16px;overflow:hidden;box-shadow:-8px 0 28px rgba(21,36,59,.14);z-index:70;display:flex;flex-direction:column;transform:translateX(100%);transition:.22s}
  body.has-preview #chatPanel{top:104px}
  #chatPanel.open{transform:none}
  .chat-head{padding:13px 15px;border-bottom:none;display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px;background:linear-gradient(120deg,#1e3a8a,#3b82f6);color:#fff}
  .chat-head button{border:none;background:none;font-size:16px;color:#fff}
  .chat-head button:last-child{margin-left:auto}
  .chat-head .avatar{background:rgba(255,255,255,.22)}
  .chat-head [style*="--muted"]{color:rgba(255,255,255,.82)!important}
  .chat-body{flex:1;overflow-y:auto}
  .chat-priv{font-size:10.5px;color:var(--muted);background:#fafbfd;padding:7px 14px;border-bottom:1px solid var(--border)}
  .chat-group-h{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;background:#fafbfd;padding:9px 14px;font-size:12px;font-weight:700;color:var(--text);border-bottom:1px solid var(--border)}
  .chat-group-h .arr{transition:.15s;color:var(--muted);font-size:10px}
  .chat-group-h.open .arr{transform:rotate(90deg)}
  .chat-group-h .gb{margin-left:auto;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}
  .contact{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;border-bottom:1px solid #f2f4f8}
  .contact:hover{background:var(--bg)}
  .contact .cn{font-size:12.5px;font-weight:600}
  .contact .cr{font-size:10.5px;color:var(--muted)}
  .contact .ub{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}
  .cv-item{display:flex;align-items:center;gap:11px;padding:10px 12px;margin:3px 8px;border-radius:12px;cursor:pointer;transition:.12s}
  .cv-item:hover{background:#f4f7fb}
  .cv-item .avatar{width:42px;height:42px;font-size:14px}
  /* Αδιάβαστα — έντονα ευδιάκριτα */
  .cv-item.un{background:#e6f0ff}
  .cv-item.un:hover{background:#dbe9ff}
  .cv-item.un .cv-top b{font-weight:800;color:#0f2c66}
  .cv-item.un .cv-prev{color:#33415c;font-weight:600}
  .cv-item.un .cv-time{color:#2563eb;font-weight:800}
  .cv-item .ub{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#2563eb;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 6px rgba(37,99,235,.4);flex:none}
  .cv-main{flex:1;min-width:0}
  .cv-top{display:flex;align-items:baseline;gap:8px}
  .cv-top b{font-size:13.5px;font-weight:600;color:#1c2536;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cv-time{margin-left:auto;font-size:10px;color:#9aa2b1;white-space:nowrap;flex:none}
  .cv-prev{font-size:12px;color:#8a94a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
  .chat-search{padding:10px 12px 4px;border-bottom:none}
  .chat-search input{width:100%;border:1px solid transparent;border-radius:20px;padding:10px 14px;outline:none;font-size:12.5px;background:#f1f3f8}
  .chat-search input:focus{border-color:#3b82f6;background:#fff}
  .dot{width:8px;height:8px;border-radius:50%;flex:none}
  .dot.on{background:var(--green)} .dot.off{background:#c8cfda} .dot.away{background:#f97316}
  .cv-avw{position:relative;flex:none}
  .cv-avw .pres{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-sizing:border-box}
  .cv-item.un .cv-avw .pres{border-color:#e6f0ff}
  .cv-avw .pres.on{background:var(--green)} .cv-avw .pres.off{background:#c8cfda} .cv-avw .pres.away{background:#f97316}
  .conv{display:flex;flex-direction:column;height:100%;min-height:0}
  .conv-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:#fff}
  .msg{max-width:82%;padding:9px 12px;border-radius:16px;font-size:12.5px;line-height:1.45;position:relative}
  /* ---------- Αντιδράσεις 👍/❤️ (διακριτικές: εμφανίζονται στο hover εισερχόμενου) ---------- */
  .msg.has-rx{margin-bottom:9px}
  .rx-slot:empty{display:none}
  .rx-slot{position:absolute;bottom:-10px;display:flex;gap:3px;z-index:1}
  .msg.in .rx-slot{left:10px} .msg.out .rx-slot{right:10px}
  .rx-b{display:inline-flex;align-items:center;gap:2px;height:18px;padding:0 5px;border-radius:9px;background:#fff;
        box-shadow:0 1px 3px rgba(15,23,42,.18);font-size:11px;line-height:1;color:#475569;cursor:default;animation:none}
  .rx-b i{font-style:normal;font-size:10px;font-weight:700}
  .rx-b.mine{box-shadow:0 0 0 1.5px #bfdbfe,0 1px 3px rgba(15,23,42,.18)}
  .rx-pick{position:absolute;top:-13px;right:-10px;display:flex;gap:1px;padding:2px;border-radius:14px;background:#fff;
           box-shadow:0 2px 8px rgba(15,23,42,.16);opacity:0;pointer-events:none;transform:scale(.85);
           transition:opacity .12s ease,transform .12s ease;z-index:2}
  .rx-pick button{width:24px;height:22px;border:none;background:none;border-radius:11px;font-size:13px;line-height:1;
                  cursor:pointer;display:grid;place-items:center;padding:0;transition:transform .1s ease,background .1s ease}
  .rx-pick button:hover{background:#f1f5f9;transform:scale(1.18)}
  .rx-pick button.on{background:#e0ecff}
  @media (hover:hover){ .msg.in:hover .rx-pick{opacity:1;pointer-events:auto;transform:none} }
  .msg.in.rx-open .rx-pick{opacity:1;pointer-events:auto;transform:none}
  .msg .mt{font-size:10px;opacity:.6;margin-top:3px}
  .msg .mrow{display:flex;align-items:center;gap:4px;margin-top:3px}
  .msg.out .mrow{justify-content:flex-end}
  .msg .mrow .mt{margin-top:0}
  .tick{display:inline-flex;align-items:center;opacity:.5}
  .tick svg{width:13px;height:13px}
  .tick.read{opacity:1;background:#15803d;color:#fff;width:17px;height:17px;border-radius:50%;justify-content:center;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
  .tick.read svg{width:11px;height:11px;stroke-width:3.5}
  .msg.in{background:#eef0f4;color:#1c2536;align-self:flex-start;border-bottom-left-radius:5px}
  .msg.out{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;align-self:flex-end;border-bottom-right-radius:5px}
  .conv-input{display:flex;align-items:center;gap:8px;padding:10px;border-top:1px solid #eef1f5}
  .conv-input input{flex:1;border:1px solid transparent;border-radius:20px;padding:10px 14px;outline:none;background:#f1f3f8;font-size:12.5px}
  .conv-input input:focus{border-color:#3b82f6;background:#fff}
  .conv-input .btn-primary{width:38px;height:38px;flex:none;padding:0;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;display:grid;place-items:center;box-shadow:0 2px 8px rgba(37,99,235,.4)}
  .cv-att{width:36px;height:36px;flex:none;border:none;background:transparent;border-radius:50%;display:grid;place-items:center;color:#8a94a8;cursor:pointer}
  .cv-att:hover{color:#3b82f6;background:#eef2fb}
  .msg-img{height:180px;width:auto;min-width:120px;max-width:100%;object-fit:contain;background:rgba(148,163,184,.18);border-radius:9px;display:block;cursor:zoom-in} /* παλιά μηνύματα: σταθερό ύψος, ολόκληρη η φωτογραφία */
  .msg-img.sz{height:auto;min-width:0;object-fit:cover} /* με διαστάσεις (docs/sql/82): το πλαίσιο έχει από την αρχή το σχήμα της */
  .msg-file{display:flex;align-items:center;gap:8px;color:inherit;min-width:0;cursor:pointer}
  .msg-file:hover .mf-n{text-decoration:underline}
  .mf-i{min-width:0;display:flex;flex-direction:column}
  .mf-n{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
  .mf-s{font-size:10px;opacity:.7}
  .msg .msg-img+div,.msg .msg-file+div{margin-top:5px}
  /* ---------- Ομαδικές συνομιλίες ---------- */
  .gc-av{background:linear-gradient(135deg,#312e81,#6366f1);color:#fff;display:grid;place-items:center;flex:none}
  .gm-s{font-size:10px;font-weight:700;color:var(--accent);margin-bottom:2px}
  .msg.in .gm-s{color:var(--accent)}
  .gc-newrow{padding:10px 10px 0}
  .gc-newbtn{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;border:1.5px dashed var(--border);background:#fff;border-radius:10px;padding:8px;font-size:12px;font-weight:700;color:var(--accent);cursor:pointer}
  .gc-newbtn:hover{border-color:var(--accent);background:var(--bg)}
  .gc-form{padding:12px;display:flex;flex-direction:column;gap:9px;border-bottom:1px solid var(--border)}
  .gc-form input{width:100%;border:1.5px solid var(--border);border-radius:10px;padding:9px 12px;outline:none;font-size:12.5px;background:#fff}
  .gc-form input:focus{border-color:var(--accent)}
  .gc-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:18px}
  .gc-none{font-size:10.5px;color:var(--muted)}
  .gc-chip{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}
  .gc-chip button{border:none;background:none;color:var(--muted);cursor:pointer;display:flex;padding:0}
  .gc-chip button:hover{color:var(--red)}
  .contact .ck{margin-left:auto;width:17px;height:17px;border-radius:50%;border:1.5px solid var(--border);display:grid;place-items:center;color:#fff;flex:none}
  .contact .ck.on{background:var(--accent);border-color:var(--accent)}
  .gc-foot{padding:11px;border-top:1px solid var(--border)}
  /* ---------- Quick Look (macOS-style) ---------- */
  .ql-ov{position:fixed;inset:0;background:rgba(13,18,28,.72);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);z-index:210;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:26px;animation:qlIn .16s ease}
  @keyframes qlIn{from{opacity:0}to{opacity:1}}
  .ql-bar{display:flex;align-items:center;gap:10px;background:rgba(30,37,52,.94);color:#fff;border-radius:12px;padding:8px 8px 8px 14px;width:min(860px,92vw);box-shadow:0 10px 34px rgba(0,0,0,.35)}
  .ql-name{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .ql-size{font-size:10.5px;opacity:.6;white-space:nowrap;flex:none}
  .ql-btn{display:flex;align-items:center;gap:6px;border:none;background:rgba(255,255,255,.13);color:#fff;border-radius:8px;padding:6px 10px;font-size:11.5px;font-weight:600;cursor:pointer;text-decoration:none;flex:none}
  .ql-btn:hover{background:rgba(255,255,255,.24)}
  .ql-body{max-width:92vw;flex:0 1 auto;min-height:0;display:grid;place-items:center;animation:qlPop .18s ease}
  @keyframes qlPop{from{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}
  .ql-media{max-width:92vw;max-height:72vh;border-radius:12px;object-fit:contain;background:#10141c;box-shadow:0 22px 70px rgba(0,0,0,.5)}
  .ql-frame{width:min(860px,92vw);height:72vh;border:none;border-radius:12px;background:#fff;box-shadow:0 22px 70px rgba(0,0,0,.5)}
  .ql-doc{background:#fff;border-radius:14px;padding:36px 46px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text);box-shadow:0 22px 70px rgba(0,0,0,.5);max-width:min(420px,88vw);text-align:center}
  .ql-doc b{font-size:13.5px;word-break:break-all}
  .ql-doc span{font-size:11px;color:var(--muted)}
  .ql-hint{margin-top:4px}

  /* ---------- Notifications ---------- */
  #notifDrop{position:fixed;top:64px;right:96px;width:340px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 34px rgba(21,36,59,.18);z-index:80;display:none;overflow:hidden}
  #notifDrop.open{display:block}
  .notif-h{padding:12px 15px;border-bottom:1px solid var(--border);font-weight:700;display:flex;align-items:center}
  .notif-h button{margin-left:auto;border:none;background:none;color:var(--blue);font-size:11.5px;font-weight:600}
  .notif-list{max-height:340px;overflow-y:auto}
  .notif{display:flex;gap:10px;padding:11px 15px;border-bottom:1px solid #f2f4f8;cursor:pointer}
  .notif:hover{background:var(--bg)}
  .notif.unread{background:#e7f0ff;border-left:3px solid #2e6fd8;padding-left:12px}
  .notif.unread:hover{background:#d9e7ff}
  .notif.unread .nt{font-weight:700;color:#12294a}
  .notif.unread::after{content:"";width:9px;height:9px;border-radius:50%;background:#2e6fd8;flex:none;align-self:center;margin-left:auto}
  /* Εικονίδια ειδοποιήσεων = η ΧΡΩΜΑΤΙΚΗ ΤΑΥΤΟΤΗΤΑ του module (δες PROJECT-MAP).
     Πριν: «ann» και «meet» δεν είχαν ΚΑΝΕΝΑΝ κανόνα (άχρωμο τετράγωνο) και μόνο
     το «need» όριζε χρώμα εικονιδίου — τα υπόλοιπα κληρονομούσαν σκούρο κείμενο.
     Τώρα κάθε τύπος: απαλό φόντο + εικονίδιο στο χρώμα του module. */
  .notif .ic{width:32px;height:32px;border-radius:9px;flex:none;display:grid;place-items:center}
  .notif .ic svg{width:16px;height:16px}
  .notif .ic.task  {background:var(--accent-soft);color:#c2410c}   /* task πορτοκαλί */
  .notif .ic.rem   {background:var(--amber-soft); color:#8a5f06}   /* to-do amber */
  .notif .ic.report{background:var(--green-soft); color:#12603a}   /* αναφορές πράσινο */
  .notif .ic.chat  {background:var(--blue-soft);  color:#1e3a8a}   /* chat μπλε */
  .notif .ic.note  {background:var(--blue-soft);  color:#1d4ed8}   /* σημειώσεις μπλε */
  .notif .ic.need  {background:#d6f5f1;           color:#0b6f66}   /* ανάγκες teal */
  .notif .ic.ann   {background:#e8eafe;           color:#4338ca}   /* ανακοινώσεις indigo */
  .notif .ic.meet  {background:#f1e9fd;           color:#6d28d9}   /* συσκέψεις βιολετί */
  .notif .ic.doc   {background:#fdf0dc;           color:#a85706}   /* έγγραφα χρυσό */
  .notif .ic.bug   {background:#fdf4ff;           color:#a21caf}   /* αναφορές fuchsia */
  .notif .nt{font-size:12.5px;line-height:1.4}
  .notif .nd{font-size:10.5px;color:var(--muted);margin-top:2px}

  /* ---------- Modal ---------- */
  .overlay{position:fixed;inset:0;background:rgba(15,23,40,.5);z-index:100;display:grid;place-items:center;padding:20px}
  .modal{background:#fff;border-radius:14px;width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.3);transition:width .22s ease,max-height .22s ease}
  .modal-h{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:12px}
  .modal-h h2{font-size:16px;line-height:1.3}
  .modal-h .sub{font-size:12px;color:var(--muted);margin-top:3px}
  .modal-h .x{margin-left:auto;border:none;background:none;font-size:18px;color:var(--muted);flex:none}
  /* Εικονίδιο κεφαλίδας popup — ΚΛΑΣΗ, ποτέ inline style: το inline νικά κάθε
     media query, οπότε δεν θα μπορούσε να συμπυκνωθεί σε κινητό (36-mobile). */
  .mh-ic{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
  .mh-ic.sm{width:40px;height:40px;border-radius:11px}
  .mh-ic.xs{width:38px;height:38px;border-radius:11px}
  .mh-ic.pw-ok{background:rgba(30,158,90,.22)}
  /* --- Αλλαγή κωδικού (καρτέλα → Επεξεργασία προφίλ) --- */
  .pf-pw{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);
    display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .pf-pw-t{flex:1;min-width:150px;font-size:12.5px}
  .pf-pw-t div{font-size:11px;color:var(--muted);margin-top:2px}
  .pw-list{margin:10px 0 0;padding-left:18px}
  .pw-list li{margin-bottom:6px}
  .pw-err{display:none;margin-top:10px;color:#c0392b;font-size:12px}
  .pf-depts{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
  /* Προστατευμένος λογαριασμός στη λίστα Ρυθμίσεων — ουδέτερη ένδειξη */
  .prot-chip{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;
    background:var(--bg);border:1px solid var(--border);color:var(--muted);flex:none}
  .modal-b{padding:18px 20px;overflow-y:auto}
  .info-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:16px}
  .info-cell{background:var(--bg);border-radius:9px;padding:9px 12px;min-width:0}
  /* Ένα άτομο της ανάθεσης: avatar + όνομα + ποσοστό σε μία γραμμή στο desktop.
     ΚΛΑΣΗ, όχι inline style — σε κινητό πρέπει να μπορεί να τυλιχτεί. */
  .ig-p{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;max-width:100%}
  .info-cell .k{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
  .info-cell .v{font-size:13px;font-weight:600;margin-top:2px}
  .desc-box{font-size:13px;line-height:1.55;color:#39445a;background:var(--bg);border-radius:9px;padding:12px;margin-bottom:6px}
  .sec-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:16px 0 8px}
  .prog-ctrl{display:flex;align-items:center;gap:12px}
  .prog-ctrl input[type=range]{flex:1;accent-color:var(--accent)}
  .prog-ctrl .big{font-size:18px;font-weight:800;width:52px;text-align:right}
  .task-chat{border:1px solid var(--border);border-radius:10px;overflow:hidden}
  .task-chat .tc-msgs{max-height:210px;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#f8f9fc}
  .priv-box{background:var(--blue-soft);border-radius:10px;padding:14px;font-size:12.5px;color:#2b4d86;line-height:1.5}
  .frm label{display:block;font-size:12px;font-weight:700;margin:13px 0 5px}
  .frm label .req{color:var(--red)}
  .frm input,.frm select,.frm textarea{width:100%;border:1px solid var(--border);border-radius:9px;padding:9px 11px;outline:none;background:#fff}
  .frm input:focus,.frm select:focus,.frm textarea:focus{border-color:var(--accent)}
  .frm .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .modal-f{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:9px}
  .err{color:var(--red);font-size:11.5px;margin-top:5px;display:none}
  .type-seg{display:flex;gap:8px;margin-top:4px}
  .type-seg button{flex:1;border:1.5px solid var(--border);background:#fff;border-radius:10px;padding:10px 6px;font-size:12px;font-weight:600;color:var(--muted)}
  .type-seg button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
  .type-seg button:disabled{opacity:.4;cursor:not-allowed}

    .as-box{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:8px;background:#fff}
  .as-chip{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);border:1px solid var(--border);border-radius:20px;padding:3px 6px 3px 4px;font-size:12px;font-weight:600}
  .as-chip i{font-style:normal;color:var(--muted);font-size:10px;font-weight:400}
  .as-chip button{border:none;background:none;cursor:pointer;color:var(--muted);display:grid;place-items:center;padding:2px}
  .as-chip button:hover{color:var(--red)}
  .as-add{border:1.5px dashed var(--border);background:#fff;border-radius:20px;padding:5px 12px;font-size:11.5px;font-weight:700;color:var(--accent);cursor:pointer}
  .as-add:hover{border-color:var(--accent);background:var(--accent-soft)}
  .as-menu{border:1px solid var(--border);border-radius:10px;margin-top:6px;max-height:200px;overflow-y:auto;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.08)}
  .sp-dept{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:7px;background:#1c2e4a;border-bottom:1px solid rgba(255,255,255,.08);padding:9px 16px;font-size:12px;font-weight:800;color:#fff;letter-spacing:.2px}
  .sp-dept svg{color:#8fb2e6}
  /* Κεφαλίδα στο ΧΡΩΜΑ του τμήματος (--dc από το dtColor· module 14 → popup «Ομάδα»).
     Ίδια απόχρωση με τις κάρτες της Γενικής Εποπτείας, ώστε το τμήμα να αναγνωρίζεται με τη ματιά. */
  .sp-dept.sp-c{background:var(--dc,#1c2e4a);
    background-image:linear-gradient(120deg,rgba(255,255,255,.14),rgba(0,0,0,.12))}
  .sp-dept.sp-c svg{color:rgba(255,255,255,.9)}
  .sp-dept.sp-c .cnt{background:rgba(255,255,255,.22)}
  .sp-dept .cnt{margin-left:auto;background:rgba(255,255,255,.16);color:#fff;border-radius:8px;padding:1px 8px;font-weight:700}
  .prow-dir{background:#eef4ff;border-left:3px solid #2e6fd8}
  .prow-dir:hover{background:#e2edff}
  .dir-tag{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:#1e4fa0;background:#dbe8ff;border-radius:6px;padding:1px 7px;margin-left:6px;vertical-align:middle}
  .dir-tag svg{width:10px;height:10px}
/* Υπόδειξη μήκους κωδικού (pwHintHTML, 02c): διακριτική, γκρι → πορτοκαλί όσο λείπουν → πράσινη με ✓ */
.pw-hint{display:flex;align-items:center;gap:5px;margin:5px 2px 0;font-size:11px;color:var(--muted);transition:color .15s}
.pw-hint svg{width:11px;height:11px;flex:none}
.pw-hint.short{color:#b45309}
.pw-hint.ok{color:var(--green)}
.pw-hint.ok span::after{content:" ✓";font-weight:700}
  /* Ενεργά links σε περιγραφές & συζητήσεις (linkify) */
  a.lk{color:var(--blue);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-word}
  a.lk:hover{opacity:.8}
  .msg a.lk{color:inherit}
  .msg.in a.lk{color:var(--blue)}                       /* εισερχόμενο: μπλε σαν link· στο δικό μου (μπλε) μένει λευκό */
/* ---------- Hero & modern dashboard ---------- */
  .hero{position:relative;border-radius:18px;padding:22px 26px 20px;color:#fff;background:linear-gradient(115deg,#141f35 0%,#1d3050 48%,#3d2b73 85%,#6d3fd4 125%);box-shadow:0 8px 28px rgba(21,36,59,.28);margin-bottom:18px;overflow:hidden}
  .hero::before{content:"";position:absolute;right:-70px;top:-90px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(232,98,45,.42),transparent 70%)}
  .hero::after{content:"";position:absolute;left:35%;bottom:-130px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(109,63,212,.5),transparent 70%)}
  .hero>*{position:relative;z-index:1}
  .hero .hrow{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
  .hero h1{font-size:22px;letter-spacing:.2px}
  .hero .hd{font-size:12.5px;opacity:.78;margin-top:5px;text-transform:capitalize}
  .hero .hactions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
  .hbtn{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff;border-radius:10px;padding:8px 14px;font-size:12.5px;font-weight:600}
  .hbtn:hover{background:rgba(255,255,255,.2)}
  .hbtn.hb-pri{background:var(--accent);border-color:var(--accent)}
  .hbtn.hb-pri:hover{background:#d1531f}
  .hkpis{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
  .hk{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.15);border-radius:13px;padding:10px 14px;min-width:126px}
  .hk.clk{cursor:pointer;transition:.15s}
  .hk.clk:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}
  .hki{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;flex:none}
  .hkv{font-size:19px;font-weight:800;line-height:1.1}
  .hkl{font-size:10.5px;opacity:.72}
  /* ΠΑΓΙΔΑ GRID: το `1fr` σημαίνει `minmax(auto,1fr)` — η στήλη ΔΕΝ κατεβαίνει
     ποτέ κάτω από το min-content του πλατύτερου παιδιού της. Μία κάρτα με
     φαρδιά κεφαλίδα (flex nowrap) κλείδωνε τη στήλη στα 455px σε οθόνη 390px
     και σκρόλαρε ΟΛΗ η σελίδα οριζόντια. ΚΑΝΟΝΑΣ: κάθε grid track εδώ μέσα
     γράφεται `minmax(0,1fr)`, ποτέ σκέτο `1fr`. */
  .dgrid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}
  .dgrid>.stack{min-width:0}
  /* Στοιχείο που πιάνει ΟΛΟ το πλάτος του dashboard (λωρίδα υποτμημάτων, ζευγάρι
     καρτών από κάτω). Μένει ΜΕΣΑ στο .dgrid ώστε να κρατά τα `.dgrid .card` στυλ. */
  .dgrid>.dg-wide{grid-column:1/-1;min-width:0}
  @media (max-width:1100px){.dgrid{grid-template-columns:minmax(0,1fr)}}
  @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  body.rt-quiet main *,body.rt-quiet aside *{animation-duration:0s!important;animation-delay:0s!important}
  .hero,.dgrid>.stack>*,main>.card,.dept-grid>*{animation:rise .3s ease both}
  .hbar{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid #f2f4f8;cursor:pointer}
  .hbar:hover{background:#fafbfd}
  .hbar:last-child{border-bottom:none}
  .hb-main{flex:1;min-width:0}
  .hb-top{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}
  .hb-top b{font-size:12.5px}
  .hb-top span{color:var(--muted);font-size:11px}
  /* Μέλος ομάδας χωρίς ενεργά tasks: φαίνεται, αλλά δεν τραβά το βλέμμα */
  .hbar.hb-idle{opacity:.62}
  .hbar.hb-idle .hb-top span{font-style:italic}
  .hb-note{padding:8px 16px 11px;font-size:11px;color:var(--muted);text-align:center}
  .ag-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #f2f4f8;cursor:pointer}
  .ag-row:hover{background:#fff7f5}
  .ag-row:last-child{border-bottom:none}
  .ag-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none}
  .ag-t{flex:1;min-width:0}
  .ag-t b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ag-t span{font-size:10.5px;color:var(--muted)}
  .ag-time{font-size:11px;font-weight:700;background:var(--bg);border-radius:8px;padding:3px 8px;color:var(--muted);white-space:nowrap}

  /* ---------- «Τι έχω να κάνω»: κεφαλίδα με εικονίδιο ημερομηνίας & πλοήγηση ----------
     Το εικονίδιο είναι λευκή «κάρτα» με κόκκινη ταινία μήνα (στιλ iOS/macOS) και
     λειτουργεί ΚΑΙ ως κουμπί επιστροφής στο σήμερα. Ο μήνας (όχι η ημέρα της
     εβδομάδας) στην ταινία: αλλάζει μόνο όταν περνάς όριο μήνα, που ο αριθμός
     από μόνος του δεν το δείχνει — την ημέρα τη λέει ο υπότιτλος. */
  .ag-head{gap:10px}
  .ag-cal{width:44px;height:44px;flex:none;padding:0;border:none;border-radius:11px;overflow:hidden;
    background:#fff;box-shadow:0 2px 7px rgba(21,36,59,.22);cursor:pointer;
    display:flex;flex-direction:column;font-family:inherit;transition:transform .12s ease}
  .ag-cal:hover{transform:translateY(-1px)}
  .ag-cal:active{transform:translateY(0)}
  .ag-cal .agc-m{display:block;background:linear-gradient(180deg,#e8483a,#d1372b);color:#fff;
    font-size:8.5px;font-weight:800;letter-spacing:.6px;line-height:14px}
  .ag-cal .agc-d{flex:1;display:grid;place-items:center;font-size:19px;font-weight:800;color:#1c2536;line-height:1}
  /* Τίτλος + σχετική ημέρα ΣΤΗΝ ΙΔΙΑ ΓΡΑΜΜΗ: «Τι έχω να κάνω [σήμερα]».
     Η ημερομηνία δεν επαναλαμβάνεται — τη λέει το εικονίδιο. */
  .ag-ttl{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px}
  .ag-ttl b{font-size:14px;white-space:nowrap;flex:none}
  .ag-when{font-size:11.5px;font-weight:700;background:rgba(255,255,255,.26);
    border-radius:999px;padding:2px 9px;white-space:nowrap;min-width:0;
    overflow:hidden;text-overflow:ellipsis}

  /* Κεφαλίδα κατηγορίας μέσα στην κάρτα (Projects / Tasks / Υπενθυμίσεις / Σημειώσεις).
     Οι κενές κατηγορίες δεν εμφανίζονται καθόλου. */
  .ag-grp{display:flex;align-items:center;gap:6px;padding:7px 16px;
    background:#f6f8fc;border-bottom:1px solid #eaeef5;
    font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#67788f}
  .ag-grp svg{flex:none}
  .ag-grp span{margin-left:auto;background:#e5eaf2;color:#4a5a72;
    border-radius:8px;padding:1px 7px;font-size:10px;letter-spacing:0}
  .ag-grp.ag-proj{color:#2f5fc0} .ag-grp.ag-task{color:#b34a17}
  .ag-grp.ag-rem{color:#8a6408}  .ag-grp.ag-note{color:#2b4d86}
  .ag-nav{display:flex;align-items:center;gap:4px;flex:none}
  .ag-nav button{border:none;background:rgba(255,255,255,.22);color:#fff;cursor:pointer;padding:0;
    width:26px;height:26px;border-radius:8px;font-size:17px;font-weight:700;line-height:1;
    display:grid;place-items:center;font-family:inherit}
  .ag-nav button:hover{background:rgba(255,255,255,.4)}
  .ag-nav .ag-now{width:auto;padding:0 9px;font-size:11px;font-weight:700}
  @media (max-width:600px){
    .ag-cal{width:40px;height:40px}
    .ag-cal .agc-d{font-size:17px}
    .ag-ttl b{font-size:13px}
    .ag-nav .ag-now{padding:0 7px;font-size:10px}
  }
  .ag-time.late{background:#fdeaea;color:var(--red)}
  .ag-chk{width:23px;height:23px;border:2px solid #c8cfda;border-radius:50%;display:grid;place-items:center;color:transparent;flex:none;cursor:pointer;transition:.15s;background:#fff}
  .ag-chk:hover{border-color:var(--green);color:var(--green);transform:scale(1.1)}
  .ag-chk.on{background:var(--green);border-color:var(--green);color:#fff}
  .item-row.edit{cursor:pointer}
  .item-row.edit:hover{background:#f6f9ff}
  .rowact{margin-left:auto;color:var(--muted);opacity:0;transition:.15s;flex:none;align-self:center}
  .item-row.edit:hover .rowact{opacity:.85}

  /* δύο κάρτες δίπλα-δίπλα (μισό πλάτος) μέσα σε στήλη dashboard */
  .row2c{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  @media (max-width:760px){.row2c{grid-template-columns:1fr}}
  /* ===== Κάρτες dashboard — έντονη κεφαλίδα + σειρές «chip» με κενό + μικρή σκιά (scope: .dgrid) ===== */
  .dgrid .card{box-shadow:0 2px 9px rgba(21,36,59,.11);border-left:0}
  .dgrid .card.t-orange{background:linear-gradient(180deg,#fff7f2,#fff)}
  .dgrid .card.t-red{background:linear-gradient(180deg,#fff6f5,#fff)}
  .dgrid .card.t-blue{background:linear-gradient(180deg,#f5f8fe,#fff)}
  .dgrid .card.t-purple{background:linear-gradient(180deg,#f8f5ff,#fff)}
  .dgrid .card.t-royal{background:linear-gradient(180deg,#f4f7fe,#fff)}
  /* κεφαλίδα: γεμάτο gradient στο χρώμα της κάρτας, λευκό κείμενο & εικονίδιο */
  .dgrid .card>.card-h{color:#fff;border-bottom:none;font-size:14px}
  /* εικονίδιο κεφαλίδας μέσα σε ημιδιαφανές λευκό chip */
  .dgrid .card>.card-h>svg{width:16px;height:16px;padding:7px;border-radius:9px;box-sizing:content-box;background:rgba(255,255,255,.22);flex:none}
  .dgrid .card.t-orange>.card-h{background:linear-gradient(90deg,#d97e5b,#e79067)}
  .dgrid .card.t-red>.card-h{background:linear-gradient(90deg,#d4746f,#e08b86)}
  .dgrid .card.t-blue>.card-h{background:linear-gradient(90deg,#5586cd,#75a1e0)}
  .dgrid .card.t-purple>.card-h{background:linear-gradient(90deg,#7c61c8,#977fd8)}
  .dgrid .card.t-royal>.card-h{background:linear-gradient(90deg,#4d6cb0,#6d92d5)}
  /* count pill / hint / ghost κουμπιά ευανάγνωστα πάνω στο gradient */
  .dgrid .card-h .cnt{background:rgba(255,255,255,.92);color:#1c2536;font-weight:800}
  .dgrid .card-h [style*="--muted"]{color:rgba(255,255,255,.85)!important}
  .dgrid .card-h .btn-ghost{color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4)}
  .dgrid .card-h .btn-ghost:hover{background:rgba(255,255,255,.28)}
  /* σειρές → λευκά chip με κενό μεταξύ τους */
  .dgrid .card .ag-row,.dgrid .card .item-row,.dgrid .card .hbar,.dgrid .card .task-row{
    background:#fff;margin:8px 10px;padding:10px 12px;border-radius:12px;border-bottom:none;
    box-shadow:0 1px 6px rgba(21,36,59,.07);transition:.15s}
  .dgrid .card .ag-row:hover,.dgrid .card .item-row.edit:hover,.dgrid .card .hbar:hover,.dgrid .card .task-row:hover{
    background:#fff;box-shadow:0 3px 12px rgba(21,36,59,.14);transform:translateY(-1px)}
  /* λίγο μεγαλύτερα γράμματα στις σειρές για ευκρίνεια */
  .dgrid .ag-t b,.dgrid .item-row .it,.dgrid .task-row .tt{font-size:13.5px}
  .dgrid .ag-t span,.dgrid .item-row .id2,.dgrid .task-row .ts{font-size:11.5px}
  .btn-danger{background:#fdeaea;color:var(--red);border:1px solid #f3c3c1}
  .btn-danger:hover{background:#fbd9d7}
  /* ---------- Badge προτεραιότητας ---------- */
  .prio-badge{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:8px;white-space:nowrap;vertical-align:middle}
  .prio-badge.high{background:#ffe6dd;color:#d43a1e}
  .prio-badge.high svg{animation:flick 
1s ease-in-out infinite alternate}
  @keyframes flick{from{transform:scale(1)}to{transform:scale(1.3)}}
  .prio-badge.med{background:var(--amber-soft);color:#8a6408}
  .prio-badge.low{background:var(--green-soft);color:var(--green)}
  /* ---------- Accordion tasks (popup υπαλλήλου) ---------- */
  .acc{border-bottom:1px solid var(--border);border-left:4px solid transparent;background:#fff;
    transition:background var(--tr-in,260ms) ease,box-shadow var(--tr-in,260ms) ease,
      border-left-color var(--tr-in,260ms) ease,opacity var(--tr-in,260ms) ease,
      filter var(--tr-in,260ms) ease}
  .acc:last-child{border-bottom:none}
  .acc:not(.open){opacity:.92}
  .acc-h{display:flex;align-items:center;gap:11px;padding:11px 16px;cursor:pointer}
  .acc:not(.open) .acc-h:hover{background:#fafbfd;opacity:1}
  .acc-h .chev{margin-left:2px;color:var(--muted);flex:none;
    transition:transform var(--tr-in,260ms) var(--tr-ein,cubic-bezier(.34,1.2,.4,1)),background .2s,color .2s;display:flex;width:22px;height:22px;border-radius:7px;background:var(--bg);align-items:center;justify-content:center}
  .acc.open{border-left-color:var(--accent);background:#fff7f2;box-shadow:0 2px 12px rgba(232,98,45,.12);opacity:1}
  .acc.open .acc-h{background:linear-gradient(90deg,#fdeee6,#fff7f2 70%)}
  .acc.open .acc-h .tt{color:#b34a17}
  .acc.open .acc-h .chev{transform:rotate(90deg);color:#fff;background:var(--accent)}
  /* ---- Ξεδίπλωμα ----
     grid 0fr→1fr: κινείται ΟΠΟΙΟΔΗΠΟΤΕ ύψος περιεχομένου, χωρίς μαγικά
     max-height που είτε κόβουν το περιεχόμενο είτε αργούν στην αρχή.
     Ίδιοι χρόνοι/καμπύλη με το πλαϊνό μενού (--tr-in/--tr-ein) ώστε όλη
     η εφαρμογή να κινείται το ίδιο — και να σέβεται τη ρύθμιση God Mode. */
  .acc-b{display:grid;grid-template-rows:0fr;opacity:0;
    transition:grid-template-rows var(--tr-in,260ms) var(--tr-ein,cubic-bezier(.4,0,.2,1)),
      opacity calc(var(--tr-in,260ms) * .65) ease}
  .acc.open .acc-b{grid-template-rows:1fr;opacity:1}
  .acc-bi{min-height:0;overflow:hidden;padding:12px 16px 16px;
    background:#fffdfb;border-top:1px dashed #f0cbb4}
  /* Το περιεχόμενο «ανεβαίνει» λίγο καθώς ξεδιπλώνεται — δίνει την αίσθηση
     ότι βγαίνει από μέσα, αντί να εμφανίζεται στο κενό. */
  .acc-bi>*{transform:translateY(-6px);opacity:.35;
    transition:transform var(--tr-in,260ms) var(--tr-ein,cubic-bezier(.4,0,.2,1)),
      opacity var(--tr-in,260ms) ease}
  .acc.open .acc-bi>*{transform:none;opacity:1}

  /* ---- Εστίαση: το ανοιχτό μπροστά, τα υπόλοιπα υποχωρούν ----
     ΟΧΙ blur στο κείμενο: σε μικρά μεγέθη διαβάζεται σαν σφάλμα render και
     κοστίζει σε GPU. Το ίδιο αποτέλεσμα το δίνουν διαφάνεια + ξεθώριασμα
     χρώματος, που παραμένουν ευανάγνωστα και επανέρχονται στο hover. */
  .acc-list.has-open .acc:not(.open){opacity:.42;filter:saturate(.3)}
  .acc-list.has-open .acc:not(.open):hover{opacity:.9;filter:none}
  .acc-list.has-open .tg-hd{opacity:.5;transition:opacity var(--tr-in,260ms) ease}
  .acc-list.has-open .tg-hd:hover{opacity:1}
  .acc-list.has-open .acc.open{box-shadow:0 6px 26px rgba(232,98,45,.22);
    border-left-width:5px;position:relative;z-index:1}

  
  /* Γέφυρα προς το πλήρες παράθυρο: μέσα στο ακορντεόν δεν υπάρχει πίνακας
     kanban (επίτηδες — θα το έπνιγε), οπότε λέμε πού είναι και δίνουμε κουμπί. */
  .acc-open{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;
    padding:9px 11px;border:1px solid #f0cbb4;border-radius:11px;background:#fff}
  .acc-open span{flex:1;min-width:170px;font-size:11.5px;color:var(--muted);
    display:flex;align-items:center;gap:6px;line-height:1.45}
  .acc-open .btn{flex:none}

  /* Σεβασμός στη ρύθμιση «χωρίς κίνηση» (God Mode) και στη συσκευή:
     το ακορντεόν ανοίγει ακαριαία, χωρίς να χάνεται τίποτα. */
  body.tr-off .acc,body.tr-off .acc-b,body.tr-off .acc-bi>*,
  body.tr-off .acc-h .chev,body.tr-off .acc-list.has-open .tg-hd{transition:none}
  @media (prefers-reduced-motion:reduce){
    .acc,.acc-b,.acc-bi>*,.acc-h .chev,.acc-list.has-open .tg-hd{transition:none!important}
  }
/* ---------- Tabs μέσα στο task modal ---------- */
  .tabbar{display:flex;gap:6px;border-bottom:2px solid var(--border);margin:16px 0 12px}
  .tbtn{border:none;background:none;padding:9px 14px;font-size:13px;font-weight:700;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-2px;display:flex;align-items:center;gap:6px;cursor:pointer}
  .tbtn:hover{color:var(--text)}
  .tbtn.active{color:var(--accent);border-bottom-color:var(--accent)}
  .dotN{width:9px;height:9px;border-radius:50%;background:var(--red);display:inline-block;box-shadow:0 0 0 3px #fdeaea}

  
  /* Αδιάβαστα μηνύματα συζήτησης task — tab (tc-cnt) και γραμμές/κάρτες λιστών (tc-unr) */
  .tc-cnt{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:10.5px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 0 0 3px #fdeaea}
  /* float δεξιά ΠΡΙΝ από το κείμενο: μένει πάντα στην 1η γραμμή του τίτλου, όσο στενή κι αν είναι η στήλη */
  .tc-unr{float:right;display:inline-flex;align-items:center;gap:3px;margin:1px 0 2px 8px;padding:1px 7px 1px 6px;border-radius:999px;background:var(--red);color:#fff;font-size:10.5px;font-weight:800;line-height:16px;white-space:nowrap}
  .tc-unr svg{width:10px;height:10px}
  /* Κάρτα σελίδας Tasks: ξεχωριστό στοιχείο δίπλα στην ετικέτα κατάστασης — δεν στενεύει τον τίτλο */
  .tk-top>.tc-unr{float:none;margin:0;flex:none}
  /* ---------- Kanban board (μέσα στο task) ----------
     Κεφαλίδα στήλης = συμπαγής χρωματιστή μπάρα που δηλώνει την ΚΑΤΑΣΤΑΣΗ.
     Το χρώμα ορίζεται από τη ΘΕΣΗ της στήλης (kbColTone στο 12-kanban), όχι
     από το όνομά της — οι στήλες μετονομάζονται/προστίθενται από τον χρήστη.
     Μεταβλητή --kbc ανά στήλη → όλα τα υπόλοιπα (μετρητής, hover, κάρτες)
     διαβάζουν από εκεί, άρα νέα κατάσταση = 1 γραμμή CSS. */
  .kb-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}
  .kb-top .id2{color:var(--muted);font-size:11.5px}
  .kb{display:flex;gap:10px;overflow-x:auto;padding:12px;background:#f3f5f9;border-radius:12px;align-items:flex-start}

  .kb-col{flex:0 0 178px;background:#e9edf3;border-radius:11px;display:flex;flex-direction:column;
    max-height:330px;overflow:hidden;transition:.15s;--kbc:#64748b;--kbc-d:#3f4a5c}
  .kb-todo{--kbc:#64748b;--kbc-d:#3f4a5c}
  .kb-prog{--kbc:#e09c1a;--kbc-d:#8a5f06}
  .kb-rev{--kbc:#6d3fd4;--kbc-d:#4b2a94}
  .kb-done{--kbc:#1e9e5a;--kbc-d:#12603a}
  .kb-col.done{background:#e2f3e9}

  /* Κεφαλίδα: γεμάτο χρώμα + λευκά γράμματα (μοτίβο καρτών dashboard) */
  .kb-head{background:var(--kbc);color:#fff;font-size:11px;font-weight:800;letter-spacing:.3px;
    padding:7px 9px;display:flex;align-items:center;gap:6px;flex:none;text-transform:uppercase;
    line-height:1.25;box-shadow:inset 0 -1px 0 rgba(0,0,0,.08)}
  .kb-head svg{flex:none;opacity:.95}
  .kb-cname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .kb-cn{flex:none;font-weight:800;background:rgba(255,255,255,.26);border-radius:7px;
    padding:1px 7px;font-size:10.5px;letter-spacing:0}
  .kb-colx{border:none;background:none;color:#fff;cursor:pointer;opacity:0;transition:.15s;
    display:flex;padding:2px 3px;border-radius:5px;margin-left:1px;flex:none}
  .kb-col:hover .kb-colx{opacity:.8}
  .kb-colx:hover{background:rgba(255,255,255,.25);opacity:1}

  .kb-body{padding:8px;display:flex;flex-direction:column;gap:7px;overflow-y:auto;min-height:0;flex:1}

  .kb-card{background:#fff;border-radius:9px;padding:9px 10px;box-shadow:0 1px 3px rgba(21,36,59,.12);
    cursor:pointer;transition:transform .15s,box-shadow .15s}
  .kb-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(21,36,59,.16)}
  .kb-card.done{outline:1.5px solid #bfe6cf}
  .kb-labels{display:flex;gap:3px;margin-bottom:6px}
  .kb-label{width:24px;height:5px;border-radius:3px;display:inline-block}
  .kb-label.big{width:34px;height:8px}
  .kb-title{font-size:12px;font-weight:600;line-height:1.35}
  .kb-ok{color:var(--green);vertical-align:-1px}
  /* Μπάρα προόδου checklist: η μόνη προσθήκη που δίνει νέα πληροφορία με μια ματιά */
  .kb-cbar{height:4px;background:#eef1f6;border-radius:3px;overflow:hidden;margin-top:8px}
  .kb-cbar i{display:block;height:100%;border-radius:3px;background:var(--kbc);transition:width .25s}
  .kb-meta{display:flex;align-items:center;margin-top:7px;min-height:16px}
  .kb-check{font-size:10px;font-weight:700;color:var(--muted);background:var(--bg);border-radius:6px;padding:1px 6px;display:inline-flex;align-items:center;gap:3px}
  .kb-check.full{background:var(--green-soft);color:var(--green)}
  /* Ανατεθειμένη κάρτα: ανήκει στην ομάδα — δεν σέρνεται, δείχνει ποιος & πόσο */
  /* ανατεθειμένη κάρτα = τιρκουάζ, ίδιο χρώμα με το παράθυρο που ανοίγει */
  .kb-card.kb-deleg{background:linear-gradient(180deg,#f2fbf9,#e6f6f3);outline:1.5px solid #a7ded5}
  .kb-card.kb-deleg.done{outline:1.5px solid #bfe6cf}
  .kb-who{display:flex;align-items:center}
  .kb-who .avatar{margin-right:-6px;box-shadow:0 0 0 2px #fff}
  .kb-who .avatar:last-child{margin-right:0}
  .kb-pct{margin-left:auto;font-size:10px;font-weight:800;color:var(--kbc-d);
    background:#fff;border-radius:6px;padding:1px 6px}
  .kb-pct.full{background:var(--green-soft);color:var(--green)}
  .kb-arrows{margin-left:auto;display:flex;gap:3px;opacity:0;transition:.15s}
  .kb-card:hover .kb-arrows{opacity:1}
  .kb-arrows button{border:none;background:var(--bg);border-radius:6px;width:20px;height:20px;font-size:13px;
    color:var(--kbc-d);cursor:pointer;line-height:1;font-weight:700}
  .kb-arrows button:hover{background:var(--kbc);color:#fff}
  .kb-add{border:1.5px dashed #c9d2e0;background:none;border-radius:8px;padding:6px;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;flex:none}
  .kb-add:hover{border-color:var(--kbc);color:var(--kbc-d);background:rgba(255,255,255,.55)}
  .kb-form{display:flex;gap:5px;flex:0 0 178px;align-items:center}
  .kb-form input{flex:1;border:1.5px solid var(--accent);border-radius:8px;padding:7px 9px;font-size:12px;outline:none;min-width:0}
/* ---------- Card modal (2ο επίπεδο) ---------- */
  .ce{cursor:text;border-radius:8px}
  .ce:hover{outline:1.5px dashed #c9d2e0;outline-offset:3px}
  .cd-in{width:100%;font-size:15px;font-weight:700;border:1.5px solid var(--accent);border-radius:8px;padding:7px 10px;outline:none;font-family:inherit}
  .cd-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;margin-bottom:10px}
  .cd-bar i{display:block;height:100%;border-radius:4px;transition:width .25s}
  .cd-check{display:flex;align-items:center;gap:9px;padding:6px 4px;border-radius:7px}
  .cd-check:hover{background:var(--bg)}
  .cd-check input{width:16px;height:16px;accent-color:var(--green);flex:none;cursor:pointer}
  .cd-check span{flex:1;font-size:13px}
  .cd-check span.done{text-decoration:line-through;color:var(--muted)}
  .cd-del{border:none;background:none;color:var(--muted);opacity:0;cursor:pointer;display:flex}
  .cd-check:hover .cd-del{opacity:.8}
  .cd-labels{display:flex;gap:8px}
  .cd-sw{width:38px;height:26px;border-radius:8px;border:2.5px solid transparent;cursor:pointer;display:grid;place-items:center;color:#fff;transition:.15s}
  .cd-sw:hover{transform:scale(1.08)}
  .cd-sw.on{border-color:var(--navy)}
  .kind-seg{display:flex;gap:10px;margin-top:6px}
  .kind-card{flex:1;border:2px dashed #c9d2e0;background:#fff;border-radius:12px;padding:12px 13px;cursor:pointer;text-align:left;transition:.15s;font-family:inherit}
  .kind-card b{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:4px;color:var(--text)}
  .kind-card span{font-size:11px;color:var(--muted);line-height:1.45;display:block}
  .kind-card:hover{border-color:var(--accent)}
  .kind-card.sel{border:2px solid var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px rgba(232,98,45,.16)}
  .kind-card.sel b{color:#b34a17}
  .simple-wrap{background:#f8faf9;border:1px solid var(--border);border-radius:12px;padding:18px;text-align:center}
  .btn-done{background:var(--green);color:#fff;border:none;border-radius:12px;padding:13px 30px;font-size:15px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 14px rgba(30,158,90,.35);transition:.15s}
  .btn-done:hover{background:#177a46;transform:translateY(-2px)}
  .done-banner{background:var(--green-soft);color:var(--green);border-radius:12px;padding:16px;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px}
  /* ---------- Attachments ---------- */
  /* .att-x: μικρό κουμπί ✕ — το χρησιμοποιούν κι άλλα modules (16, 26, 54) */
  .att-x{border:none;background:none;color:var(--muted);cursor:pointer;padding:0;display:flex;margin-left:auto}
  .att-x:hover{color:var(--red)}

/* ---------- Αρχεία task (module 74 · σχέδιο «Α») ---------- */
  .tf{display:flex;flex-direction:column;gap:10px;margin-top:4px;border-radius:14px;transition:box-shadow .15s}
  .tf-head{display:flex;align-items:center;gap:8px;color:var(--accent)}
  .tf-ttl{font-size:12px;font-weight:800;letter-spacing:.06em;color:#46546b;text-transform:uppercase}
  .tf-n{font-size:11.5px;font-weight:800;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:1px 8px}
  .tf-mob{display:none}

  .tf-zone{width:100%;display:flex;align-items:center;justify-content:center;gap:14px;padding:20px;border:2px dashed #f0b89c;background:#fff8f4;border-radius:14px;cursor:pointer;color:var(--text);font:inherit;text-align:left;transition:border-color .15s,background .15s}
  .tf-zone:hover,.tf-drag .tf-zone,.tf-drag .tf-slim{border-color:var(--accent);background:#fdeee6}
  .tf-zi{width:48px;height:48px;border-radius:14px;background:var(--accent);color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 6px 16px rgba(232,98,45,.35)}
  .tf-zt{display:flex;flex-direction:column;gap:2px;min-width:0}
  .tf-zt b{font-size:14px}
  .tf-zt b u{color:#c2410c}
  .tf-zt>span{font-size:12px;color:var(--muted)}
  .tf-slim{display:flex;align-items:center;gap:10px;border:2px dashed #f0b89c;background:#fff8f4;border-radius:12px;padding:7px 8px 7px 12px;color:var(--accent);transition:border-color .15s,background .15s}
  .tf-slim>svg{flex:none}
  .tf-slim>span{font-size:12.5px;color:#46546b;flex:1}
  .tf-pick{display:inline-flex;align-items:center;gap:6px;border:none;background:var(--accent);color:#fff;border-radius:9px;padding:7px 12px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;min-height:34px}
  .tf-pick:hover{filter:brightness(.95)}
  .tf-drag{box-shadow:0 0 0 3px rgba(232,98,45,.18)}

  .tf-ups:empty{display:none}
  .tf-ups{display:flex;flex-direction:column;gap:8px}
  .tf-list{display:flex;flex-direction:column;gap:8px}
  .tf-scroll{max-height:360px;overflow-y:auto;padding:8px 4px 8px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);overscroll-behavior:contain}
  .tf-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:#fff;min-width:0}
  .tf-row:hover{border-color:#d3dbe8}
  .tf-open{flex:1;min-width:0;display:flex;align-items:center;gap:11px;border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
  .tf-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .tf-tx b{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tf-tx>span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tf-open:hover b{color:var(--accent)}
  .tf-acts{display:flex;gap:6px;flex:none}
  .tf-ib{width:34px;height:34px;border:1px solid var(--border);background:#fff;border-radius:9px;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none;padding:0}
  .tf-ib:hover{color:var(--text);border-color:#c9d2e0}
  .tf-ib-del{color:#b3302c}
  .tf-ib-del:hover{color:#fff;background:#b3302c;border-color:#b3302c}

  .tf-bd{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:10.5px;font-weight:800;letter-spacing:.02em;flex:none;overflow:hidden}
  .tf-bd-img img{width:100%;height:100%;object-fit:cover;display:block}
  .tf-bd-img{background:var(--bg)}
  .tf-pdf{background:#fbe5e4;color:#b3302c}
  .tf-xls{background:#dff3e8;color:#17784a}
  .tf-doc{background:#e2ebfb;color:#2257b0}
  .tf-zip{background:#fdf3df;color:#8a5a00}
  .tf-v{background:#efe5fa;color:#6b35a6}
  .tf-i{background:#e7eef8;color:#44618a}
  .tf-x{background:#eef1f5;color:#56637a}

  .tf-up{border-color:#f6d5c4;background:#fffaf7}
  .tf-bar{display:block;height:6px;border-radius:99px;background:#f3e3da;overflow:hidden;margin-top:3px}
  .tf-bar i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .2s}

  .tf-row-del{border-color:#f1c3c1;background:#fdf3f2;flex-wrap:wrap}
  .tf-dq{flex:1 1 100%;display:flex;align-items:center;gap:8px;font-size:12.5px;color:#7a2320;min-width:0}
  .tf-dq b{overflow-wrap:anywhere}
  .tf-row-del .btn-ghost{margin-left:auto}
  .tf-danger{background:#b3302c;color:#fff;border:1px solid #b3302c}
  .tf-danger:hover{background:#962622}

  .tf-more{align-self:center;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:#fff;color:#3b475c;border-radius:999px;padding:7px 14px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;min-height:36px}
  .tf-more:hover{border-color:var(--accent);color:var(--accent)}
  .tf-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .tf-chips{display:flex;gap:6px;flex-wrap:wrap}
  .tf-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:#fff;color:#3b475c;border-radius:999px;padding:5px 11px;font:inherit;font-size:12px;font-weight:650;cursor:pointer;min-height:30px}
  .tf-chip span{opacity:.7}
  .tf-chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
  .tf-search{margin-left:auto;display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:9px;padding:0 9px;background:var(--bg);color:var(--muted);min-width:180px}
  .tf-search input{border:none;background:transparent;padding:7px 0;font:inherit;font-size:12.5px;outline:none;width:100%;color:var(--text)}
  .tf-search:focus-within{border-color:var(--accent);background:#fff}
  .tf-empty{padding:14px;text-align:center;font-size:12.5px;color:var(--muted)}

@media (max-width:600px){
  .tf-dsk{display:none}
  .tf-mob{display:inline}
  .tf-zone{flex-direction:column;gap:8px;padding:16px;text-align:center}
  .tf-zt{align-items:center}
  .tf-pick{min-height:40px}
  .tf-ib{width:40px;height:40px}
  .tf-ib-view{display:none}
  .tf-row{padding:8px}
  .tf-search{margin-left:0;flex:1 1 100%}
  .tf-search input{font-size:16px}
  .tf-scroll{max-height:55vh}
}
/* ---------- Επαφές ---------- */
  .ct-wrap{display:flex;min-height:0;flex:1}
  .ct-left{width:295px;flex:none;border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;background:#fafbfd}
  .ct-search{padding:10px 10px 8px}
  .ct-search input{width:100%;border:1.5px solid var(--border);border-radius:10px;padding:9px 12px;outline:none;font-size:13px;background:#fff}
  .ct-search input:focus{border-color:var(--accent)}
  .ct-cattabs{display:flex;gap:4px;padding:0 10px 8px}
  .ct-cattabs button{flex:1;border:1px solid var(--border);background:#fff;border-radius:8px;padding:5px 4px;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer}
  .ct-cattabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}
  .ct-tagbar{display:flex;gap:5px;flex-wrap:wrap;padding:0 10px 9px;border-bottom:1px solid var(--border)}
  .tagch{display:inline-flex;align-items:center;gap:4px;border:1.5px solid transparent;border-radius:8px;padding:2px 8px;font-size:10.5px;font-weight:700;color:#fff;cursor:pointer;opacity:.55;transition:.15s}
  .tagch.on,.tagch:hover{opacity:1}
  .tagch.on{border-color:var(--navy)}
  .tagch.add{background:#fff!important;color:var(--muted);border:1.5px dashed #c9d2e0;opacity:1}
  .tagch.add:hover{color:var(--accent);border-color:var(--accent)}
  .ct-list{flex:1;overflow-y:auto}
  .ct-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;border-bottom:1px solid #f0f2f7;border-left:3px solid transparent;background:#fff}
  .ct-item:hover{background:var(--bg)}
  .ct-item.sel{background:var(--accent-soft);border-left-color:var(--accent)}
  .ct-item .cn{font-size:12.5px;font-weight:700}
  .ct-item .cs{font-size:10.5px;color:var(--muted);margin-top:1px}
  .ct-dots{margin-left:auto;display:flex;gap:3px;flex:none}
  /* Βελάκι «άνοιγμα καρτέλας» — μόνο σε κινητό (δες 36-mobile) */
  .ct-go{display:none;color:#b6c0d0;flex:none;margin-left:6px}
  .ct-dot{width:8px;height:8px;border-radius:50%}
  .ct-av{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:800;flex:none}
  .ct-right{flex:1;overflow-y:auto;padding:18px 20px;min-width:0}
  .ct-kind{font-size:10px;font-weight:800;padding:3px 9px;border-radius:8px;text-transform:uppercase;letter-spacing:.5px}
  .ct-kind.business{background:var(--blue-soft);color:var(--blue)}
  .ct-kind.person{background:var(--green-soft);color:var(--green)}
  .ct-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
  /* ΚΛΑΣΕΙΣ, ΟΧΙ inline style: το inline νικά κάθε media query, οπότε τίποτα
     από αυτά δεν θα μπορούσε να αλλάξει σε κινητό (δες PROJECT-MAP «παγίδες»). */
  .ct-newbtn{margin-left:auto;flex:none}
  .ct-top{display:flex;align-items:flex-start;gap:13px}
  .ct-av-lg{width:52px;height:52px;font-size:17px}
  .ct-acts{display:flex;flex-direction:column;gap:6px;flex:none}
  /* Γρήγορες ενέργειες καρτέλας (κλήση/SMS/email/χάρτης) — βάση για ΟΛΕΣ τις
     οθόνες· σε ≤900px το 36-mobile τα κάνει πλέγμα με στοιβαγμένη ετικέτα. */
  .ct-qa{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 2px}
  .ct-qa-b{display:inline-flex;align-items:center;justify-content:center;gap:7px;
    padding:8px 14px;border-radius:11px;text-decoration:none;font-size:12px;font-weight:700;
    background:var(--bg);border:1px solid var(--border);color:#1c2e4a;cursor:pointer;transition:.15s}
  .ct-qa-b svg{width:16px;height:16px;flex:none}
  .ct-qa-b:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(20,35,60,.13)}
  .ct-qa-b:active{transform:none;opacity:.75}
  .ct-qa-b.call{background:#e8f7ee;border-color:#bfe6ce;color:#12724a}
  .ct-qa-b.msg{background:linear-gradient(135deg,#f2efff,#eaf9f0);border-color:#d9d3f6;color:#3b2f7a}
  .ct-qa-b.mail{background:#fff4e5;border-color:#f6ddb8;color:#a35a06}
  .ct-qa-b.map{background:#f0ecff;border-color:#d8cffb;color:#4c1d95}
  .pp-call{text-decoration:none;color:var(--blue);white-space:nowrap}

  /* Πλήθος αποδεκτών πάνω στο κουμπί — δηλώνει ότι θα ρωτήσει «ποιον;» */
  .ct-qa-b .ct-qa-n{font-style:normal;font-size:9.5px;font-weight:800;line-height:1;
    background:rgba(255,255,255,.8);border-radius:6px;padding:2px 5px;margin-left:1px}

  /* «Σε ποιον;» — λίστα αποδεκτών με ιδιότητα */
  .ct-pk{display:flex;flex-direction:column;gap:8px}
  .ct-pk-row{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1.5px solid var(--border);
    border-radius:12px;background:#fff;text-decoration:none;color:inherit;transition:.15s}
  a.ct-pk-row:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
  .ct-pk-av{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;
    background:var(--navy);color:#fff;font-size:12px;font-weight:800}
  .ct-pk-t{flex:1;min-width:0}
  .ct-pk-t b{display:block;font-size:13px;color:#16233a}
  .ct-pk-t span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ct-pk-go{color:#b6c0d0;flex:none;display:flex}
  .ct-pk-ch{display:flex;gap:6px;flex:none}
  .ct-pk-b{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    min-width:60px;padding:7px 8px 6px;border-radius:11px;flex:none;
    border:1.5px solid var(--border);background:#fff;transition:.15s;text-decoration:none}
  .ct-pk-b span{font-size:9.5px;font-weight:800;line-height:1;color:var(--muted);letter-spacing:.1px}
  .ct-pk-b:hover{transform:translateY(-1px)}
  .ct-pk-b.viber:hover{border-color:#7360F2;box-shadow:0 5px 12px rgba(115,96,242,.22)}
  .ct-pk-b.wa:hover{border-color:#25D366;box-shadow:0 5px 12px rgba(37,211,102,.22)}
  .ct-pk-b.sms:hover{border-color:#2e6fd8;box-shadow:0 5px 12px rgba(46,111,216,.22)}
  .ct-pk-b.viber:hover span{color:#7360F2}
  .ct-pk-b.wa:hover span{color:#1a9c4b}
  .ct-pk-b.sms:hover span{color:#2e6fd8}

  /* Επιλογή καναλιού μηνύματος (Viber / WhatsApp / SMS) — modalRoot2 */
  .ct-msg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .ct-msg-b{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;
    padding:16px 8px 13px;border-radius:14px;text-decoration:none;text-align:center;
    border:1.5px solid var(--border);background:#fff;transition:.16s}
  .ct-msg-b b{font-size:13px;color:#16233a}
  .ct-msg-b span{font-size:10.5px;color:var(--muted);line-height:1.35}
  .ct-msg-b:hover{transform:translateY(-2px)}
  .ct-msg-b.viber:hover{border-color:#7360F2;box-shadow:0 8px 18px rgba(115,96,242,.22)}
  .ct-msg-b.wa:hover{border-color:#25D366;box-shadow:0 8px 18px rgba(37,211,102,.22)}
  .ct-msg-b.sms:hover{border-color:#2e6fd8;box-shadow:0 8px 18px rgba(46,111,216,.22)}
  .ct-msg-b:active{transform:none;opacity:.8}
  .ct-msg-note{margin-top:13px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}

  /* Αντιγραφή πεδίου με ένα κλικ */
  .ct-fields .info-cell.copyable{cursor:pointer;transition:.14s}
  .ct-fields .info-cell.copyable:hover{background:var(--accent-soft)}
  .ct-fields .cp-ic{display:inline-flex;vertical-align:-2px;margin-left:6px;color:var(--muted);opacity:0;transition:.14s}
  .ct-fields .info-cell.copyable:hover .cp-ic{opacity:.85}
  .ct-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .ct-addp{width:100%}
  .ct-noterow{padding:0 0 10px;border:none;gap:7px;flex-wrap:wrap}
  .ct-noterow input{flex:2;min-width:180px}
  .ct-noterow select{flex:1;min-width:120px;border:1px solid var(--border);border-radius:9px;padding:8px}
  .ct-persons .pers{display:flex;align-items:center;gap:10px;background:var(--bg);border-radius:10px;padding:9px 12px;margin-bottom:7px}
  .ct-persons .pers b{font-size:12.5px}
  .ct-persons .pers .pt{font-size:10.5px;color:var(--muted)}
  .ct-persons .pers .pp{margin-left:auto;font-size:12px;font-weight:700;color:var(--blue)}
  /* timeline */
  .tl{position:relative;margin:8px 0 0 6px;padding-left:18px;border-left:2px solid var(--border)}
  .tl-item{position:relative;padding:0 0 14px}
  .tl-item::before{content:"";position:absolute;left:-24.5px;top:3px;width:11px;height:11px;border-radius:50%;background:var(--tlc,var(--accent));border:2.5px solid #fff;box-shadow:0 0 0 2px rgba(20,35,60,.08)}
  .tl-item .tld{font-size:10.5px;color:var(--muted);font-weight:700}
  .tl-item .tlw{font-size:12px;font-weight:700;color:var(--tlc,var(--blue));margin:1px 0;display:flex;align-items:center;gap:5px}
  .tl-item .tlw svg{flex:none}

  /* ---- Διαχωρισμός περιοχών στην καρτέλα ----
     Τα «στοιχεία επαφής» και το «timeline» είναι δύο διαφορετικά πράγματα:
     το πρώτο είναι σταθερά πεδία, το δεύτερο ροή γεγονότων. Χωρίς οπτικό
     όριο μπερδεύονται. Ετικέτα ενότητας + κλειστό πάνελ για το timeline. */
  .ct-lbl{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.7px;
    text-transform:uppercase;color:var(--muted);margin:16px 0 7px;padding-top:14px;border-top:1px solid var(--border)}
  .ct-lbl svg{opacity:.75}
  .ct-panel{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden;
    margin-top:18px;box-shadow:0 1px 3px rgba(20,35,60,.05)}
  .ct-panel-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:11px 14px;
    background:linear-gradient(135deg,#eef3fb,#e7eefa);border-bottom:1px solid #dbe4f2}
  .ct-panel-h h3{margin:0;font-size:13px;font-weight:800;color:#16233a;display:flex;align-items:center;gap:7px}
  .ct-panel-h h3 svg{color:var(--accent)}
  .ct-panel-h .cnt{font-size:10.5px;font-weight:800;background:#fff;color:var(--accent);
    border:1px solid #cfdef7;border-radius:7px;padding:1px 7px}
  .ct-panel-b{padding:13px 14px 4px;background:#fcfdff}

  /* Φίλτρο timeline ανά είδος επικοινωνίας */
  .ct-tlf{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 11px}
  .ct-tlf-b{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:#fff;font-family:inherit;
    border-radius:999px;padding:4px 11px;font-size:11.5px;font-weight:700;color:var(--muted);cursor:pointer;transition:.14s}
  .ct-tlf-b:hover{color:var(--accent);border-color:var(--accent)}
  .ct-tlf-b.on{background:var(--navy);border-color:var(--navy);color:#fff}
  .ct-tlf-b i{font-style:normal;font-size:10px;font-weight:800;background:var(--bg);color:var(--muted);border-radius:6px;padding:1px 5px}
  .ct-tlf-b.on i{background:rgba(255,255,255,.22);color:#fff}

  /* «Τελευταία επικοινωνία» — παράγωγο των καταγραφών */
  .ct-last{flex:none;margin-left:6px;font-size:9.5px;font-weight:800;padding:2px 6px;border-radius:7px;white-space:nowrap}
  .ct-last.ok{background:#e8f7ee;color:#12724a}
  .ct-last.warn{background:#fff4e5;color:#a35a06}
  .ct-last.old{background:#fdeceb;color:#b3261e}
  .ct-last.none{background:transparent;color:#c3ccd9;font-weight:700}
  .ct-last-inline{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--muted)}
  .ct-form .ct-hint{font-size:10.5px;color:var(--muted);margin-top:5px;line-height:1.45}
  .tl-item .tlt{font-size:12.5px;line-height:1.5;background:var(--bg);border-radius:9px;padding:8px 11px;margin-top:3px}
  .ct-form label{display:block;font-size:12px;font-weight:700;margin:11px 0 4px}
  .ct-form input,.ct-form textarea,.ct-form select{width:100%;border:1px solid var(--border);border-radius:9px;padding:8px 11px;outline:none;background:#fff}
  .ct-form input:focus,.ct-form textarea:focus{border-color:var(--accent)}
  .ct-prow{display:grid;grid-template-columns:1.05fr .85fr .8fr 1fr 26px;gap:6px;margin-bottom:7px;align-items:center}
  .ct-tagrow{display:flex;align-items:center;gap:7px;padding:0 10px 9px;border-bottom:1px solid var(--border)}
  .ct-tagrow select{flex:1;border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:11.5px;outline:none;background:#fff;min-width:0}
  .tagadd{width:28px;height:28px;flex:none;border-radius:8px;border:1.5px dashed #c9d2e0;background:#fff;color:var(--muted);cursor:pointer;display:grid;place-items:center}
  .tagadd:hover{color:var(--accent);border-color:var(--accent)}
  .ct-tagnew{display:flex;gap:5px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);background:#fff}
  .ct-tagnew input{flex:1;border:1.5px solid var(--accent);border-radius:8px;padding:5px 8px;font-size:11px;outline:none;min-width:0}
  .palette{display:flex;gap:6px}
  .palette button{width:24px;height:24px;border-radius:7px;border:2.5px solid transparent;cursor:pointer}
  .palette button.on{border-color:var(--navy)}
  .ov2{background:rgba(15,23,40,.55);animation:fadeIn .15s}
  @keyframes fadeIn{from{opacity:0}to{opacity:1}}

  /* ---------- Login ---------- */
  .login-ov{position:fixed;inset:0;z-index:400;background:linear-gradient(115deg,#141f35,#1d3050 55%,#3d2b73);display:grid;place-items:center;padding:20px}
  .login-card{background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.5);padding:30px 30px 22px;width:min(410px,94vw);text-align:center}
  .login-card h1{font-size:18px}
  .login-card p{font-size:12px;color:var(--muted);margin-top:4px}
  .login-card input{width:100%;border:1.5px solid var(--border);border-radius:10px;padding:11px 13px;margin-top:10px;outline:none;font-size:14px}
  .login-card input:focus{border-color:var(--accent)}
  .li-err{color:var(--red);font-size:12px;margin-top:10px;min-height:15px}
    /* Επιλογή desktop notifications στο login */
  .li-push{display:flex;gap:9px;align-items:flex-start;text-align:left;margin-top:12px;background:rgba(124,58,237,.06);
    border:1px solid rgba(124,58,237,.22);border-radius:10px;padding:10px 12px;font-size:11px;color:var(--muted);line-height:1.55;cursor:pointer}
  .li-push input{width:16px;height:16px;margin-top:1px;accent-color:#7c3aed;cursor:pointer;flex:none}
  .li-push b{color:var(--text);font-size:12px;display:inline-flex;align-items:center;gap:5px}
  .li-push-tag{background:linear-gradient(120deg,#6d28d9,#c026d3);color:#fff;font-size:9px;font-weight:800;
    text-transform:uppercase;letter-spacing:.4px;border-radius:999px;padding:1px 7px}
/* ---------- Notification banners (macOS-style) ---------- */
  /* Το bannerRoot ζει ΜΕΣΑ στο dock: η ειδοποίηση είναι προέκταση του σχήματός του */
  #bannerRoot{position:absolute;bottom:calc(100% - 2px);left:50%;width:0;height:0;pointer-events:none;z-index:3}
  .bn{pointer-events:auto;position:absolute;bottom:0;left:50%;width:384px;max-width:88vw;
    background:rgba(255,255,255,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(21,36,59,.13);border-radius:18px;box-shadow:0 12px 34px rgba(21,36,59,.22);
    padding:13px 15px;display:flex;gap:12px;align-items:flex-start;cursor:pointer;
    transform-origin:50% 100%;transform:translateX(-50%) scaleY(.08);opacity:0;
    transition:transform .48s cubic-bezier(.22,1.3,.32,1),opacity .32s ease,bottom .38s cubic-bezier(.3,1.2,.4,1)}
  .bn.in{transform:translateX(-50%) scaleY(1);opacity:1}
  /* το κάτω banner "φυτρώνει" από το dock: ίσιωμα βάσης, χωρίς κουτάκια */
  .bn:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-bottom-color:rgba(21,36,59,.05)}
  /* pop: "σκάει" σαν φούσκα */
  @keyframes bnPop{0%{transform:translateX(-50%) scale(1);opacity:1}45%{transform:translateX(-50%) scale(1.14);opacity:.85}100%{transform:translateX(-50%) scale(1.45);opacity:0;filter:blur(2px)}}
  .bn.pop{animation:bnPop .3s ease-out forwards}
  /* Το dock "ζωντανεύει" όταν έρχεται ειδοποίηση */
  @keyframes dockPulse{0%{transform:translateX(-50%) scale(1)}30%{transform:translateX(-50%) translateY(-8px) scale(1.035)}62%{transform:translateX(-50%) translateY(2px) scale(.99)}100%{transform:translateX(-50%) scale(1)}}
  .dock.alive{animation:dockPulse .72s cubic-bezier(.34,1.56,.64,1)}
  .dock.glow{box-shadow:0 12px 34px rgba(21,36,59,.24),0 0 34px var(--bn-glow,rgba(232,98,45,.4));border-top-color:transparent;transition:box-shadow .45s ease,border-color .3s ease}
  .bn-ic{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;color:#fff;flex:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
  .bn-t{min-width:0;cursor:pointer;flex:1}
  .bn-t b{font-size:13.5px;display:block;margin-bottom:2px}
  .bn-t span{font-size:12.5px;color:#414d66;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}
  .bn-time{font-size:9px;color:var(--muted);opacity:.7;flex:none;margin-top:2px}
  .bn-x{position:absolute;top:-7px;left:-7px;width:20px;height:20px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--muted);display:grid;place-items:center;cursor:pointer;opacity:0;transition:.15s;box-shadow:0 2px 7px rgba(0,0,0,.18);padding:0}
  .bn:hover .bn-x{opacity:1}
  .bn-x:hover{color:var(--red);transform:scale(1.1)}
  /* Διακριτικό bubble ΚΑΤΩ ΔΕΞΙΑ. Ήταν κεντραρισμένο στο `bottom:22px`, δηλαδή
     ακριβώς πάνω στο dock (`.dock` bottom:14px, κεντραρισμένο) — σκέπαζε αυτό
     που μόλις είχε συμβεί (π.χ. το εικονίδιο ελαχιστοποίησης που προσγειωνόταν).
     Μπαίνει έξω από τη διαδρομή του ματιού, με μικρότερα γράμματα και μια
     πράσινη κουκκίδα «έγινε». Το `toast()` γράφει με textContent — το ::before
     είναι ψευδοστοιχείο, δεν σβήνεται. */
  .toast{position:fixed;bottom:18px;right:18px;left:auto;
    transform:translateY(10px) scale(.97);transform-origin:100% 100%;
    display:flex;align-items:center;gap:8px;
    background:rgba(24,40,66,.93);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.11);color:#fff;
    padding:8px 13px 8px 11px;border-radius:11px;font-size:12px;font-weight:600;line-height:1.35;
    max-width:min(310px,calc(100vw - 36px));z-index:200;
    box-shadow:0 6px 20px rgba(21,36,59,.3);opacity:0;pointer-events:none;
    transition:opacity .2s ease,transform .3s cubic-bezier(.22,1,.36,1)}
  .toast::before{content:"";width:6px;height:6px;border-radius:50%;background:#4ade80;flex:none;
    box-shadow:0 0 0 3px rgba(74,222,128,.17)}
  .toast.show{opacity:1;transform:translateY(0) scale(1)}
  @media (max-width:900px){ .hdr-ctrl label{display:none} }
/* ---------- Ανακοινώσεις & Συσκέψεις ---------- */
  .ev-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:16px}
  .ev-card{position:relative;border-radius:14px;padding:14px 16px;color:#fff;display:flex;gap:12px;align-items:center;cursor:pointer;box-shadow:0 8px 22px rgba(49,46,129,.28);transition:transform .16s,box-shadow .16s;animation:evIn .35s ease}
  .ev-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(49,46,129,.36)}
  @keyframes evIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .ev-ic{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
  .ev-t{font-weight:800;font-size:13.5px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ev-s{font-size:11px;opacity:.85;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ev-chip{margin-left:auto;flex:none;font-size:10.5px;font-weight:800;padding:5px 11px;border-radius:20px;background:rgba(255,255,255,.22)}
  .ev-new{position:absolute;top:-7px;right:10px;background:#f59e0b;color:#fff;font-size:9px;font-weight:900;letter-spacing:.5px;padding:3px 9px;border-radius:10px;box-shadow:0 3px 8px rgba(0,0,0,.28);animation:evPulse 1.6s infinite}
  @keyframes evPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
  .am-dirs{max-height:210px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;margin-top:2px;background:#fff}
  .am-dir{display:flex;align-items:center;gap:9px;padding:7px 11px;cursor:pointer;border-bottom:1px solid var(--border);font-size:12.5px}
  .am-dir:last-child{border-bottom:none}
  .am-dir:hover{background:var(--accent-soft)}
  .am-dir .bx{width:17px;height:17px;border:1.6px solid var(--border);border-radius:5px;display:grid;place-items:center;color:#fff;flex:none;background:#fff}
  .am-dir.on .bx{background:#4f46e5;border-color:#4f46e5}
  .am-tool{display:flex;gap:4px;margin:2px 0 6px}
  .am-tool button{border:1px solid var(--border);background:#fff;border-radius:7px;min-width:30px;height:28px;font-size:12.5px;cursor:pointer;color:var(--ink)}
  .am-tool button:hover{background:var(--accent-soft)}
  .am-body{border:1px solid var(--border);border-radius:10px;min-height:110px;max-height:220px;overflow-y:auto;padding:10px 12px;font-size:13px;outline:none;background:#fff;line-height:1.55}
  .am-body:focus{border-color:#4f46e5}
  .am-html ul{margin:6px 0 6px 18px}
  .am-html p{margin:0 0 7px}
  .am-lic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none}
  .am-hic{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
  .st-chip{font-size:10px;font-weight:800;padding:3px 9px;border-radius:20px;flex:none;white-space:nowrap}
  .st-acc{background:#e7f6ec;color:#1e9e5a}
  .st-pen{background:#fdf3dc;color:#b47d0e}
  .st-dec{background:#fdeaea;color:#c0392b}
  .am-dirs.tall{max-height:320px}
  .am-q{width:100%;padding:7px 11px;border:1px solid var(--border);border-radius:9px;font-size:12.5px;margin-top:2px;background:#fff;color:var(--ink)}
  .am-q:focus{outline:none;border-color:#7c3aed}
  .am-grp{position:sticky;top:0;z-index:1;background:#f4f2fb;color:#5b21b6;font-size:10.5px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;padding:5px 11px;border-bottom:1px solid var(--border)}
  .notif .ic.ann{background:#e7e7fb;color:#4f46e5}
  .notif .ic.meet{background:#f0e7fb;color:#7c3aed}
/* =====================================================================
   ΧΡΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ — admin panel (μόνο Administration)
   Καθαρό, μοντέρνο, με radial gauges & διακριτικά "!" tooltips.
===================================================================== */
/* Generic presence badge πάνω σε avatar (ομάδα, λίστες προσωπικού κ.λπ.) */
.avwrap{position:relative;display:inline-flex;flex:none}
.avwrap .avdot{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;
  border:2px solid #fff;box-sizing:border-box;background:#c8cfda}
.avwrap .avdot.on{background:#16a34a}
.avwrap .avdot.away{background:#f97316}

/* Tabs ρυθμίσεων — segmented control (ξεκάθαρα εναλλάξιμα) */
.st-tabs{display:inline-flex;gap:5px;margin:4px 2px 18px;background:#e8edf4;border:1px solid #d5deea;
  border-radius:13px;padding:5px;box-shadow:inset 0 1px 2px rgba(15,23,42,.05)}
.st-tab{position:relative;display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;
  padding:10px 20px;font-size:13.5px;font-weight:800;color:#5b6b82;cursor:pointer;border-radius:9px;transition:.16s}
.st-tab svg{opacity:.7;transition:.16s}
.st-tab:hover{color:#1c2637;background:rgba(255,255,255,.65)}
.st-tab:hover svg{opacity:1}
.st-tab.on{color:#fff;background:linear-gradient(135deg,#3a475f,#1c2637);
  box-shadow:0 3px 8px rgba(28,38,55,.28),0 1px 0 rgba(255,255,255,.4) inset}
.st-tab.on svg{opacity:1}
/* ≤560px: λωρίδα με οριζόντια κύλιση. Το flex:1 άφηνε min-width:auto στα tabs, οπότε οι
   μεγάλες ελληνικές ετικέτες ξεχείλιζαν ΟΛΗ τη σελίδα Ρυθμίσεων (522px σε οθόνη 390). */
@media(max-width:560px){
  .st-tabs{display:flex;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;
    scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .st-tabs::-webkit-scrollbar{display:none}
  .st-tab{flex:0 0 auto;min-width:0;justify-content:center;padding:10px 12px;font-size:12.5px}
}
/* Κλειδωμένα πεδία (διευθυντής): τμήμα & θέση δεν αλλάζουν από εδώ */
.st-lock{font-size:11.5px;line-height:1.7;color:var(--muted);background:var(--bg);
  border:1px solid var(--border);border-radius:8px;padding:9px 11px}
.st-lock svg{vertical-align:-2px;margin-right:4px}
.st-lock b{color:var(--text)}

.dbu-wrap{margin-top:16px}
.dbu-card{border-left:4px solid #4d5d7d}
.dbu-card .card-h{display:flex;align-items:center;gap:8px}
.dbu-refresh{margin-left:auto;display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 12px;
  font-size:12px;font-weight:600;color:#334155;cursor:pointer;transition:.15s}
.dbu-refresh:hover{background:#f1f5f9;border-color:#cbd5e1}
.dbu-body{padding:16px}
.dbu-loading,.dbu-msg{padding:34px 16px;text-align:center;color:var(--muted);font-size:13px}
.dbu-stamp{font-size:11px;color:var(--muted);margin:2px 2px 14px}
.dbu-stamp b{color:#475569;font-weight:700}

/* Προειδοποίηση υπέρβασης */
.dbu-alert{display:flex;gap:10px;align-items:flex-start;background:#fef2f2;border:1px solid #fecaca;
  color:#b91c1c;border-radius:12px;padding:12px 14px;font-size:12.5px;line-height:1.55;margin-bottom:14px}
.dbu-alert.warn{background:#fffbeb;border-color:#fde68a;color:#b45309}

/* Grids */
.dbu-gauges{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.dbu-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
@media(max-width:820px){.dbu-gauges,.dbu-tiles{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.dbu-gauges,.dbu-tiles{grid-template-columns:1fr}}

/* Radial gauge card */
.dbu-g{position:relative;background:linear-gradient(180deg,#fff,#fbfcfe);border:1px solid var(--border);
  border-radius:16px;padding:18px 16px 16px;display:flex;flex-direction:column;align-items:center;text-align:center;
  box-shadow:0 1px 2px rgba(15,23,42,.04)}
.dbu-ring{--pct:0;--col:#3b82f6;width:118px;height:118px;border-radius:50%;
  background:conic-gradient(var(--col) calc(var(--pct)*1%),#eef2f7 0);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.dbu-ring::after{content:"";position:absolute;width:88px;height:88px;border-radius:50%;background:#fff;
  box-shadow:inset 0 0 0 1px #eef2f7}
.dbu-ring .dbu-pct{position:relative;z-index:1;font-size:22px;font-weight:800;color:#1e293b;line-height:1}
.dbu-ring .dbu-pct small{display:block;font-size:10px;font-weight:600;color:var(--muted);margin-top:2px}
.dbu-g-lbl{font-size:13px;font-weight:800;color:#1e293b;display:flex;align-items:center;gap:6px}
.dbu-g-sub{font-size:11.5px;color:var(--muted);margin-top:3px}

/* Stat tiles */
.dbu-tile{background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 16px;
  box-shadow:0 1px 2px rgba(15,23,42,.04)}
.dbu-tile .t-top{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#475569}
.dbu-tile .t-val{font-size:26px;font-weight:800;color:#1e293b;margin-top:8px;line-height:1}
.dbu-tile .t-note{font-size:11px;color:var(--muted);margin-top:5px}
.dbu-approx{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;
  color:#7c5b12;background:#fef3c7;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}

/* Link-out κάρτα (egress / χρεώσεις) */
.dbu-linkcard{background:linear-gradient(120deg,#f8fafc,#eef2f9);border:1px dashed #c7d2e0;border-radius:14px;
  padding:16px;margin-top:14px}
.dbu-linkcard h4{margin:0 0 4px;font-size:13.5px;font-weight:800;color:#1e293b;display:flex;align-items:center;gap:6px}
.dbu-linkcard p{margin:0 0 12px;font-size:12px;color:var(--muted);line-height:1.55}
.dbu-lbtns{display:flex;gap:10px;flex-wrap:wrap}
.dbu-lbtn{display:inline-flex;align-items:center;gap:7px;background:#1c2637;color:#fff;text-decoration:none;
  border-radius:9px;padding:9px 14px;font-size:12px;font-weight:700;transition:.15s}
.dbu-lbtn:hover{background:#2d3b52}
.dbu-lbtn.alt{background:#fff;color:#334155;border:1px solid var(--border)}
.dbu-lbtn.alt:hover{background:#f1f5f9}

/* Πίνακες */
.dbu-tables{margin-top:16px;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.dbu-tables summary{list-style:none;cursor:pointer;padding:12px 16px;font-size:13px;font-weight:800;color:#1e293b;
  display:flex;align-items:center;gap:8px;background:#fbfcfe}
.dbu-tables summary::-webkit-details-marker{display:none}
.dbu-tables summary .cnt{margin-left:auto;font-size:11px;color:var(--muted);font-weight:600}
.dbu-trow{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;
  padding:9px 16px;border-top:1px solid var(--border);font-size:12.5px}
.dbu-trow:nth-child(even){background:#fbfcfe}
.dbu-trow .nm{font-weight:600;color:#334155}
.dbu-trow .rw{color:var(--muted);font-variant-numeric:tabular-nums;min-width:74px;text-align:right}
.dbu-trow .sz{color:#475569;font-weight:700;font-variant-numeric:tabular-nums;min-width:64px;text-align:right}

/* ── Χρήση Εφαρμογής ── */
.au-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.au-range,.au-inner{display:inline-flex;gap:4px;background:#eef2f7;border:1px solid #d5deea;border-radius:11px;padding:4px}
.au-rbtn,.au-ibtn{border:none;background:transparent;padding:8px 15px;font-size:12.5px;font-weight:800;color:#5b6b82;cursor:pointer;border-radius:8px;transition:.15s}
.au-rbtn:hover,.au-ibtn:hover{background:#fff;color:#1c2637}
.au-rbtn.on{background:#1c2637;color:#fff;box-shadow:0 2px 6px rgba(28,38,55,.25)}
.au-ibtn.on{background:linear-gradient(135deg,#3a475f,#1c2637);color:#fff;box-shadow:0 2px 6px rgba(28,38,55,.25)}
.au-list{display:flex;flex-direction:column;gap:2px}
.au-row{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;cursor:pointer;transition:.12s}
.au-row:hover:not(.static){background:#f6f8fb}
.au-row.static{cursor:default}
.au-row.open{background:#f1f5f9}
.au-rank{width:22px;text-align:center;font-size:12.5px;font-weight:800;color:#94a3b8;flex:none}
.au-av{flex:none}
.au-main{flex:1;min-width:0}
.au-nm{font-size:13px;font-weight:700;color:#1e293b;margin-bottom:7px;display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.au-bar{height:9px;background:#eef2f7;border-radius:6px;overflow:hidden}
.au-bar>i{display:block;height:100%;border-radius:6px;transition:width .45s cubic-bezier(.4,0,.2,1)}
.au-metric{flex:none;text-align:right;min-width:80px}
.au-metric b{display:block;font-size:13.5px;font-weight:800;color:#1e293b;font-variant-numeric:tabular-nums}
.au-metric span{font-size:11px;color:var(--muted);font-weight:600}
.au-chev{flex:none;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #94a3b8;transition:.18s}
.au-row.open .au-chev{transform:rotate(180deg)}
.au-row.static .au-chev{display:none}
.au-drill{padding:2px 12px 14px 46px;display:flex;flex-direction:column;gap:8px;animation:auIn .18s ease}
@keyframes auIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.au-mrow{display:grid;grid-template-columns:140px 1fr auto;gap:10px;align-items:center;font-size:12px}
.au-mnm{color:#475569;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-mbar{height:7px;background:#e9eef5;border-radius:5px;overflow:hidden}
.au-mbar>i{display:block;height:100%;background:linear-gradient(90deg,#7c93b5,#4d5d7d);border-radius:5px}
.au-mval{color:#475569;font-weight:700;font-variant-numeric:tabular-nums;min-width:62px;text-align:right}
.au-empty{color:var(--muted);font-size:12px;padding:2px 0}
@media(max-width:560px){.au-mrow{grid-template-columns:96px 1fr auto}.au-metric{min-width:64px}.au-controls{gap:8px}}

/* "!" info button + tooltip */
.dbu-i{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;
  border:1.4px solid #94a3b8;color:#64748b;font-size:10px;font-weight:800;cursor:pointer;line-height:1;
  font-family:Georgia,serif;flex:none;transition:.15s;background:#fff}
.dbu-i:hover{border-color:#475569;color:#334155;background:#f1f5f9}
.dbu-tipwrap{position:relative;display:inline-flex}
.dbu-tip{position:absolute;z-index:40;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  width:230px;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:10px 12px;font-size:11.5px;
  font-weight:500;line-height:1.55;box-shadow:0 8px 24px rgba(15,23,42,.28);text-align:left;
  opacity:0;visibility:hidden;transition:.15s}
.dbu-tip::after{content:"";position:absolute;bottom:100%;left:50%;transform:translateX(-50%);
  border:6px solid transparent;border-bottom-color:#0f172a}
.dbu-tipwrap.open .dbu-tip{opacity:1;visibility:visible}
@media(max-width:560px){.dbu-tip{width:180px}}

/* ---------- God Mode ---------- */
.god-nav{color:#6d28d9;font-weight:700}
.god-nav .ico,.god-nav svg{color:#7c3aed}
.god-nav.active{background:linear-gradient(90deg,rgba(124,58,237,.16),rgba(192,38,211,.06));color:#6d28d9}
.gm-sec-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:14px 4px 6px}
.gm-sec-title .cnt{background:#ede9fe;color:#6d28d9;border-radius:9px;padding:1px 7px;font-size:10px;margin-left:4px}
.gm-note{background:rgba(124,58,237,.07);border:1px solid rgba(124,58,237,.2);border-radius:9px;padding:9px 12px;margin:10px 14px;font-size:11.5px;color:#4c1d95;line-height:1.5}
.gm-row .gm-pv{background:linear-gradient(120deg,#6d28d9,#c026d3)}
/* Preview bar (fixed, πάνω από όλα) */
.preview-bar{position:fixed;top:0;left:0;right:0;height:34px;z-index:220;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;
  background:linear-gradient(120deg,#4c1d95,#7c3aed 60%,#c026d3);color:#fff;font-size:12px;box-shadow:0 2px 10px rgba(76,29,149,.4)}
.preview-bar .pv-l{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;white-space:nowrap}
.preview-bar .pv-role{opacity:.85}
.preview-bar .pv-ro{display:inline-flex;align-items:center;gap:3px;background:rgba(255,255,255,.2);border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700}
.preview-bar .pv-exit{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;
  border-radius:8px;padding:4px 11px;font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.preview-bar .pv-exit:hover{background:rgba(255,255,255,.28)}
body.has-preview{padding-top:34px}
body.has-preview aside{top:34px;height:calc(100vh / var(--zf,1) - 34px)}

/* ---------- Push notifications toggle (popup προφίλ) ---------- */
.push-row{display:flex;align-items:center;gap:11px;margin-top:14px;padding:11px 13px;border:1px solid var(--border);
  border-radius:11px;background:rgba(124,58,237,.05)}
.push-row.push-denied{background:rgba(214,69,65,.06);border-color:rgba(214,69,65,.25)}
.push-ic{width:34px;height:34px;flex:none;border-radius:9px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,#6d28d9,#c026d3)}
.push-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.push-tx b{font-size:12.5px}
.push-tx span{font-size:11px;color:var(--muted);line-height:1.45}
.pswitch{flex:none;width:44px;height:25px;border-radius:999px;border:none;background:#c7ccd6;position:relative;cursor:pointer;transition:background .18s;padding:0}
.pswitch.on{background:linear-gradient(120deg,#6d28d9,#c026d3)}
.pswitch .pknob{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .18s}
.pswitch.on .pknob{left:22px}
.push-test-btn{align-self:flex-start;margin-top:5px;display:inline-flex;align-items:center;gap:4px;background:rgba(124,58,237,.1);
  border:1px solid rgba(124,58,237,.3);color:#6d28d9;border-radius:7px;padding:3px 9px;font-size:11px;font-weight:700;cursor:pointer}
.push-test-btn:hover{background:rgba(124,58,237,.18)}
/* Χρήση AI — tiles */
.aiu-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.aiu-tile{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px 15px;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow)}
.aiu-tile span{font-size:11px;color:var(--muted);font-weight:600}
.aiu-tile b{font-size:22px;font-weight:800;color:var(--text);line-height:1.1}
.aiu-tile i{font-size:10.5px;color:var(--muted);font-style:normal}
.aiu-tile.hi{background:linear-gradient(135deg,#f5f3ff,#eef2ff);border-color:#d9d0f5}
.aiu-tile.hi b{color:#5b3fd4}
@media(max-width:720px){ .aiu-tiles{grid-template-columns:1fr} }

/* ================= God Mode → «Μενού»: σειρά & ομαδοποίηση (module 47) ================= */
.nv-roles{display:inline-flex;gap:5px;background:#e8edf4;border:1px solid #d5deea;border-radius:11px;padding:4px;margin:2px 0 14px}
.nv-rl{border:none;background:none;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--muted);
  padding:7px 15px;border-radius:8px;cursor:pointer}
.nv-rl.on{background:#fff;color:#4c1d95;box-shadow:0 1px 3px rgba(21,36,59,.14)}
.nv-styles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:16px}
.nvs{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1.5px solid var(--border);
  border-radius:12px;background:#fff;cursor:pointer;font-family:inherit;text-align:left}
.nvs:hover{border-color:#c4b5fd;background:#faf8ff}
.nvs.on{border-color:#6d28d9;background:#f5f1ff;box-shadow:0 0 0 3px rgba(109,40,217,.13)}
.nvs-vis{width:42px;flex:none;display:flex;flex-direction:column;gap:3px;background:#15243b;border-radius:7px;padding:6px 5px}
.nvs-vis i{display:block;height:4px;border-radius:2px;background:rgba(255,255,255,.55)}
.nvs-line{display:block;height:1px;background:rgba(255,255,255,.35);margin:3px 1px}
.nvs-gap{display:block;height:7px}
.nvs-box{display:block;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);
  border-radius:4px;padding:2px;margin-bottom:3px}
.nvs-box i{margin-bottom:2px}.nvs-box i:last-child{margin-bottom:0}
.nvs-tx b{display:block;font-size:12.5px;color:var(--text)}
.nvs-tx small{font-size:10.5px;color:var(--muted)}
.nv-cols{display:grid;grid-template-columns:1fr 236px;gap:16px;align-items:start}
@media(max-width:820px){.nv-cols{grid-template-columns:1fr}}
.nv-list{display:flex;flex-direction:column;gap:6px}
.nv-row{display:flex;align-items:center;gap:9px;padding:9px 11px;background:#fff;border:1px solid var(--border);
  border-radius:10px;cursor:grab;user-select:none}
.nv-row:hover{border-color:#c4b5fd;box-shadow:0 2px 8px rgba(76,29,149,.08)}
.nv-row .nv-h{color:#b9c2d2;font-size:13px;letter-spacing:-3px;flex:none;cursor:grab}
.nv-row .nv-ic{color:#6d28d9;display:grid;place-items:center;flex:none}
.nv-row .nv-l{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--text)}
.nv-cond{display:block;font-style:normal;font-size:10px;font-weight:500;color:var(--amber);margin-top:1px}
.nv-b{border:1px solid var(--border);background:#fff;border-radius:7px;width:26px;height:26px;flex:none;
  display:grid;place-items:center;cursor:pointer;color:var(--muted);font-size:12px;font-family:inherit}
.nv-b:hover{border-color:#6d28d9;color:#6d28d9;background:#f5f1ff}
.nv-b.danger:hover{border-color:var(--red);color:var(--red);background:#fdeaea}
.nv-row.nv-sep{background:#f5f1ff;border-style:dashed;border-color:#c4b5fd;padding:6px 11px}
.nv-sepline{flex:1;height:1px;background:#c4b5fd}
.nv-seplbl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#6d28d9;flex:none}
.nv-dropend{border:1.5px dashed var(--border);border-radius:10px;padding:10px;text-align:center;
  font-size:11px;color:var(--muted)}
.nv-prevwrap{position:sticky;top:8px}
.nv-prevh{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:7px}
.nv-prev{background:var(--navy,#15243b);border-radius:14px;padding:12px 10px}
.nv-prev .nav-item{font-size:12.5px;padding:8px 10px;pointer-events:none}
.nv-prev .nav-item svg{width:13px;height:13px}
.nv-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;
  border-top:1px solid var(--border)}
.nv-note{flex:1;min-width:200px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}

/* ---------- Διαχείριση τμημάτων (51-departments) ---------- */
.dp-new{display:inline-flex;align-items:center;gap:5px;margin-left:8px;border:1px solid var(--border);border-radius:8px;
  padding:6px 11px;font-size:12px;font-weight:700;background:#fff;color:#1c2637;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.dp-new:hover{background:#eef3fb;border-color:#c7dbfb}
.sp-dept .dp-a{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:7px;
  background:rgba(255,255,255,.10);color:#cfe0f7;cursor:pointer;transition:background .15s,color .15s}
.sp-dept .dp-a:hover{background:rgba(255,255,255,.22);color:#fff}
.sp-dept .dp-a.dp-del:hover{background:rgba(239,68,68,.9);color:#fff}
.sp-dept .dp-off{background:transparent;color:rgba(255,255,255,.3);cursor:not-allowed}
.sp-dept .dp-off:hover{background:transparent;color:rgba(255,255,255,.3)}
.sp-dept .dp-lock{display:inline-flex;align-items:center;color:rgba(255,255,255,.45)}
.dp-arch{border-top:1px solid var(--border);padding:10px 16px 14px}
.dp-arch-h{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}
.dp-arch-h .cnt{background:var(--border);color:var(--muted);border-radius:8px;padding:1px 7px;font-size:11px}
.dp-arch-row{display:flex;align-items:center;gap:8px;padding:6px 0}
.dp-arch-n{flex:1;min-width:0;font-size:13px;color:var(--muted);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dp-restore{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:8px;padding:4px 10px;
  font-size:11px;font-weight:700;background:#fff;color:#1c2637;cursor:pointer}
.dp-restore:hover{background:#eef3fb;border-color:#c7dbfb}

/* ===== ΔΟΜΗ ΤΜΗΜΑΤΩΝ — γονικά & υποτμήματα (52-dept-tree.js) ===== */
.dp-new.dp-tree{margin-left:6px}
.dt-modal{max-width:560px}
/* κεφαλίδα τμήματος στη λίστα λογαριασμών: κουκκίδα χρώματος + εσοχή υποτμήματος */
.sp-dept .sp-dot{width:9px;height:9px;border-radius:50%;background:var(--dtc,#8fb2e6);flex:0 0 auto;
  box-shadow:0 0 0 2px rgba(255,255,255,.18)}
.sp-dept.sp-sub{padding-left:34px;background:#22374f}
.sp-dept.sp-sub::before{content:"";position:absolute;left:16px;top:50%;width:10px;height:1px;background:rgba(255,255,255,.3)}
.sp-dept.sp-sub{position:sticky}

/* --- popup δέντρου --- */
.dt-list{position:relative;border:1px solid var(--border);border-radius:10px;background:var(--card,#fff);
  max-height:min(54vh,520px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.dt-row{display:flex;align-items:center;gap:9px;padding:9px 11px;border-bottom:1px solid var(--border);
  background:var(--card,#fff);user-select:none;transition:background .12s,padding-left .12s}
.dt-row:last-of-type{border-bottom:0}
.dt-row.dt-sub{padding-left:37px;background:rgba(120,140,170,.09)}
.dt-row.dt-sub::before{content:"";position:absolute;margin-left:-22px;width:11px;height:11px;
  border-left:1.5px solid rgba(120,140,170,.5);border-bottom:1.5px solid rgba(120,140,170,.5);
  border-radius:0 0 0 3px;transform:translateY(-3px)}
.dt-row.dt-dim{opacity:.45}
.dt-grip{display:inline-flex;flex-direction:column;justify-content:center;gap:2.5px;width:16px;height:20px;
  cursor:grab;flex:0 0 auto;touch-action:none;padding:0 2px}
.dt-grip:active{cursor:grabbing}
.dt-grip i{display:block;height:1.8px;border-radius:2px;background:var(--muted);opacity:.55}
.dt-dot{width:14px;height:14px;border-radius:50%;flex:0 0 auto;cursor:pointer;
  box-shadow:0 0 0 2px rgba(0,0,0,.06);transition:transform .12s}
.dt-dot:hover{transform:scale(1.18)}
.dt-n{font-size:13px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dt-badge{font-size:10px;font-weight:800;letter-spacing:.2px;padding:2px 7px;border-radius:7px;
  background:rgba(30,58,138,.1);color:#1e3a8a;flex:0 0 auto}
.dt-cnt{font-size:11px;font-weight:700;color:var(--muted);min-width:20px;text-align:right;flex:0 0 auto}
.dt-ind{display:none;position:absolute;left:0;right:0;height:2px;background:#2e6fd8;
  border-radius:2px;pointer-events:none;z-index:3;transition:margin-left .1s}
.dt-ind::before{content:"";position:absolute;left:-1px;top:-3px;width:8px;height:8px;border-radius:50%;background:#2e6fd8}
.dt-hint{font-size:11.5px;color:var(--muted);line-height:1.65;margin:10px 2px 4px}
/* παλέτα χρωμάτων */
.dt-sw{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px 11px 9px 37px;
  background:rgba(120,140,170,.13);border-bottom:1px solid var(--border)}
.dt-swc{width:20px;height:20px;border-radius:6px;cursor:pointer;box-shadow:0 0 0 2px rgba(0,0,0,.06);transition:transform .12s}
.dt-swc:hover{transform:scale(1.12)}
.dt-swc.on{box-shadow:0 0 0 2px #fff,0 0 0 4px #2e6fd8}
.dt-swr{margin-left:auto;border:1px solid var(--border);background:var(--card,#fff);border-radius:7px;
  padding:4px 10px;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer}
.dt-swr:hover{color:var(--ink)}
@media(max-width:680px){
  .dt-modal{max-width:calc(100vw - 20px)}
  .dt-row{padding:11px 10px;gap:8px}
  .dt-row.dt-sub{padding-left:32px}
  .dt-n{font-size:12.5px}
  .dt-badge{display:none}
}

/* ===== ΧΡΩΜΑΤΑ ΤΜΗΜΑΤΩΝ — Ρυθμίσεις → tab διευθυντή (src/modules/53-dept-colors.js) ===== */
.dc-body{padding:12px 14px 16px;display:flex;flex-direction:column;gap:10px}
.dc-hint{margin-left:auto;font-size:11px;font-weight:400;color:var(--muted)}
.dc-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;
  border:1px solid var(--border);border-radius:14px;padding:10px 12px}
.dc-id{display:flex;align-items:center;gap:10px;min-width:210px}
/* Προεπισκόπηση: αριστερά η απόχρωση του πλαϊνού μενού, δεξιά το χρώμα της καρτέλας */
.dc-prev{position:relative;display:block;width:52px;height:34px;border-radius:9px;overflow:hidden;
  flex:none;box-shadow:0 1px 5px rgba(21,36,59,.18)}
.dc-prev .dc-p1{position:absolute;inset:0 0 0 16px;background:var(--c,#15243b)}
.dc-prev .dc-p2{position:absolute;inset:0 auto 0 0;width:16px;background:var(--c2,#15243b)}
.dc-nm{min-width:0}
.dc-nm b{display:block;font-size:13.5px;line-height:1.2}
.dc-nm span{font-size:11px;color:var(--muted)}
.dc-sw{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
.dc-c{width:24px;height:24px;padding:0;border-radius:7px;border:2px solid transparent;cursor:pointer;
  box-shadow:0 1px 3px rgba(21,36,59,.2);transition:.15s}
.dc-c:hover{transform:translateY(-1px)}
.dc-c.on{border-color:#fff;outline:2px solid #1c2637;outline-offset:1px}
.dc-custom{position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:8px;border:1px dashed var(--border);color:var(--muted);cursor:pointer}
.dc-custom input{position:absolute;inset:0;width:100%;height:100%;opacity:0;padding:0;border:none;cursor:pointer}
.dc-auto{border:1px solid var(--border);background:#fff;border-radius:8px;padding:5px 9px;
  font-size:11.5px;font-weight:700;color:var(--muted);cursor:pointer}
.dc-auto.on{background:#1c2637;border-color:#1c2637;color:#fff}
.dc-warn{flex:1 0 100%;display:flex;align-items:center;gap:6px;font-size:11.5px;color:#b4322e}
@media(max-width:900px){
  .dc-id{min-width:100%}
  .dc-sw{margin-left:0}
}

/* ---------- Αρχειοθετημένοι λογαριασμοί (54-acct-archive) ---------- */
.st-n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  background:#94a3b8;color:#fff;font-size:10.5px;font-weight:700;line-height:1}
.st-tab.on .st-n{background:rgba(255,255,255,.25)}
.ac-card{border-left:4px solid #94a3b8;max-width:880px}
.ac-card .card-h{flex-wrap:wrap}
.ac-q{margin-left:auto;border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:12px;outline:none;width:180px}
.ac-note{display:flex;gap:7px;align-items:flex-start;margin:0 16px 8px;padding:9px 12px;border-radius:9px;
  background:#f1f5f9;color:#475569;font-size:12px;line-height:1.55}
.ac-note svg,.ac-warn svg{flex:0 0 auto;margin-top:2px}
.ac-row{align-items:center;gap:10px}
.ac-av{filter:grayscale(1);opacity:.7}
.ac-meta{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:1px}
.ac-restore{display:inline-flex;align-items:center;gap:5px;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;
  border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;flex:0 0 auto}
.ac-restore:hover{background:#dcfce7}
.ac-list{margin:8px 0 4px;padding-left:18px}
.ac-list li{margin:2px 0}
.ac-warn{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:9px 12px;border-radius:9px;
  background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:12.5px;line-height:1.5}
.ac-go{background:linear-gradient(135deg,#b45309,#e09c1a);border:none}
.dp-an{display:inline-flex;gap:5px;align-items:center;margin-top:6px;color:#475569}
@media(max-width:600px){
  .ac-q{flex:1 0 100%;width:auto;margin-left:0}
  .ac-rt{display:none}
}

/* ---------- Διαγραφή & μεταφορά δεδομένων (55-acct-delete) + επιλογή ατόμου (56) ---------- */
.xd-modal .modal-b{font-size:13px;line-height:1.65}
.xd-p1{margin:0 0 10px}
.xd-load{display:flex;align-items:center;gap:10px;color:var(--muted);padding:6px 0}
.xd-spin{width:16px;height:16px;border-radius:50%;border:2px solid #cbd5e1;border-top-color:#0f766e;animation:xdSpin .8s linear infinite}
@keyframes xdSpin{to{transform:rotate(360deg)}}
.xd-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.xd-chip{display:inline-flex;align-items:center;gap:5px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;
  padding:3px 10px;font-size:12px;font-weight:600;color:#334155}
.xd-hint{font-size:12px;color:var(--muted);margin-top:6px}
.xd-hist,.xd-alert,.xd-warn,.xd-msg{display:flex;gap:8px;align-items:flex-start;border-radius:10px;padding:9px 12px;font-size:12.5px;margin:8px 0}
.xd-hist svg,.xd-alert svg,.xd-warn svg,.xd-msg svg{flex:0 0 auto;margin-top:2px}
.xd-hist{background:#f0fdfa;border:1px solid #99f6e4;color:#115e59}
.xd-alert{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.xd-warn{background:#fffbeb;border:1px solid #fde68a;color:#92400e}
.xd-msg{background:#f0fdfa;border:1px solid #5eead4;color:#115e59}
.xd-msg a{color:#0f766e;font-weight:700;text-decoration:underline;cursor:pointer}
.xd-keep{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:9px 12px;font-size:12px;color:#475569;margin-top:8px}
.xd-steps-h{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap}
.xd-steps-h span{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:#94a3b8}
.xd-steps-h span+span::before{content:"";width:16px;height:1px;background:#cbd5e1;margin-right:2px}
.xd-steps-h i{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#e2e8f0;
  color:#64748b;font-style:normal;font-size:10.5px}
.xd-steps-h .on{color:#0f766e}.xd-steps-h .on i{background:#0f766e;color:#fff}
.xd-steps-h .ok{color:#0f766e}.xd-steps-h .ok i{background:#ccfbf1;color:#0f766e}
.xd-q{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:9px;padding:8px 11px;font-size:13px;outline:none;margin-bottom:8px}
.xd-list{max-height:300px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:10px}
.xd-p{display:flex;align-items:center;gap:10px;padding:8px 11px;cursor:pointer;border-bottom:1px solid #f1f5f9}
.xd-p:last-child{border-bottom:none}
.xd-p:hover{background:#f8fafc}
.xd-p.on{background:#f0fdfa}
.xd-rad{flex:0 0 auto;width:16px;height:16px;border-radius:50%;border:2px solid #cbd5e1;box-sizing:border-box}
.xd-p.on .xd-rad{border:5px solid #0f766e}
.xd-pn{flex:1;min-width:0;display:flex;flex-direction:column}
.xd-pn b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xd-pn b i{font-weight:500;color:var(--muted)}
.xd-pn span{font-size:11px;color:var(--muted)}
.xd-got{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:#0f766e;
  background:#ccfbf1;border-radius:999px;padding:2px 8px}
.xd-kinds{display:flex;flex-direction:column;gap:8px}
.xd-k{display:flex;align-items:flex-start;gap:10px;border:1px solid #e2e8f0;border-radius:11px;padding:10px 12px;cursor:pointer}
.xd-k:has(input:checked){border-color:#5eead4;background:#f0fdfa}
.xd-k.off{opacity:.55;cursor:default}
.xd-k input{margin-top:3px;width:16px;height:16px;accent-color:#0f766e;flex:0 0 auto}
.xd-kic{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#ccfbf1;color:#0f766e}
.xd-kt{flex:1;min-width:0}
.xd-kt em{font-style:normal;font-weight:700;color:#0f766e;margin-left:4px}
.xd-kt small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.45}
.xd-flow{display:flex;align-items:center;gap:10px;margin:6px 0 16px}
.xd-end{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;width:92px;text-align:center}
.xd-end span{font-size:11.5px;font-weight:600;color:#334155;line-height:1.3;overflow-wrap:break-word}
.xd-end:first-child .avatar,.xd-end:first-child img{filter:grayscale(1);opacity:.75}
.xd-track{position:relative;flex:1;height:6px;border-radius:3px;background:repeating-linear-gradient(90deg,#cbd5e1 0 6px,transparent 6px 12px);overflow:hidden}
.xd-track i{position:absolute;top:-2px;left:-12%;width:10px;height:10px;border-radius:3px;background:#14b8a6;
  box-shadow:0 0 8px rgba(20,184,166,.6);animation:xdFly 1.6s cubic-bezier(.5,0,.5,1) infinite}
.xd-track i:nth-child(2){animation-delay:.4s;background:#0ea5e9}
.xd-track i:nth-child(3){animation-delay:.8s;background:#f59e0b}
.xd-track i:nth-child(4){animation-delay:1.2s;background:#8b5cf6}
@keyframes xdFly{0%{left:-12%;transform:scale(.6)}50%{transform:scale(1)}100%{left:105%;transform:scale(.6)}}
.xd-bar{height:12px;border-radius:6px;background:#e2e8f0;overflow:hidden}
.xd-bar i{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,#0f766e,#14b8a6,#5eead4);
  background-size:200% 100%;animation:xdShine 1.4s linear infinite;transition:width .12s linear}
@keyframes xdShine{to{background-position:-200% 0}}
.xd-pct{display:flex;align-items:baseline;gap:10px;margin:8px 0 10px}
.xd-pct b{font-size:22px;color:#0f766e;font-variant-numeric:tabular-nums}
.xd-pct span{font-size:12px;color:var(--muted)}
.xd-run{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.xd-run li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#94a3b8}
.xd-run li b{color:inherit}
.xd-run li .xd-st{margin-left:auto;width:14px;height:14px;border-radius:50%;border:2px solid #e2e8f0;box-sizing:border-box}
.xd-run li.on{color:#0f766e}.xd-run li.on .xd-st{border-color:#99f6e4;border-top-color:#0f766e;animation:xdSpin .8s linear infinite}
.xd-run li.ok{color:#166534}.xd-run li.ok .xd-st{border:none;background:#22c55e;box-shadow:inset 0 0 0 3px #dcfce7}
.xd-got-l{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:5px}
.xd-got-l li{display:flex;align-items:center;gap:7px;color:#166534;font-weight:600}
@media (prefers-reduced-motion:reduce){.xd-track i,.xd-bar i,.xd-spin{animation:none}}
@media(max-width:600px){ .xd-end{width:88px} .xd-end span{font-size:11px} .xd-modal .modal-f{flex-wrap:wrap} .xd-modal .modal-f .btn{flex:1 1 auto} }
  /* Διακόπτης δικαιώματος στη φόρμα λογαριασμού (26-rythmiseis) */
  .st-chk{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:12.5px;font-weight:600;cursor:pointer;margin-top:2px;line-height:1.45}
  .st-chk:hover{background:var(--accent-soft)}
  .st-chk input{margin-top:2px;flex:none;width:16px;height:16px;accent-color:#7c3aed;cursor:pointer}
/* =====================================================================
   PROJECTS — royal blue ταυτότητα (#1e3a8a → #3b82f6)
===================================================================== */
:root{ --prj:#2563eb; --prj-d:#1e3a8a; --prj-soft:#e8effd;
  /* ανάθεση σε άλλον = τιρκουάζ, παντού: κάρτα kanban, γραμμή, παράθυρο */
  --dlg:#0d9488; --dlg-d:#0f766e; --dlg-soft:#e6f6f3; }

/* ---- Κεφαλίδα με βάθος: λωρίδες + μονοπάτι + ετικέτα επιπέδου ---- */
.modal-h.mh-lvl{ position:relative; padding-left:24px; }
.mh-spine{ position:absolute; left:0; top:0; bottom:0; display:flex; pointer-events:none; }
.mh-spine i{ display:block; width:5px; background:#fff; }
.mh-crumb{ display:flex; align-items:center; flex-wrap:wrap; gap:5px; margin-bottom:4px;
  font-size:10.5px; line-height:1.35; color:rgba(255,255,255,.72); }
.mh-crumb a{ color:rgba(255,255,255,.88); cursor:pointer; max-width:220px; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; border-bottom:1px dotted rgba(255,255,255,.45); }
.mh-crumb a:hover{ color:#fff; border-bottom-style:solid; }
.mh-crumb .cr-sep{ opacity:.55; }
.mh-lv{ display:inline-block; font-size:10px; font-weight:800; letter-spacing:.03em;
  padding:1px 8px; border-radius:999px; margin-right:6px; color:#fff;
  background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.32); }
.mh-av{ flex:none; display:grid; place-items:center; }
.mh-av .avatar{ box-shadow:0 0 0 2px rgba(255,255,255,.55); }

/* ---- Λίστα (grid καρτών) ---- */
.prj-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.prj-grid>.lz-host{display:contents}
.prj-grid .lz-sent{grid-column:1/-1;height:1px}
.prj-card{ background:var(--card); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:15px 16px; cursor:pointer; transition:transform .12s, box-shadow .12s, border-color .12s;
  border-top:3px solid var(--prj); }
.prj-card:hover{ transform:translateY(-2px); box-shadow:0 6px 22px rgba(37,99,235,.16); border-color:#c7d7f7; }
.prj-card-top{ display:flex; align-items:center; gap:9px; margin-bottom:4px; }
.prj-ic{ width:30px; height:30px; border-radius:9px; flex:none; display:grid; place-items:center; color:#fff;
  background:linear-gradient(135deg,var(--prj-d),var(--prj)); }
.prj-tt{ font-weight:700; font-size:14.5px; line-height:1.25; flex:1; min-width:0; color:var(--text); }
.prj-sub{ font-size:11.5px; color:var(--muted); margin:2px 0 11px; }
.prj-bar{ display:flex; align-items:center; gap:9px; margin-bottom:10px; }
.prj-bar b{ font-size:12.5px; color:var(--prj-d); min-width:38px; text-align:right; }
.prj-foot{ display:flex; align-items:center; justify-content:space-between; font-size:11px; color:var(--muted); }
.prj-badge{ font-size:10.5px; font-weight:700; padding:2px 9px; border-radius:999px; white-space:nowrap; }

/* ---- Σελίδα project ---- */
.prj-detail{ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
@media (max-width:1050px){ .prj-detail{ grid-template-columns:1fr; } }
.prj-detail .stack{ display:flex; flex-direction:column; gap:16px; }
.prj-person{ display:flex; align-items:center; gap:11px; padding:9px 16px; border-top:1px solid var(--border); }
.prj-person:first-child{ border-top:none; }
.pp-main{ flex:1; min-width:0; }
.pp-name{ font-size:12.5px; font-weight:600; margin-bottom:4px; }
.pp-main .mini-bar{ height:7px; }
.pp-pct{ font-size:13px; font-weight:800; color:var(--prj-d); min-width:40px; text-align:right; }
.pp-meta{ font-size:10.5px; color:var(--muted); min-width:56px; text-align:right; }
.prj-pct{ font-size:12.5px; font-weight:800; color:var(--prj-d); min-width:40px; text-align:right; }

/* ---- Popup ανάλυσης project ---- */
.prj-modal{ width:580px; max-width:94vw; }
.prj-modal .modal-b{ max-height:min(64vh,600px); overflow:auto; }
.prj-hbadge{ flex:none; }
.prj-hbadge .prj-badge{ background:rgba(255,255,255,.2)!important; color:#fff!important; border-color:rgba(255,255,255,.4)!important; }
.prjm-hero{ display:flex; align-items:center; gap:18px; background:var(--prj-soft); border:1px solid #d5e3fb;
  border-radius:14px; padding:14px 16px; margin-bottom:4px; }
.prjm-metrics{ flex:1; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.prjm-metric{ background:#fff; border:1px solid var(--border); border-radius:10px; padding:9px 11px; }
.prjm-metric .k{ font-size:10.5px; color:var(--muted); display:flex; align-items:center; gap:4px; margin-bottom:3px; }
.prjm-metric .k .i{ color:var(--prj); }
.prjm-metric .v{ font-size:20px; font-weight:800; color:#1c2536; line-height:1.1; }
.prjm-metric .v small{ font-size:12px; font-weight:600; color:var(--muted); }
.prjm-metric .km{ font-size:10px; color:var(--muted); margin-top:2px; }
.prjm-metric .km.overdue{ color:var(--red); }
.prjm-metric .km.soon{ color:var(--amber); }
/* Το mobile layout του popup (≤600px) ζει συγκεντρωμένο στο 36-mobile.css */

/* ---- Wizard δημιουργίας (redesign: 2 βήματα, κάρτες, καθαρή ιεραρχία) ---- */
#npWin .modal-b.np-body, #ntWin .modal-b.np-body{ padding:18px 20px; background:#fbfcff; display:flex; flex-direction:column; gap:15px; }
.np-section{ border-radius:14px; padding:16px; box-shadow:0 1px 2px rgba(21,36,59,.05); }
/* Βήμα 1: μπλε τόνος · Βήμα 2: ουδέτερο ψυχρό (οι λευκές κάρτες ξεχωρίζουν) */
.np-section.s1{ background:#eef4ff; border:1px solid #d5e3fb; }
.np-section.s2{ background:#f3f6fc; border:1px solid #e0e6f2; }
.np-section.s1 .np-in{ background:#fff; }
.np-step{ display:flex; align-items:center; gap:11px; margin-bottom:14px; }
.np-step-n{ width:26px; height:26px; border-radius:50%; flex:none; display:grid; place-items:center;
  font-weight:800; font-size:13px; color:#fff; background:linear-gradient(135deg,var(--prj-d),var(--prj));
  box-shadow:0 2px 6px rgba(37,99,235,.35); }
.np-step b{ font-size:14px; display:block; color:var(--text); }
.np-step small{ font-size:11px; color:var(--muted); }
.np-count{ margin-left:auto; background:var(--prj-soft); color:var(--prj-d); font-weight:800; font-size:12px;
  padding:3px 12px; border-radius:999px; border:1px solid #c7d7f7; }

.np-field{ margin-bottom:12px; }
.np-field:last-child{ margin-bottom:0; }
.np-field label{ display:flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; color:#42506a;
  margin-bottom:6px; text-transform:none; letter-spacing:0; }
.np-field label .i{ color:var(--prj); }
.np-opt{ font-weight:500; color:var(--muted); font-size:10.5px; }
.req{ color:var(--red); }
.np-hint{ display:block; font-size:10.5px; color:var(--muted); margin-top:5px; }

.np-in{ width:100%; padding:10px 12px; border:1.5px solid var(--border); border-radius:10px; font-size:13.5px;
  background:#fff; font-family:inherit; color:var(--text); transition:border-color .12s, box-shadow .12s; }
textarea.np-in{ resize:vertical; min-height:44px; }
.np-in:focus{ outline:none; border-color:var(--prj); box-shadow:0 0 0 3px rgba(37,99,235,.14); }
.np-in:disabled{ background:#f1f4f9; color:var(--muted); cursor:not-allowed; }
select.np-in{ cursor:pointer; }
.np-grid2{ display:grid; grid-template-columns:1fr 150px; gap:12px; }

.np-card{ background:#fff; border:1px solid var(--border); border-left:3px solid var(--prj); border-radius:12px;
  padding:14px; margin-bottom:12px; box-shadow:0 2px 10px rgba(21,36,59,.06); }
.np-card-h{ display:flex; align-items:center; gap:9px; margin-bottom:12px; }
.np-card-h .spacer{ flex:1; }
.np-num{ width:24px; height:24px; border-radius:50%; flex:none; display:grid; place-items:center; font-weight:800;
  font-size:12px; color:var(--prj-d); background:var(--prj-soft); border:1px solid #c7d7f7; }
.np-card-h b{ font-size:13px; color:#42506a; }
/* Ζωντανός δείκτης πληρότητας ανάθεσης */
.np-status{ display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:700;
  padding:3px 9px; border-radius:999px; white-space:nowrap; }
.np-status.warn{ background:var(--amber-soft); color:#8a5a06; border:1px solid #f0d79a; }
.np-status.ok{ background:var(--green-soft); color:#0f7a41; border:1px solid #a9e0c1; }
/* Αριθμημένα βήματα μέσα στην κάρτα ανάθεσης */
.np-fnum{ display:inline-grid; place-items:center; width:16px; height:16px; border-radius:50%;
  background:var(--prj-soft); color:var(--prj-d); font-size:9.5px; font-weight:800; border:1px solid #c7d7f7; }
/* Υπογράμμιση όσων λείπουν */
.np-in.miss{ border-color:#e6b34d; background:#fffdf6; }
.np-kind.miss{ border:1.5px solid #e6b34d; border-radius:12px; padding:6px; background:#fffdf6; }
.np-del{ background:none; border:none; color:var(--muted); cursor:pointer; padding:5px; border-radius:8px;
  display:grid; place-items:center; transition:.12s; }
.np-del:hover{ background:#fdeaea; color:var(--red); }

.np-kind{ display:flex; gap:10px; }
.np-kbtn{ flex:1; display:flex; align-items:center; gap:9px; padding:10px 11px; border:1.5px solid var(--border);
  border-radius:11px; background:#fff; cursor:pointer; text-align:left; transition:.12s; }
.np-kbtn:hover{ border-color:#c7d7f7; background:#fbfcff; }
.np-kbtn.sel{ border-color:var(--prj); background:var(--prj-soft); box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.np-kbtn .k-ic{ width:30px; height:30px; border-radius:8px; flex:none; display:grid; place-items:center;
  color:var(--muted); background:#eef1f6; transition:.12s; }
.np-kbtn.sel .k-ic{ background:linear-gradient(135deg,var(--prj-d),var(--prj)); color:#fff; }
.np-kbtn .k-tx b{ font-size:12.5px; color:var(--text); display:block; line-height:1.2; }
.np-kbtn .k-tx small{ font-size:10px; color:var(--muted); }

.np-addbtn{ width:100%; padding:11px; border:1.5px dashed #b9c6dd; border-radius:11px; background:#fff;
  color:var(--prj-d); font-weight:700; font-size:12.5px; cursor:pointer; display:flex; align-items:center;
  justify-content:center; gap:7px; transition:.12s; }
.np-addbtn:hover{ border-color:var(--prj); background:var(--prj-soft); }

#npWin .err{ margin:0; }
.btn.np-go{ background:linear-gradient(135deg,var(--prj-d),var(--prj)); border-color:transparent; color:#fff;
  box-shadow:0 3px 10px rgba(37,99,235,.35); }
.btn.np-go:hover{ filter:brightness(1.06); }

/* ---- Multi-step: stepper ---- */
.np-stepper{ display:flex; align-items:center; gap:6px; margin-bottom:15px; }
.np-sdot{ display:flex; align-items:center; gap:6px; font-size:11px; font-weight:700; color:var(--muted); white-space:nowrap; }
.np-sdot .np-sn{ width:20px; height:20px; border-radius:50%; display:grid; place-items:center; font-size:10.5px;
  background:#e6eaf2; color:var(--muted); border:1px solid var(--border); }
.np-sdot.on{ color:var(--prj-d); }
.np-sdot.on .np-sn{ background:linear-gradient(135deg,var(--prj-d),var(--prj)); color:#fff; border-color:transparent; box-shadow:0 2px 6px rgba(37,99,235,.35); }
.np-sdot.done .np-sn{ background:var(--green); color:#fff; border-color:transparent; }
.np-sline{ flex:1; height:2px; background:var(--border); border-radius:2px; min-width:12px; }

/* ---- Step 2: αναζήτηση + λίστα ατόμων ---- */
.np-searchbox{ display:flex; align-items:center; gap:8px; padding:9px 12px; border:1.5px solid var(--border);
  border-radius:10px; background:#fff; margin-bottom:10px; color:var(--muted); }
.np-searchbox input{ border:none; outline:none; flex:1; font-size:13.5px; background:transparent; color:var(--text); font-family:inherit; }
.np-searchbox:focus-within{ border-color:var(--prj); box-shadow:0 0 0 3px rgba(37,99,235,.14); color:var(--prj); }
.np-people{ max-height:280px; overflow:auto; border:1px solid var(--border); border-radius:10px; background:#fff; }
.np-prow{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-top:1px solid var(--border); cursor:pointer; }
.np-prow:first-child{ border-top:none; }
.np-prow:hover{ background:#f6f9ff; }
.np-prow.sel{ background:var(--prj-soft); }
.np-prow input[type=checkbox]{ width:16px; height:16px; accent-color:var(--prj); flex:none; cursor:pointer; }
.np-pmeta{ flex:1; min-width:0; }
.np-pmeta b{ font-size:12.5px; display:block; color:var(--text); }
.np-pmeta small{ font-size:10.5px; color:var(--muted); }
.np-pcheck{ color:var(--prj-d); display:grid; place-items:center; flex:none; }

/* ---- Steps 3..N: ανά άτομο ---- */
.np-person-h{ display:flex; align-items:center; gap:11px; padding:10px 12px; background:var(--prj-soft);
  border:1px solid #c7d7f7; border-radius:11px; margin-bottom:14px; }
.np-person-h b{ font-size:14px; display:block; color:#1c2536; }
.np-person-h small{ font-size:11px; color:var(--muted); }
.np-item{ display:flex; align-items:center; gap:9px; margin-bottom:8px; }
.np-inum{ width:22px; height:22px; border-radius:50%; flex:none; display:grid; place-items:center; font-size:11px;
  font-weight:800; color:var(--prj-d); background:var(--prj-soft); border:1px solid #c7d7f7; }
.np-item .np-in{ flex:1; }
.np-item .np-del{ flex:none; padding:6px; border:none; background:none; color:var(--muted); cursor:pointer; border-radius:8px; }
.np-item .np-del:hover{ background:#fdeaea; color:var(--red); }

/* ---- Nested: container / delegate ---- */
.prj-container{ padding:4px 2px; }
.pc-banner{ background:var(--prj-soft); border:1px solid #c7d7f7; color:var(--prj-d);
  border-radius:10px; padding:11px 13px; font-size:12.5px; line-height:1.5; }
/* ---- «Ποιος έχει τι»: λωρίδα στο task & πάνελ στο popup του έργου ---- */
.dlg-strip{ background:var(--prj-soft); border:1px solid #c7d7f7; border-radius:12px;
  padding:11px 13px; margin-bottom:14px; }
.dlg-strip.on{ background:#fff; border-color:#cfe0fb; }
.dlg-head{ display:flex; align-items:center; gap:11px; flex-wrap:wrap; }
.dlg-htxt{ flex:1; min-width:170px; }
.dlg-htxt b{ display:block; font-size:13px; font-weight:700; color:var(--prj-d); line-height:1.35; }
.dlg-htxt small{ display:block; font-size:11.5px; color:var(--muted); margin-top:3px; }
.dlg-lines{ display:flex; flex-direction:column; gap:8px; margin-top:11px; }
.dlg-line{ display:flex; align-items:center; gap:10px; cursor:pointer; border-radius:8px;
  padding:3px 4px; margin:0 -4px; }
.dlg-line:hover{ background:var(--bg); }
.dlg-av{ display:flex; flex:none; }
.dlg-av .avatar{ margin-right:-6px; box-shadow:0 0 0 2px #fff; }
.dlg-av .avatar:last-child{ margin-right:0; }
.dlg-t{ flex:1; min-width:0; font-size:12px; font-weight:600;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dlg-bar{ width:96px; height:6px; border-radius:4px; background:#eef1f6; overflow:hidden; flex:none; }
.dlg-bar i{ display:block; height:100%; border-radius:4px; background:var(--dlg); }
.dlg-pct{ font-size:11px; font-weight:800; color:var(--dlg-d); width:34px; text-align:right; flex:none; }
.dlg-mine{ font-size:11px; color:var(--muted); flex:none; }

/* ---- Popup ανάθεσης στην ομάδα: ΜΙΑ οθόνη, χωρίς καρτέλες ---- */
#dgWin .btn-primary{ background:linear-gradient(135deg,var(--prj-d),var(--prj));
  border-color:transparent; color:#fff; box-shadow:0 2px 7px rgba(37,99,235,.28); }
.dg-find{ display:flex; align-items:center; gap:9px; background:var(--bg);
  border:1px solid var(--border); border-radius:10px; padding:7px 11px; margin-bottom:13px; }
.dg-find input{ flex:1; min-width:0; border:none; background:none; font:inherit; font-size:12.5px; }
.dg-find input:focus{ outline:none; }
.dg-cnt{ font-size:10.5px; font-weight:700; color:var(--muted); background:#fff;
  border:1px solid var(--border); border-radius:6px; padding:1px 7px; flex:none; }
.dg-lab{ font-size:11px; font-weight:800; letter-spacing:.4px; color:var(--muted); margin-bottom:9px; }

.dg-row{ position:relative; display:flex; align-items:center; gap:12px; padding:10px 12px;
  background:#fff; border:1px solid var(--border); border-radius:12px; }
.dg-row.sel{ border-color:#bfd4fa; background:#f6f9ff; }
.dg-row.done{ border-color:#bfe6cf; background:var(--green-soft); }
.dg-row.dim{ opacity:.45; }
.dg-main{ flex:1; min-width:0; }
.dg-main b{ display:block; font-size:13px; font-weight:600; line-height:1.35; }
.dg-main small{ display:block; font-size:11px; color:var(--muted); margin-top:2px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dg-n,.dg-ic{ width:22px; height:22px; border-radius:7px; background:#eef1f6; color:var(--muted);
  display:grid; place-items:center; font-size:11px; font-weight:800; flex:none; }
.dg-row.sel .dg-n,.dg-row.sel .dg-ic{ background:var(--prj-soft); color:var(--prj-d); }
.dg-row.done .dg-n,.dg-row.done .dg-ic{ background:#cdeedd; color:var(--green); }
.dg-lock{ color:var(--green); display:inline-flex; align-items:center; padding:0 6px; }

.dg-or{ display:flex; align-items:center; gap:10px; margin:12px 0 10px; }
.dg-or span{ height:1px; background:var(--border); flex:1; }
.dg-or b{ font-size:11px; font-weight:700; color:#98a3b5; }
.dg-steps{ display:flex; flex-direction:column; gap:8px; }

/* Πρόσωπα ως κουμπιά. Το πλήθος είναι ΣΤΑΘΕΡΟ — δες dgRowPeople. */
.dg-avs{ display:flex; gap:7px; margin-left:auto; flex:none; }
.dg-av{ width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  flex:none; cursor:pointer; border:2px solid transparent; transition:box-shadow .12s,transform .12s; }
.dg-av .avatar{ filter:grayscale(1); opacity:.5; transition:.12s; }
.dg-av:hover{ transform:translateY(-1px); }
.dg-av:hover .avatar{ opacity:.8; }
.dg-av.on{ border-color:#fff; box-shadow:0 0 0 2px var(--prj),0 2px 6px rgba(21,36,59,.18); }
.dg-av.on .avatar{ filter:none; opacity:1; }
.dg-av.more{ background:#fff; border:1.5px dashed #c3cede; color:var(--muted);
  font-size:10px; font-weight:800; }
.dg-av.more.on{ border-style:solid; border-color:var(--prj); color:var(--prj-d); background:var(--prj-soft); }

/* Tooltip ονόματος — ακαριαίο, θέση από JS (dgTipShow) ώστε να μην το κόβει κανένα overflow */
.dg-tip{ position:fixed; z-index:9999; display:none; transform:translate(-50%,calc(-100% - 8px));
  background:var(--navy); color:#fff; font-size:11px; font-weight:600; line-height:1;
  white-space:nowrap; padding:6px 9px; border-radius:7px; pointer-events:none;
  box-shadow:0 6px 18px rgba(21,36,59,.3); }
.dg-tip::after{ content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%);
  border:5px solid transparent; border-top-color:var(--navy); }

/* Αιωρούμενο παράθυρο επιλογής: ΔΕΝ σπρώχνει τη λίστα */
.dg-popveil{ position:fixed; inset:0; z-index:5; }
.dg-pop{ position:absolute; z-index:6; right:8px; top:calc(100% - 4px); width:250px;
  background:#fff; border:1px solid #cfe0fb; border-radius:11px; padding:7px;
  box-shadow:0 14px 34px rgba(21,36,59,.24); }
.dg-popfind{ display:flex; align-items:center; gap:7px; background:var(--bg);
  border:1px solid var(--border); border-radius:8px; padding:5px 8px; margin-bottom:6px; }
.dg-popfind input{ flex:1; min-width:0; border:none; background:none; font:inherit; font-size:11.5px; }
.dg-popfind input:focus{ outline:none; }
.dg-popx{ border:none; background:none; color:var(--muted); display:grid; place-items:center; padding:0; }
.dg-poplist{ max-height:210px; overflow:auto; display:flex; flex-direction:column; gap:2px; }
.dg-poprow{ display:flex; align-items:center; gap:8px; padding:6px 7px; border-radius:8px; cursor:pointer; }
.dg-poprow b{ font-size:11.5px; font-weight:600; flex:1; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); }
.dg-poprow:hover{ background:var(--bg); }
.dg-poprow.on{ background:var(--prj-soft); }
.dg-poprow.on b{ color:var(--text); }
.dg-poprow svg{ color:var(--prj-d); flex:none; }

.dg-add{ display:flex; gap:7px; margin-top:2px; }
.dg-add input{ flex:1; min-width:0; border:1px dashed #d3dbe8; border-radius:12px;
  padding:10px 13px; font:inherit; font-size:12.5px; background:#fff; }
.dg-add input:focus{ outline:none; border-style:solid; border-color:var(--prj);
  box-shadow:0 0 0 3px rgba(37,99,235,.13); }

/* ---- Calendar milestone chip ---- */
.cal-chip.proj{ background:var(--prj-soft); color:var(--prj-d); border-color:#c7d7f7; }

/* ---- «Η δουλειά μου σε αυτό το έργο» ----------------------------------
   Το μόνο κομμάτι του παραθύρου που είναι ΔΙΚΗ ΣΟΥ δουλειά. Κρατά το
   πορτοκαλί της εργασίας, ώστε να «σπάει» οπτικά μέσα στο μπλε παράθυρο
   του έργου και να το βρίσκει το μάτι χωρίς διάβασμα. */
.mywork{ margin-top:10px; border:1.5px solid #f6d3bf; border-radius:14px; overflow:hidden;
  background:#fff; box-shadow:0 8px 24px rgba(131,47,13,.10); }
.mw-head{ display:flex; align-items:center; gap:12px; padding:12px 15px; color:#fff;
  background:linear-gradient(115deg,#832f0d,#e8622d 130%); }
.mw-ic{ width:36px; height:36px; border-radius:11px; background:rgba(255,255,255,.2);
  display:grid; place-items:center; flex:none; }
.mw-ht{ flex:1; min-width:0; }
.mw-ht b{ display:block; font-size:14.5px; font-weight:800; line-height:1.25; }
.mw-ht small{ display:block; font-size:11px; color:rgba(255,255,255,.85); margin-top:2px; }
.mw-pct{ flex:none; font-size:22px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
.mw-pct small{ font-size:12px; font-weight:700; opacity:.8; margin-left:1px; }
.mw-list{ background:#fff; }
.mywork.empty-mw .mw-head{ background:linear-gradient(115deg,#7b8496,#aab3c2 130%); }

/* Οι γραμμές: πιο μεγάλες, πιο έντονες, με ζεστό hover */
.mywork .task-row{ padding:13px 15px; gap:12px; border-bottom:1px solid #f4e6de; }
.mywork .task-row:last-child{ border-bottom:none; }
.mywork .task-row:hover{ background:#fff6f1; }
.mywork .task-row.from-prj{ border-left:none; }
.mywork .task-row .prio{ width:5px; height:44px; border-radius:3px; }
.mywork .task-row .tt{ font-size:15px; font-weight:800; line-height:1.3; color:var(--text); }
.mywork .task-row .ts{ font-size:12px; margin-top:4px; }
.mywork .task-row .deadline{ font-weight:700; }
.mywork .task-row .prog-wrap{ width:116px; }
.mywork .task-row .prog-wrap .pct{ font-size:14.5px; font-weight:800; color:#832f0d; }
.mywork .task-row .prog-wrap .mini-bar{ height:8px; margin-top:4px; border-radius:4px; }
.mywork .task-row .prog-wrap .mini-bar i{ background:linear-gradient(90deg,#832f0d,#e8622d); border-radius:4px; }
.mywork .empty{ padding:18px 15px; }
.pp-dept{ font-weight:600; font-size:11.5px; color:var(--muted); }

/* ---- Wizard βήμα «Αναθέσεις»: Τίτλος + Περιγραφή μαζί, ξεχωριστά από τα βήματα ---- */
.np-block{ background:#fff; border:1px solid #dbe3f1; border-radius:12px;
  padding:13px 13px 14px; margin-bottom:15px; box-shadow:0 1px 2px rgba(21,36,59,.05); }
.np-block .np-field:last-child{ margin-bottom:0; }
textarea.np-ta{ min-height:74px; line-height:1.5; }

/* ---- Περιγραφή ανάθεσης μέσα στο popup του διευθυντή ---- */
.dg-note{ background:#fff; border:1px solid #dbe3f1; border-radius:12px;
  padding:10px 12px 11px; margin:-2px 0 10px; }
.dg-note label{ display:flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700;
  color:#42506a; margin-bottom:6px; }
.dg-note label .i{ color:var(--prj); }
.dg-note textarea{ font-size:13px; }

/* ================= Wizard ΝΕΟΥ TASK (module 46) =================
   Ίδιο σχήμα με τον wizard των projects (κλάσεις .np-*), αλλά με τα
   χρώματα του task: το #ntWin ξαναορίζει ΜΟΝΟ τα --prj* και όλα τα
   .np-* το ακολουθούν. Δικές του κλάσεις: .nt-type (επιλογή τύπου)
   και .nt-dept/.nt-dhd/.nt-dbody (πλοήγηση ανά τμήμα για τον admin). */
#ntWin{ --prj:#e8622d; --prj-d:#832f0d; --prj-soft:#fdeadf; }
/* Γραμμή «Εσύ» στην κορυφή της λίστας ατόμων (ανάθεση στον εαυτό σου) */
.nt-me{ border-bottom:1px solid var(--border); }
.nt-me + .np-prow{ border-top:none; }
.nt-metag{ display:inline-block; margin-left:7px; padding:1px 7px; border-radius:6px; font-size:10.5px; font-weight:700; vertical-align:1px; color:var(--prj-d); background:var(--prj-soft); }
#ntWin .np-in:focus,
#ntWin .np-searchbox:focus-within{ box-shadow:0 0 0 3px rgba(232,98,45,.16); }
#ntWin .np-sdot.on .np-sn{ box-shadow:0 2px 6px rgba(232,98,45,.32); }
#ntWin .np-person-h,#ntWin .np-inum{ border-color:#f2c4ab; }
#ntWin .np-section.s1{ background:#fdf3ee; border-color:#f5d9c8; }

/* Βήμα 1: Απλό ή Σύνθετο */
.nt-type{ width:100%; display:flex; align-items:center; gap:12px; padding:13px 14px; margin-bottom:10px;
  border:1.5px solid var(--border); border-radius:12px; background:#fff; cursor:pointer;
  font-family:inherit; text-align:left; transition:border-color .15s,box-shadow .15s,background .15s; }
.nt-type:last-child{ margin-bottom:0; }
.nt-type:hover{ border-color:#f2c4ab; background:#fffaf7; }
.nt-type.sel{ border-color:var(--prj); background:var(--prj-soft); box-shadow:0 0 0 3px rgba(232,98,45,.14); }
.nt-tic{ width:38px; height:38px; border-radius:10px; flex:none; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--prj-d),var(--prj)); color:#fff; }
.nt-ttx{ flex:1; min-width:0; }
.nt-ttx b{ display:block; font-size:13.5px; color:var(--text); line-height:1.25; }
.nt-ttx small{ display:block; font-size:11px; color:var(--muted); line-height:1.4; margin-top:2px; }
.nt-tgo{ flex:none; color:var(--muted); font-size:19px; line-height:1; }

/* Επιλογή ατόμων ανά τμήμα (admin) */
.nt-dept{ border-top:1px solid var(--border); }
.nt-dept:first-child{ border-top:none; }
.nt-dhd{ width:100%; display:flex; align-items:center; gap:8px; padding:9px 12px; background:#f7f9fd;
  border:none; cursor:pointer; font-family:inherit; text-align:left; }
.nt-dhd:hover{ background:#f0f4fa; }
.nt-dhd b{ font-size:12.5px; color:var(--text); }
.nt-dhd small{ font-size:10.5px; color:var(--muted); }
.nt-dch{ flex:none; color:var(--muted); font-size:16px; line-height:1; transition:transform .16s; }
.nt-dept.open .nt-dch{ transform:rotate(90deg); }
.nt-dsel{ margin-left:auto; background:var(--prj-soft); color:var(--prj-d); font-weight:800;
  font-size:10.5px; padding:2px 8px; border-radius:20px; }
.nt-dbody{ display:none; }
.nt-dept.open .nt-dbody{ display:block; }
.nt-dbody .np-prow{ padding-left:26px; }
/* Στο «Απλό» οι δύο ενότητες είναι μαζί: κοντύτερη λίστα για να μη σκεπάζει
   το dock τα κουμπιά του footer σε οθόνες ~900px. */
#ntWin .nt-tight .np-people{ max-height:min(190px,24vh); }
/* Σε λειτουργία παραθύρων το dock περνά ΠΑΝΩ από τα popup (body.mdi .dock z-index:110).
   Ο wizard δεν φτάνει ποτέ τόσο χαμηλά ώστε να σκεπαστούν τα κουμπιά του footer —
   το σώμα του popup κυλά από μόνο του. Μόνο desktop: στο κινητό δεν υπάρχει επικάλυψη. */
@media (min-width:901px){ #ntWin{ max-height:min(90vh,calc(100vh - 200px)); } }
.np-prow input[type=radio]{ width:16px; height:16px; accent-color:var(--prj); flex:none; cursor:pointer; }
/* Αρχειοθετημένο έργο (57-project-archive): ουδέτερο γκρι, χωρίς το μπλε της ενέργειας */
.prj-card.arch{background:#f7f9fc;border-style:dashed;border-top:3px dashed #94a3b8}
.prj-card.arch:hover{border-color:#b8c3d3;box-shadow:0 6px 22px rgba(71,85,105,.14)}
/* Επαναφορά · Οριστική διαγραφή · Κλείσιμο: σε στενό παράθυρο τυλίγεται η ΣΕΙΡΑ, όχι το κείμενο */
.prj-modal .modal-f{flex-wrap:wrap}
.prj-modal .modal-f .btn{white-space:nowrap}
.prj-card.arch .prj-ic{background:#e3e8f0;color:#475569}
.prj-card.arch .prj-bar .mini-bar i{background:#94a3b8}
/* Επεξεργασία έργου (58-project-edit): νέα ανάθεση = γραμμή ατόμου + μικρή φόρμα από κάτω */
.pe-new{display:flex;flex-direction:column;border:1px solid #a6ddbc;border-radius:10px;overflow:hidden;background:#fff}
.pe-new .te-p.new{border:none;border-radius:0;border-bottom:1px solid #d6efe0}
.pe-newf{padding:6px 12px 12px;display:flex;flex-direction:column}
.pe-newf label{margin-top:8px}
.pe-newf .opt{font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0}

/* Γραμμές tasks μέσα στο παράθυρο έργου: όταν το ΠΑΡΑΘΥΡΟ είναι στενό (580px, ή μικρότερο μετά από resize),
   ίδια διάταξη με το κινητό — ο τίτλος σε ολόκληρη γραμμή, προθεσμία/πρόοδος από κάτω. Container query →
   ακολουθεί το πλάτος του παραθύρου, όχι της οθόνης. Μόνο desktop: στο κινητό το .prj-modal έχει width:auto
   (το containment θα το μηδένιζε) και τη διάταξη την κάνει ήδη το 36-mobile. */
@media (min-width:901px){
  .prj-modal .modal-b{container:prjb / inline-size}
  @container prjb (max-width:640px){
    .task-row{flex-wrap:wrap;gap:6px 12px;position:relative;padding-left:18px}
    .task-row .prio{position:absolute;left:8px;top:11px;bottom:11px;width:3px;height:auto}
    .task-row .task-main{flex:1 1 100%}
    .task-row .deadline{order:2}
    .task-row .prog-wrap{order:3;flex:1 1 auto;width:auto;display:flex;align-items:center;gap:8px;justify-content:flex-end}
    .task-row .prog-wrap .pct{flex:none}
    .task-row .prog-wrap .mini-bar{flex:1 1 auto;max-width:140px;min-width:60px}
  }
}
/* ---------- AI Βοηθός ---------- */
  /* Κουμπί «Ai» στο header — στρογγυλό, ζωντανό gradient & σκιά, ξεχωρίζει */
  #aiBtn{position:relative;width:40px;height:40px;flex:none;border-radius:50%;border:none;cursor:pointer;
    color:#fff;font-weight:800;font-size:15px;letter-spacing:.2px;display:grid;place-items:center;
    background:linear-gradient(135deg,#7c3aed,#4f46e5 45%,#06b6d4);
    box-shadow:0 2px 12px rgba(124,58,237,.55), inset 0 0 0 1px rgba(255,255,255,.18);
    transition:transform .15s ease, box-shadow .2s ease}
  #aiBtn:hover{transform:translateY(-1px) scale(1.06);box-shadow:0 5px 18px rgba(124,58,237,.72), inset 0 0 0 1px rgba(255,255,255,.3)}
  #aiBtn:active{transform:scale(.97)}
  #aiBtn span{font-style:normal;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.22)}
  #aiBtn::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid rgba(124,58,237,.5);opacity:0;pointer-events:none;animation:aiPulse 2.8s ease-out infinite}
  @keyframes aiPulse{0%{transform:scale(.92);opacity:.55}70%{transform:scale(1.4);opacity:0}100%{opacity:0}}

  /* Overlay (κλικ έξω = ελαχιστοποίηση) — κεντραρισμένο popup */
  .ai-ov{position:fixed;inset:0;z-index:120;background:rgba(12,17,30,.34);
    backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
    display:flex;align-items:center;justify-content:center;padding:20px;animation:aiOvIn .18s ease}
  @keyframes aiOvIn{from{opacity:0}to{opacity:1}}

  .ai-win{width:min(720px,94vw);height:min(680px,88vh);background:#fff;border-radius:20px;overflow:hidden;
    display:flex;flex-direction:column;
    box-shadow:0 26px 72px rgba(15,23,42,.42), 0 0 0 1px rgba(124,58,237,.12);
    animation:aiWinIn .24s cubic-bezier(.2,.85,.25,1)}
  @keyframes aiWinIn{from{transform:translateY(18px) scale(.98);opacity:0}to{transform:none;opacity:1}}

  .ai-head{display:flex;align-items:center;gap:11px;padding:12px 13px;color:#fff;
    background:linear-gradient(120deg,#4f46e5,#7c3aed 55%,#0891b2)}
  .ai-head-l{display:flex;align-items:center;gap:10px;min-width:0}
  .ai-head-t{display:flex;flex-direction:column;line-height:1.28;min-width:0}
  .ai-head-t b{font-size:14px}
  .ai-head-t span{font-size:10.5px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ai-x{margin-left:auto;width:30px;height:30px;flex:none;border:none;border-radius:9px;cursor:pointer;
    background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;transition:.15s}
  .ai-x:hover{background:rgba(255,255,255,.32)}

  .ai-orb{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;
    font-weight:800;font-size:14px;color:#fff;
    background:linear-gradient(135deg,#c084fc,#818cf8 50%,#22d3ee);
    box-shadow:0 2px 8px rgba(0,0,0,.22), inset 0 0 0 2px rgba(255,255,255,.4)}

  .ai-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;
    background:linear-gradient(180deg,#f7f8fc,#eef1f8)}

  .ai-msg{display:flex;gap:8px;max-width:100%}
  .ai-msg.out{justify-content:flex-end}
  .ai-msg.in{justify-content:flex-start}
  .ai-av{width:28px;height:28px;flex:none;align-self:flex-end;border-radius:50%;display:grid;place-items:center;
    font-weight:800;font-size:10.5px;color:#fff;
    background:linear-gradient(135deg,#c084fc,#818cf8 50%,#22d3ee);box-shadow:0 1px 5px rgba(99,102,241,.4)}
  .ai-bub{max-width:82%;padding:10px 13px;border-radius:15px;font-size:13px;line-height:1.5;
    word-wrap:break-word;overflow-wrap:anywhere}
  .ai-msg.out .ai-bub{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;
    border-bottom-right-radius:5px;box-shadow:0 2px 9px rgba(79,70,229,.32)}
  .ai-msg.in .ai-bub{background:#fff;color:var(--text);border:1px solid var(--border);
    border-bottom-left-radius:5px;box-shadow:var(--shadow)}
  .ai-bub.err{background:#fef2f2;border-color:#f3c9c7;color:#a12b28}
  .ai-bub>div{margin:0}
  .ai-bub>div+div{margin-top:5px}
  .ai-bub ul{margin:5px 0;padding-left:17px;display:flex;flex-direction:column;gap:3px}
  .ai-bub li{margin:0}
  .ai-bub b{font-weight:700}
  .ai-bub code{background:rgba(99,102,241,.12);padding:1px 5px;border-radius:5px;font-size:12px;
    font-family:ui-monospace,Menlo,Consolas,monospace}
  .ai-msg.out .ai-bub code{background:rgba(255,255,255,.22)}

  /* Clickable inline chip (μικρό έγχρωμο εικονίδιο μέσα στο κείμενο) */
  .ai-chip{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:7px;border:none;cursor:pointer;
    vertical-align:-6px;margin:0 2px;color:#fff;transition:.12s;box-shadow:0 1px 3px rgba(0,0,0,.22)}
  .ai-chip:hover{transform:translateY(-1px);filter:brightness(1.08)}
  .ai-chip svg{width:14px;height:14px}
  .ai-chip.task{background:linear-gradient(135deg,#e8622d,#832f0d)}
  .ai-chip.project{background:linear-gradient(135deg,#3b82f6,#1e3a8a)}
  .ai-chip.contact{background:linear-gradient(135deg,#2e6fd8,#123c74)}
  .ai-chip.person{background:linear-gradient(135deg,#66738a,#3a4557)}

  /* Clickable κάρτα (γραμμή = κωδικός) */
  .ai-card{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
    border:1px solid var(--border);border-radius:12px;background:#fff;padding:9px 11px;margin:6px 0;
    box-shadow:0 1px 3px rgba(21,36,59,.06);transition:.14s}
  .ai-card:hover{border-color:#c9b8f5;box-shadow:0 5px 16px rgba(124,58,237,.16);transform:translateY(-1px)}
  .ai-card-ic{width:34px;height:34px;flex:none;border-radius:9px;display:grid;place-items:center;color:#fff;overflow:hidden}
  .ai-card-ic svg{width:18px;height:18px}
  .ai-card.task .ai-card-ic{background:linear-gradient(135deg,#e8622d,#832f0d)}
  .ai-card.project .ai-card-ic{background:linear-gradient(135deg,#3b82f6,#1e3a8a)}
  .ai-card.contact .ai-card-ic{background:linear-gradient(135deg,#2e6fd8,#123c74)}
  .ai-card.person .ai-card-ic{background:transparent}
  .ai-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .ai-card-t{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ai-card-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ai-card-go{flex:none;color:#b7c0d0;font-size:19px;font-weight:700;line-height:1}
  .ai-card:hover .ai-card-go{color:#7c3aed}

  /* Badges μέσα σε κάρτες */
  .ai-b{flex:none;font-size:10.5px;font-weight:800;padding:3px 8px;border-radius:20px;background:#eef1f8;color:#4a5568;white-space:nowrap}
  .ai-b.high{background:#fdecea;color:#c0392b}
  .ai-b.done{background:#e2f5ea;color:#1e7e45}
  .ai-b.mid{background:#fff3df;color:#a5710b}
  .ai-b.proj{background:#e7effc;color:#1e3a8a}
  .ai-b.on{background:#e2f5ea;color:#1e7e45}

  /* Στήλη περιεχομένου στην πλευρά του βοηθού (bubble + κάρτες ενεργειών) */
  .ai-in-col{display:flex;flex-direction:column;gap:7px;max-width:86%;min-width:0}
  .ai-in-col .ai-bub{max-width:100%}
  .ai-in-col .ai-card{margin:0}

  /* Κάρτα ενέργειας (επιβεβαίωση αλλαγής) */
  .ai-act{border:1px solid #d9d0f5;border-radius:13px;background:linear-gradient(180deg,#fbfaff,#f4f1fe);
    padding:11px 12px;box-shadow:0 2px 8px rgba(124,58,237,.1)}
  .ai-act-top{display:flex;align-items:flex-start;gap:10px}
  .ai-act-ic{width:32px;height:32px;flex:none;border-radius:9px;display:grid;place-items:center;color:#fff;
    background:linear-gradient(135deg,#7c3aed,#4f46e5)}
  .ai-act.task .ai-act-ic{background:linear-gradient(135deg,#e8622d,#832f0d)}
  .ai-act.todo .ai-act-ic{background:linear-gradient(135deg,#eab545,#c67f0a)}
  .ai-act.note .ai-act-ic{background:linear-gradient(135deg,#5b8def,#2e6fd8)}
  .ai-act.report .ai-act-ic{background:linear-gradient(135deg,#34c17b,#1e9e5a)}
  .ai-act.notif .ai-act-ic{background:linear-gradient(135deg,#f5854f,#e8622d)}
  .ai-act-ic svg{width:17px;height:17px}
  .ai-act-tt{display:flex;flex-direction:column;gap:2px;min-width:0}
  .ai-act-tt b{font-size:12.5px;color:var(--text)}
  .ai-act-tt span{font-size:11.5px;color:var(--muted);line-height:1.45}
  .ai-act-f{display:flex;justify-content:flex-end;gap:8px;margin-top:11px}
  .ai-act-no{border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:9px;padding:7px 13px;
    font-size:12px;font-weight:600;cursor:pointer;transition:.14s}
  .ai-act-no:hover{border-color:#c8cfda;color:var(--text);background:#fafbfd}
  .ai-act-yes{border:none;border-radius:9px;padding:7px 15px;font-size:12px;font-weight:700;cursor:pointer;color:#fff;
    background:linear-gradient(135deg,#7c3aed,#4f46e5);box-shadow:0 2px 8px rgba(124,58,237,.4);transition:.14s}
  .ai-act-yes:hover{transform:translateY(-1px);filter:brightness(1.05)}
  /* Αποτέλεσμα (done/cancelled) */
  .ai-act.res{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#1e7e45;
    background:#f1fbf5;border-color:#c7ead4;box-shadow:none;padding:9px 12px}
  .ai-act.res.cancelled{color:var(--muted);background:#f6f7fa;border-color:var(--border)}
  .ai-act-rc{width:20px;height:20px;flex:none;border-radius:50%;display:grid;place-items:center;color:#fff;background:#9aa3b2}
  .ai-act-rc.ok{background:#1e9e5a}

  .ai-typing{display:flex;gap:5px;align-items:center;padding:12px 14px}
  .ai-typing span{width:7px;height:7px;border-radius:50%;background:#a3adc2;animation:aiBlink 1.2s infinite ease-in-out}
  .ai-typing span:nth-child(2){animation-delay:.18s}
  .ai-typing span:nth-child(3){animation-delay:.36s}
  @keyframes aiBlink{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}

  .ai-welcome{margin:auto;text-align:center;padding:12px;display:flex;flex-direction:column;align-items:center;gap:11px}
  .ai-welcome-orb{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;
    font-weight:800;font-size:25px;color:#fff;
    background:linear-gradient(135deg,#c084fc,#818cf8 50%,#22d3ee);
    box-shadow:0 8px 26px rgba(124,58,237,.42), inset 0 0 0 3px rgba(255,255,255,.55);
    animation:aiFloat 3.2s ease-in-out infinite}
  @keyframes aiFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
  .ai-welcome h3{font-size:16px;color:var(--text)}
  .ai-welcome p{font-size:12.5px;color:var(--muted);max-width:290px;line-height:1.5}
  .ai-sugs{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:2px}
  .ai-sug{border:1px solid var(--border);background:#fff;border-radius:20px;padding:7px 13px;
    font-size:12px;font-weight:600;color:#5b3fd4;box-shadow:var(--shadow);cursor:pointer;transition:.15s}
  .ai-sug:hover{border-color:#7c3aed;background:#f5f3ff;transform:translateY(-1px)}

  /* Αναδιπλούμενη μπάρα έτοιμων ερωτήσεων (κρύβεται/εμφανίζεται) */
  .ai-sugbar{max-height:0;overflow:hidden;transition:max-height .24s ease;background:#faf9ff}
  .ai-sugbar.open{max-height:260px;overflow-y:auto}
  .ai-sugbar-in{padding:11px 13px;border-top:1px solid var(--border)}
  .ai-sugbar-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;
    font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#7c5fe0}
  .ai-sugbar-x{border:none;background:none;color:var(--muted);cursor:pointer;display:flex;padding:2px;border-radius:6px}
  .ai-sugbar-x:hover{color:var(--text);background:rgba(124,58,237,.1)}
  .ai-sugbar .ai-sugs{justify-content:flex-start}

  .ai-sugtoggle{width:40px;height:40px;flex:none;border:1.5px solid var(--border);border-radius:50%;cursor:pointer;
    background:#fff;color:#7c3aed;display:grid;place-items:center;transition:.15s}
  .ai-sugtoggle:hover{border-color:#7c3aed;background:#f5f3ff}
  .ai-sugtoggle.on{background:#f5f3ff;border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.1)}

  /* Κουμπί μικροφώνου (υπαγόρευση) */
  .ai-mic{width:40px;height:40px;flex:none;border:1.5px solid var(--border);border-radius:50%;cursor:pointer;
    background:#fff;color:#66738a;display:grid;place-items:center;transition:.15s}
  .ai-mic:hover{border-color:#7c3aed;color:#7c3aed;background:#f5f3ff}
  .ai-mic.live{border-color:#e0393f;color:#fff;background:linear-gradient(135deg,#f0575c,#d0272d);
    box-shadow:0 0 0 0 rgba(224,57,63,.5);animation:aiMicPulse 1.4s infinite}
  @keyframes aiMicPulse{0%{box-shadow:0 0 0 0 rgba(224,57,63,.5)}70%{box-shadow:0 0 0 9px rgba(224,57,63,0)}100%{box-shadow:0 0 0 0 rgba(224,57,63,0)}}

  .ai-inrow{display:flex;align-items:flex-end;gap:9px;padding:11px 12px;border-top:1px solid var(--border);background:#fff}
  .ai-inrow textarea{flex:1;border:1.5px solid var(--border);border-radius:14px;padding:10px 13px;outline:none;
    font-size:13px;resize:none;max-height:120px;line-height:1.45;background:#fff;color:var(--text)}
  .ai-inrow textarea:focus{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.12)}
  .ai-send{width:40px;height:40px;flex:none;border:none;border-radius:50%;cursor:pointer;display:grid;place-items:center;
    color:#fff;background:linear-gradient(135deg,#7c3aed,#4f46e5 55%,#06b6d4);
    box-shadow:0 2px 10px rgba(124,58,237,.5);transition:.15s}
  .ai-send:hover{transform:scale(1.06)}
  .ai-send:active{transform:scale(.95)}

  /* Dock chip (σε αναμονή) — χρυσαφί/AI gradient icon */
  .dock-item .dock-ic.ai-dock{background:linear-gradient(135deg,#7c3aed,#4f46e5 50%,#06b6d4);
    color:#fff;font-weight:800;font-size:15px}

  @media(max-width:520px){
    .ai-ov{padding:0}
    /* dvh = πραγματικό ορατό ύψος (χωρίς τη μπάρα browser) → δεν κόβεται η γραμμή γραφής */
    .ai-win{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0}
    /* η γραμμή γραφής πάνω από το home indicator του iPhone */
    .ai-inrow{padding-bottom:calc(11px + env(safe-area-inset-bottom))}
  }
/* ---------- ΒΟΗΘΕΙΑ (Help) ----------
   Χρώμα ΟΥΔΕΤΕΡΟ γραφίτη επίτηδες: τα covers των άρθρων φέρνουν ήδη τα χρώματα
   όλων των modules· έγχρωμο πλαίσιο από πάνω θα τα έπνιγε. */
  :root{ --hlp-1:#111827; --hlp-2:#374151; }

  /* Hero — η αναζήτηση μόνη της, ευδιάκριτη */
  .hlp-hero{position:relative;overflow:hidden;border-radius:16px;padding:34px 20px 28px;text-align:center;
    background:linear-gradient(135deg,var(--hlp-1),var(--hlp-2));margin-bottom:6px}
  .hlp-hero::after{content:"";position:absolute;right:-70px;top:-90px;width:280px;height:280px;border-radius:50%;
    background:rgba(255,255,255,.045);pointer-events:none}
  .hlp-hero h1{font-size:26px;color:#fff;letter-spacing:-.3px}
  .hlp-hero p{font-size:13.5px;color:rgba(255,255,255,.68);margin-top:6px}
  .hlp-search{position:relative;z-index:1;display:flex;align-items:center;gap:12px;width:min(640px,100%);
    margin:20px auto 0;background:#fff;border-radius:15px;padding:13px 17px;
    box-shadow:0 18px 40px rgba(8,14,28,.28),0 2px 6px rgba(8,14,28,.18)}
  .hlp-search .i{color:#64748b;flex:none}
  .hlp-search input{flex:1;min-width:0;border:none;outline:none;background:none;font-size:17px;color:#1c2536}
  .hlp-search input::placeholder{color:#9aa3b0}
  .hlp-clr{border:none;background:none;color:var(--muted);display:flex;flex:none;cursor:pointer;padding:2px}
  .hlp-chips{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:14px}
  .hlp-chip{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#e6eaf1;
    border-radius:20px;padding:5px 13px;font-size:12px;font-weight:600;cursor:pointer}
  .hlp-chip:hover{background:rgba(255,255,255,.2)}
  .hlp-new{position:relative;z-index:1;margin-top:14px;border:1px solid rgba(255,255,255,.25);background:none;
    color:#fff;border-radius:9px;padding:6px 13px;font-size:12px;font-weight:700;cursor:pointer;
    display:inline-flex;align-items:center;gap:6px}

  /* Ενότητες */
  .hlp-sec{display:flex;align-items:center;gap:9px;margin:26px 0 12px}
  .hlp-sec h2{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:var(--muted)}
  .hlp-sec::after{content:"";flex:1;height:1px;background:var(--border)}
  .hlp-cnt{font-size:11px;font-weight:800;color:var(--blue);background:var(--blue-soft);border-radius:6px;padding:1px 6px;order:-1}
  .hlp-sec .hlp-cnt{order:0}

  /* Grid δημοφιλών */
  .hlp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px}
  .hlp-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;
    text-align:left;transition:transform .16s ease,box-shadow .16s ease;display:flex;flex-direction:column}
  .hlp-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(15,26,48,.13)}
  .hlp-card:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
  .hlp-cov{display:block;line-height:0}
  .hlp-cover{display:block;width:100%;height:auto;aspect-ratio:16/9}
  .hlp-card .b{padding:12px 14px 14px}
  .hlp-card .tp{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
  .hlp-card h3{font-size:14.5px;line-height:1.35;margin-top:5px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .hlp-card p{font-size:12px;color:var(--muted);line-height:1.5;margin-top:5px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .hlp-meta{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:11px;color:var(--muted)}
  .hlp-done{font-style:normal;color:var(--green);font-weight:700;display:inline-flex;align-items:center;gap:3px}

  /* Λίστα / αποτελέσματα */
  .hlp-list{display:flex;flex-direction:column;gap:3px}
  .hlp-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid transparent;
    background:none;border-radius:11px;padding:9px 11px;cursor:pointer}
  .hlp-row:hover{background:#fff;border-color:var(--border)}
  .hlp-row .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;flex:none}
  .hlp-row .tx{display:flex;flex-direction:column;min-width:0;flex:1}
  .hlp-row .t{font-size:13.5px;font-weight:700;color:var(--ink,#1c2536)}
  .hlp-row .s{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .hlp-row .go{color:var(--muted);font-size:17px;flex:none}
  .hlp-empty{background:#fff;border:1px dashed var(--border);border-radius:12px;padding:20px;
    text-align:center;color:var(--muted);font-size:13px}

  /* Κατηγορίες & σελιδοποίηση */
  .hlp-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
  .hlp-cats button{border:1px solid var(--border);background:#fff;border-radius:20px;padding:5px 12px;
    font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}
  .hlp-cats button.active{background:var(--hlp-1);border-color:var(--hlp-1);color:#fff}
  .hlp-pag{display:flex;justify-content:center;align-items:center;gap:5px;margin-top:22px}
  .hlp-pag button{min-width:32px;height:32px;border:1px solid var(--border);background:#fff;border-radius:9px;
    font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer}
  .hlp-pag button.active{background:var(--hlp-1);border-color:var(--hlp-1);color:#fff}
  .hlp-pag button:disabled{opacity:.4;cursor:default}

  /* Ai block */
  .hlp-ai{margin-top:18px;border:1px solid #e6ddfb;background:#faf7ff;border-radius:13px;padding:13px 14px}
  .hlp-ai-h{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:#7c3aed;margin-bottom:6px}

  /* Ανάγνωση άρθρου */
  .hlp-art{max-width:860px;margin:0 auto}
  /* Λωρίδα, όχι μισή οθόνη: στην ανάγνωση προτεραιότητα έχει το κείμενο.
     Το SVG έχει preserveAspectRatio="slice" → κόβει, δεν παραμορφώνει. */
  .hlp-artcov{border-radius:16px;overflow:hidden;line-height:0;margin-bottom:18px}
  .hlp-artcov .hlp-cover{aspect-ratio:auto;height:200px}
  .hlp-pop .hlp-artcov .hlp-cover{height:130px}
  .hlp-bc{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
  .hlp-art h1{font-size:27px;line-height:1.25;margin-top:7px;letter-spacing:-.3px}
  .hlp-lead{font-size:15px;color:var(--muted);line-height:1.6;margin-top:9px;max-width:68ch}
  /* 68ch: το μήκος γραμμής είναι ο #1 παράγοντας αναγνωσιμότητας */
  .hlp-body{max-width:68ch;font-size:16.5px;line-height:1.75;color:#243044;margin-top:22px}
  .hlp-body h2{font-size:19px;line-height:1.3;margin:30px 0 10px;color:#111827}
  .hlp-body h3{font-size:16px;margin:24px 0 8px;color:#111827}
  .hlp-body p{margin:0 0 15px}
  .hlp-body ul{margin:0 0 15px;padding-left:20px}
  .hlp-body li{margin-bottom:8px}
  .hlp-body code{background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:14px}
  .hlp-body a{color:var(--blue);font-weight:600}
  .hlp-tip{background:var(--blue-soft);border-left:3px solid var(--blue);border-radius:0 10px 10px 0;
    padding:12px 14px;margin:0 0 16px;font-size:15px;color:#2b4d86}

  /* Popup βοήθειας (contextual «?») — δικό του root, πάνω από όλα */
  .hlp-ov{z-index:1150}
  .hlp-modal{max-width:720px}
  .hlp-pop .hlp-artcov{margin-bottom:14px}
  .hlp-pop h1{font-size:21px}
  .hlp-pop .hlp-lead{font-size:14px}
  .hlp-pop .hlp-body{font-size:15px;line-height:1.7;margin-top:16px}
  .hlp-pop .hlp-body h2{font-size:17px;margin:22px 0 8px}
  .hlp-pop .hlp-tip{font-size:14px}

  /* Το «?» στις κεφαλίδες */
  .mh-help{margin-left:auto;border:none;background:rgba(255,255,255,.18);color:#fff;width:26px;height:26px;
    border-radius:50%;font-size:14px;font-weight:800;line-height:1;flex:none;cursor:pointer;display:grid;place-items:center}
  .mh-help:hover{background:rgba(255,255,255,.32)}
  .modal-h .mh-help + .x{margin-left:8px}
  .hlp-q{border:1px solid var(--border);background:#fff;color:var(--muted);width:26px;height:26px;border-radius:50%;
    font-size:14px;font-weight:800;line-height:1;flex:none;cursor:pointer;display:inline-grid;place-items:center;margin-left:8px}
  .hlp-q:hover{border-color:var(--blue);color:var(--blue)}

  /* Συντάκτης (God Mode) */
  .hlp-aud{display:flex;flex-wrap:wrap;gap:14px;margin-top:5px}
  .hlp-cb{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;margin:0}
  .hlp-cb input{width:auto}
  .hlp-warn{display:flex;align-items:flex-start;gap:7px;background:var(--amber-soft);border-radius:9px;
    padding:9px 11px;font-size:11.5px;color:#7a5104;line-height:1.45;margin-top:9px}
  .chat-head .ch-help{border:none;background:rgba(255,255,255,.16);color:inherit;width:22px;height:22px;
    border-radius:50%;font-size:12px;font-weight:800;line-height:1;margin-left:auto;cursor:pointer;
    display:grid;place-items:center;opacity:.75}
  .chat-head .ch-help:hover{opacity:1}
  .chat-head .ch-help + button{margin-left:6px}
  .calc-head .ch-help{margin-left:auto;background:rgba(255,255,255,.14);color:inherit;border:none;
    width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:800;line-height:1;cursor:pointer;
    display:grid;place-items:center;opacity:.7}
  .calc-head .ch-help:hover{opacity:1}
/* =====================================================================
   ΠΥΛΗ (Gate) — module 34-gate · steel/teal #0f3b52→#1d7a99
   Φάση 1: interface + λειτουργίες με mock δεδομένα (καμία βάση)
===================================================================== */
  /* Sidebar accordion (υπομενού Πύλης) */
  .nav-item .nav-caret{margin-left:auto;font-size:11px;opacity:.85}
  .nav-subwrap{display:flex;flex-direction:column;gap:2px;margin:2px 0 6px 10px;padding-left:8px;border-left:2px solid rgba(255,255,255,.14)}
  .nav-sub{display:flex;align-items:center;gap:9px;background:none;border:none;color:rgba(255,255,255,.82);font-size:13px;text-align:left;padding:7px 10px;border-radius:8px;cursor:pointer}
  .nav-sub svg.i{width:16px;height:16px;flex:none;color:#9fd0e6}
  .nav-sub:hover{background:rgba(255,255,255,.07)}
  .nav-sub.active{background:linear-gradient(90deg,#0f6e8c,#1d7a99);color:#fff;font-weight:700}
  .nav-sub.active svg.i{color:#fff}
  .nav-item.ni-gate svg.i{color:#7dd3fc}

  /* Stat cards */
  .gate-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
  @media(max-width:900px){.gate-stats{grid-template-columns:repeat(2,1fr)}}
  .gstat{display:flex;align-items:center;gap:13px;padding:16px;border-radius:14px;color:#fff;cursor:pointer;box-shadow:0 2px 10px rgba(21,36,59,.12);transition:.15s}
  .gstat:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(21,36,59,.18)}
  .gstat .gic{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;flex:none}
  .gstat .gl{font-size:12.5px;opacity:.9;font-weight:600}
  .gstat .gv{font-size:28px;font-weight:800;line-height:1.1}
  .gstat.g-in{background:linear-gradient(135deg,#3b82f6,#4f46e5)}
  .gstat.g-drv{background:linear-gradient(135deg,#fb923c,#ef4444)}
  .gstat.g-stf{background:linear-gradient(135deg,#34d399,#0d9488)}
  .gstat.g-active{outline:3px solid rgba(255,255,255,.6);outline-offset:2px}
  .gstat.g-clock{background:#fff;color:var(--ink);border:1px solid var(--border);cursor:default;justify-content:center}
  .gstat.g-clock .gic{background:var(--blue-soft);color:var(--blue)}
  .gstat.g-clock .gv{font-size:22px;color:var(--ink)}
  .gstat.g-clock .gl{color:var(--muted)}

  /* Add form */
  .gate-card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);margin-bottom:16px}
  .gate-card>.gc-h{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--border);font-weight:700;font-size:15px}
  .gate-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:14px 16px}
  @media(max-width:900px){.gate-grid{grid-template-columns:1fr 1fr}}
  .gate-grid label{display:block;font-size:12px;font-weight:700;margin-bottom:5px}
  .gate-grid input,.gate-grid select{width:100%;border:1px solid var(--border);border-radius:9px;padding:9px 11px;outline:none;background:#fff;font-size:13px}
  .gate-grid input:focus,.gate-grid select:focus{border-color:var(--blue)}
  .gate-foot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 16px 16px}
  .gate-qa{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
  .gate-qa .qa,.gqa-it .qa{background:#eef4ff;border:1px solid #cfe0fb;color:#1e40af;border-radius:8px;padding:6px 11px;font-size:12px;font-weight:600;cursor:pointer}
  .gate-qa .qa:hover,.gqa-it .qa:hover{background:#dfeaff}
  .gate-qa .qa.rsn,.gqa-it .qa.rsn{background:#f0fdfa;border-color:#bff0e6;color:#0d7a6b}
  .gqa-it .qa.rsn:hover{background:#dcfaf2}
  .qa-round{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;display:grid;place-items:center}
  .qa-round.del{border-color:#f3c7c5;color:var(--red)}
  .paralavi{background:none;border:none;color:var(--blue);font-weight:700;font-size:11px;cursor:pointer}
  /* Κάρτα «Γρήγορες Επιλογές» (ξεχωριστή, κάτω από τη φόρμα) */
  .gate-qa-card .gqa-body{padding:14px 16px;display:flex;flex-direction:column;gap:14px}
  /* Δύο στήλες (καρτέλα «Οδηγοί»): Οδηγοί | Πινακίδες */
  .gate-qa-card .gqa-body.two{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  .gqa-col{border:1px solid var(--border);border-radius:12px;background:var(--bg-soft,#f8fafc);padding:10px 11px 8px;min-width:0}
  .gqa-n{margin-left:auto;background:#e2e8f0;color:#475569;border-radius:20px;padding:1px 7px;font-size:10px}
  /* 3 καταχωρήσεις ανά σειρά, μετά συνεχίζει από κάτω */
  .gqa-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:300px;overflow-y:auto;margin-top:6px}
  .gqa-grid .gqa-empty{grid-column:1/-1}
  .gqa-it{display:flex;align-items:center;gap:1px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:3px 3px 3px 1px}
  .gqa-it:hover{border-color:#9ec5fb}
  .gqa-it.drag{opacity:.45}
  .gqa-it .ggrip{width:12px;flex:none;text-align:center;color:#94a3b8;font-size:11px;cursor:grab;line-height:1;user-select:none}
  .gqa-it .qa{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 7px;font-size:11.5px}
  /* «Εντός Χώρου»: τα κουμπιά μένουν το ένα δίπλα στο άλλο, με λαβή για σύρσιμο */
  .gqa-in{display:inline-flex;align-items:center;gap:1px}
  .gqa-in .ggrip{width:12px;flex:none;text-align:center;color:#94a3b8;font-size:11px;cursor:grab;line-height:1;user-select:none}
  .gate-wrap{width:100%}
  .gw-pick{position:relative;display:inline-flex}
  /* ΠΡΟΣΟΧΗ: το .glay δηλώνεται ΠΙΟ ΚΑΤΩ (grid, σταθερό 34px) — χρειάζεται
     διπλή κλάση για να υπερισχύσει, αλλιώς το κείμενο τυλίγεται κάτω από το εικονίδιο. */
  .glay.gw-btn{width:auto;height:30px;padding:0 10px;gap:6px;font-size:11.5px;color:var(--ink);
    display:inline-flex;align-items:center;white-space:nowrap;flex:none}
  .glay.gw-btn:hover{background:var(--bg)}
  .glay.gw-btn b{font-weight:800}
  .gw-car{color:var(--muted);font-size:9px}
  .gw-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;background:#fff;border:1px solid var(--border);
    border-radius:12px;box-shadow:0 14px 34px rgba(15,59,82,.22);padding:5px;min-width:232px}
  .gw-menu[hidden]{display:none}
  .gw-opt{display:flex;align-items:center;gap:9px;width:100%;border:0;background:none;cursor:pointer;
    padding:7px 9px;border-radius:9px;font-size:12px;color:var(--ink);text-align:left}
  .gw-opt:hover{background:var(--accent-soft)}
  .gw-opt.on{background:#e8f2fb}
  .gw-opt b{flex:none;font-weight:700}
  .gw-prev{flex:none;width:34px;height:15px;border:1px solid var(--border);border-radius:4px;background:#f1f5f9;
    display:grid;place-items:center;overflow:hidden}
  .gw-prev i{height:9px;background:linear-gradient(90deg,#1d7a99,#0f3b52);border-radius:2px;display:block}
  .gw-px{margin-left:auto;color:var(--muted);font-size:10.5px}
  .gw-ck{flex:none;width:14px;color:#1d7a99;display:grid;place-items:center}
  .gl-sep{width:1px;height:18px;background:var(--border);margin:0 4px}
  .g-ret{margin-left:6px;font-size:9.5px;font-weight:800;color:#0d7a6b;background:#e6f7f3;border-radius:20px;padding:2px 7px;letter-spacing:.2px}
  .g-mv{flex:none;width:16px;height:24px;border:1px solid var(--border);background:#fff;border-radius:6px;cursor:pointer;color:#475569;font-size:13px;line-height:1;display:grid;place-items:center;padding:0}
  .g-mv:hover:not(:disabled){background:#eef4ff;border-color:#9ec5fb}
  .g-mv:disabled{opacity:.3;cursor:default}
  .gqa-empty{padding:14px 8px;text-align:center;color:var(--muted);font-size:11.5px}
  .gqa-acts{display:flex;justify-content:center;gap:8px;padding-top:9px}
  @media(max-width:1180px){ .gqa-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
  @media(max-width:860px){ .gate-qa-card .gqa-body.two{grid-template-columns:1fr}
    .gqa-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
  @media(max-width:620px){ .gqa-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
  .gqa-lbl{width:100%;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;display:flex;align-items:center;gap:6px;margin-bottom:1px}
  .gate-col>*:last-child{margin-bottom:0}

  /* Table */
  .gate-tbl-wrap{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
  .gate-tbl-wrap>.gc-h{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--border);font-weight:700;font-size:15px}
  table.gate-tbl{width:100%;border-collapse:collapse}
  .gate-tbl th{text-align:left;padding:10px 14px;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border)}
  .gate-tbl td{padding:11px 14px;border-bottom:1px solid #f2f4f8;font-size:13px;vertical-align:middle}
  .gate-tbl tr:last-child td{border-bottom:none}
  .gate-tbl .g-name{font-weight:700}
  .gate-tbl .g-sub{font-size:12px;color:var(--muted)}
  .gelap{font-size:12px;font-weight:700;color:#0d7a6b}
  .g-acts{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
  .g-btn{border:none;border-radius:9px;padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;color:#fff;display:inline-flex;align-items:center;gap:6px}
  .g-btn.exit{background:#ef4444}.g-btn.exit:hover{background:#dc2626}
  .g-btn.enter{background:#3b82f6}.g-btn.enter:hover{background:#2563eb}
  .g-mini{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:#fff;cursor:pointer;display:grid;place-items:center;color:var(--muted)}
  .g-mini:hover{background:var(--bg)}
  .g-mini.del{color:var(--red);border-color:#f3c7c5}
  .g-mini.warn{color:#b8860b;border-color:#f0d98a}
  .gate-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}
  .g-chip{display:inline-block;font-size:10.5px;font-weight:800;border-radius:6px;padding:2px 8px}
  .g-chip.ent{background:#dcfce7;color:#166534}.g-chip.ex{background:#fee2e2;color:#991b1b}
  @media(max-width:760px){.gate-rep-ctrls{grid-template-columns:1fr!important}}

  /* Toggle διάταξης dashboard (στοίβα / δύο στήλες) — κάτω από το ρολόι, δεξιά */
  .gate-layout-bar{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:-2px 0 14px}
  .gl-lbl{font-size:12px;font-weight:700;color:var(--muted);margin-right:2px}
  .glay{width:34px;height:30px;border:1px solid var(--border);background:#fff;border-radius:9px;cursor:pointer;display:grid;place-items:center;color:var(--muted);transition:all .15s}
  .glay:hover{background:var(--bg);color:var(--ink)}
  .glay.active{background:linear-gradient(135deg,#0f3b52,#1d7a99);border-color:#0f3b52;color:#fff}

  /* Διάταξη δύο στηλών: αριστερά «Νέα Καταχώρηση», δεξιά ο πίνακας */
  .gate-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  .gate-cols>*{margin-bottom:0}
  @media(max-width:900px){.gate-cols{grid-template-columns:1fr}}

  /* Στατιστικά — οριζόντιες μπάρες (επισκέπτες/παραμονές/οδηγοί) */
  .gsb-list{display:flex;flex-direction:column;gap:9px}
  .gsb-row{display:grid;grid-template-columns:180px 1fr 78px;align-items:center;gap:12px}
  .gsb-name{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .gsb-track{height:16px;background:var(--bg);border-radius:8px;overflow:hidden}
  .gsb-fill{height:100%;border-radius:8px;min-width:4px;transition:width .3s}
  .gsb-val{font-size:12px;font-weight:700;color:var(--muted);text-align:right}
  @media(max-width:640px){.gsb-row{grid-template-columns:110px 1fr 60px;gap:8px}.gsb-name{font-size:11.5px}}

  /* Στατιστικά — κάθετες μπάρες (ώρες αιχμής) */
  .gpeak{overflow-x:auto}
  .gpeak-bars{display:flex;align-items:flex-end;gap:4px;height:220px;min-width:560px;padding-top:6px}
  .gpeak-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%}
  .gpeak-wrap{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}
  .gpeak-bar{width:70%;max-width:20px;border-radius:5px 5px 0 0;background:linear-gradient(180deg,#ef4444,#dc2626);min-height:0;transition:height .3s}
  .gpeak-h{font-size:10px;color:var(--muted);font-weight:600}

  /* Εκτύπωση αναφοράς: μόνο η περιοχή #gatePrintArea (όπως το no-print του εισαγόμενου app) */
  .gate-print-header{display:none}
  @media print{
    body.gate-printing *{visibility:hidden!important}
    body.gate-printing #gatePrintArea,body.gate-printing #gatePrintArea *{visibility:visible!important}
    body.gate-printing #gatePrintArea{position:absolute;left:0;top:0;width:100%;padding:12px}
    body.gate-printing .no-print{display:none!important}
    body.gate-printing .gate-print-header{display:block!important;font-size:17px;font-weight:800;text-align:center;margin-bottom:14px;color:#000}
    body.gate-printing .gate-tbl-wrap{border:none;box-shadow:none}
    body.gate-printing .gate-tbl th{color:#000}
  }
/* ================= ΣΗΜΕΙΩΣΕΙΣ — σελίδα «σημειωματάριο» (module 48) =================
   ΘΕΣΗ ΣΤΟ MANIFEST: ΠΡΙΝ το 36-mobile.css — όλο το mobile ζει εκεί και πρέπει
   να μπορεί να υπερισχύει (τα media queries ΔΕΝ ανεβάζουν ειδικότητα).
   Δύο προβολές: .nb-book (ευρετήριο + γραμμωμένη σελίδα) και .nb-wall (post-it).
   Το χρώμα του χαρτιού έρχεται ως inline μεταβλητές --pg/--ln/--ed/--tx. */
.nb-tools{display:flex;align-items:center;gap:10px;margin:12px 2px 14px}
.nb-srch{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--border);
  border-radius:11px;padding:9px 13px;flex:1;max-width:420px;color:var(--muted)}
.nb-srch input{border:none;outline:none;flex:1;font-size:13.5px;background:transparent;color:var(--text);font-family:inherit}
.nb-srch:focus-within{border-color:#2e6fd8;box-shadow:0 0 0 3px rgba(46,111,216,.14);color:#2e6fd8}

/* ---------- Προβολή «Σημειωματάριο» ----------
   Το ΕΥΡΕΤΗΡΙΟ είναι ΣΚΟΥΡΟ, με το ίδιο σώμα χρώματος με την αριθμομηχανή
   (`.calc` στο 05-calculator: linear-gradient(160deg,#1d2637,#131b2a), επιλογή #33415c).
   ΚΑΝΟΝΑΣ: κάθε χρώμα κειμένου μέσα στο `.nb-idx` γράφεται ΣΥΜΠΑΓΕΣ (όχι rgba πάνω
   στο gradient) ώστε η αντίθεση να είναι μετρήσιμη — τίτλος ≥7:1, προεπισκόπηση ≥4.5:1.
   Μην αφήσεις εκεί μέσα `var(--text)`/`var(--muted)`: είναι φτιαγμένα για ανοιχτό φόντο. */
.nb-book{display:grid;grid-template-columns:268px 34px minmax(0,1fr);background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 18px rgba(21,36,59,.09);min-height:520px}
.nb-idx{background:linear-gradient(160deg,#1d2637,#131b2a);border-right:1px solid rgba(255,255,255,.07);
  padding:8px;overflow-y:auto;max-height:70vh;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.nb-idx::-webkit-scrollbar{width:8px}
.nb-idx::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:8px}
.nb-idx::-webkit-scrollbar-track{background:transparent}
.nb-ir{display:flex;align-items:flex-start;gap:9px;padding:10px;border-radius:10px;cursor:pointer;
  border-left:3px solid transparent}
.nb-ir:hover{background:rgba(255,255,255,.07)}
.nb-ir.on{background:#33415c;border-left-color:#7ea6f5;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.nb-dot{width:10px;height:10px;border-radius:3px;flex:none;margin-top:3px;box-shadow:0 0 0 1px rgba(255,255,255,.22)}
.nb-irt{flex:1;min-width:0}
.nb-irt b{display:block;font-size:12.8px;font-weight:700;color:#eef2f9;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-irt small{display:block;font-size:10.5px;color:#a3b0c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-ir.on .nb-irt small{color:#c3cee1}
/* Το «κανένα αποτέλεσμα» ζει ΜΕΣΑ στη σκοτεινή στήλη — το var(--muted) εκεί πέφτει στο 3.3:1 */
.nb-idx .empty{color:#8e9bb2}

/* ---------- Η ΡΑΧΗ: σπιράλ ανάμεσα στο ευρετήριο και το χαρτί ----------
   ΔΙΚΗ ΤΗΣ ΣΤΗΛΗ στο grid (34px) — όχι επικάλυψη πάνω στο χαρτί: έτσι είναι
   ΑΔΥΝΑΤΟ να πέσει πάνω στους χαρακτήρες, ό,τι κι αν αλλάξει στο κείμενο.
   Οι κρίκοι ξεχειλίζουν 14px πάνω στο χαρτί (`right:-14px`) για να «τυλίγουν»
   την άκρη — μένουν 12px, πολύ πριν το κόκκινο περιθώριο (44px) και το
   κείμενο (60px). ΑΝ αλλάξεις το πλάτος της στήλης ή το overhang, ξαναμέτρησε:
   δεξιά άκρη κρίκου = 34 + 12 = 46px < 44px+padding χαρτιού. Φρουροί: tests/notes.js.
   ΒΗΜΑ 32px + background-position-y 14px = ΑΚΡΙΒΩΣ ο ρυθμός των γραμμών του χαρτιού. */
.nb-spiral{position:relative;z-index:2;
  background:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,.12) 48%,rgba(0,0,0,.34)),
             linear-gradient(160deg,#1d2637,#131b2a)}
/* σκιά του χαρτιού καθώς «γυρίζει» μέσα στη ράχη */
.nb-spiral::after{content:"";position:absolute;left:100%;top:0;bottom:0;width:16px;z-index:1;
  background:linear-gradient(90deg,rgba(28,20,4,.24),rgba(28,20,4,0));pointer-events:none}
/* οι μεταλλικοί κρίκοι */
.nb-spiral::before{content:"";position:absolute;top:0;bottom:0;left:0;right:-14px;z-index:2;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='54' height='32' viewBox='0 0 54 32'%3E%3Cdefs%3E%3ClinearGradient id='m' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f6f9ff'/%3E%3Cstop offset='.32' stop-color='%23c8d4e8'/%3E%3Cstop offset='.6' stop-color='%238492a8'/%3E%3Cstop offset='.82' stop-color='%235a6779'/%3E%3Cstop offset='1' stop-color='%238a97ab'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='46' cy='16' rx='3' ry='4.6' fill='%23000' opacity='.18'/%3E%3Cg transform='rotate(-24 29 16)'%3E%3Cellipse cx='29' cy='18.2' rx='17' ry='8.8' fill='none' stroke='%23070c14' stroke-opacity='.5' stroke-width='4.6'/%3E%3Cellipse cx='29' cy='16' rx='17' ry='8.8' fill='none' stroke='url(%23m)' stroke-width='3.5'/%3E%3Cpath d='M12 16a17 8.8 0 0 1 17-8.8' fill='none' stroke='%23fff' stroke-opacity='.8' stroke-width='1.15' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");
  background-size:54px 32px;background-repeat:repeat-y;background-position:0 14px;pointer-events:none}

.nb-page{display:flex;flex-direction:column;min-width:0;background:var(--pg,#fdf6d8)}
.nb-page.empty-page{background:#fff}
/* padding-left = overhang κρίκων (12px) + αέρας· δες «Η ΡΑΧΗ» παραπάνω */
.nb-ptop{display:flex;align-items:center;gap:9px;padding:10px 14px 10px 22px;border-bottom:1px solid var(--ed,#e3d38f);
  background:rgba(255,255,255,.35)}
.nb-date{border:1px solid var(--ed,#e3d38f);background:rgba(255,255,255,.6);border-radius:8px;
  padding:5px 9px;font-size:12px;font-family:inherit;color:var(--tx,#463a12);outline:none}
.nb-saved{font-size:11px;font-weight:700;color:#1e9e5a;opacity:0;transition:opacity .3s}
.nb-colors{margin-left:auto;display:flex;gap:5px}
.nb-cdot{width:19px;height:19px;border-radius:6px;border:1.5px solid rgba(0,0,0,.14);cursor:pointer;padding:0}
.nb-cdot.on{box-shadow:0 0 0 2.5px rgba(21,36,59,.35)}
.nb-back{display:none;border:1px solid var(--ed,#e3d38f);background:rgba(255,255,255,.6);border-radius:8px;
  width:30px;height:28px;place-items:center;cursor:pointer;color:var(--tx,#463a12);font-size:16px;line-height:1;font-family:inherit}
.nb-del{border:1px solid var(--ed,#e3d38f);background:rgba(255,255,255,.6);border-radius:8px;width:28px;height:28px;
  display:grid;place-items:center;cursor:pointer;color:var(--tx,#463a12)}
.nb-del:hover{background:#fdeaea;border-color:#e8a3a0;color:var(--red)}

/* Το «χαρτί»: κόκκινο περιθώριο + οριζόντιες γραμμές κάθε 32px */
.nb-sheet{flex:1;min-height:420px;padding:14px 26px 26px 0;
  background-image:linear-gradient(90deg,transparent 44px,rgba(198,40,40,.62) 44px,rgba(198,40,40,.62) 46px,transparent 46px),
    repeating-linear-gradient(var(--pg,#fdf6d8) 0 31px,var(--ln,#e8dca8) 31px 32px);
  background-position:0 14px}
.nb-title,.nb-text{width:100%;border:none;outline:none;background:transparent;font-family:inherit;
  color:var(--tx,#463a12);padding:0 0 0 60px;display:block}
.nb-title{font-size:19px;font-weight:800;line-height:32px;height:32px}
.nb-title::placeholder,.nb-text::placeholder{color:rgba(21,36,59,.32);font-weight:400}
.nb-text{font-size:14.5px;line-height:32px;min-height:352px;resize:none;overflow:hidden}
.nb-text:focus,.nb-title:focus{outline:none}

/* ---------- Προβολή «Τοίχος» (post-it) ---------- */
/* GRID, ΟΧΙ `column-count`: το multicol γεμίζει ΣΤΗΛΗ-ΣΤΗΛΗ (πάνω→κάτω, μετά
   επόμενη στήλη), άρα η 2η πιο πρόσφατη έπεφτε ΚΑΤΩ από την 1η. Το grid γεμίζει
   ΓΡΑΜΜΗ-ΓΡΑΜΜΗ → διαβάζεις όπως γράφεις: πάνω αριστερά η πιο πρόσφατη, δεξιά οι
   παλιότερες, μετά επόμενη γραμμή. ΜΗΝ το γυρίσεις πίσω σε multicol.
   `min(224px,100%)` και όχι σκέτο 224px: αλλιώς σε στενό δοχείο η στήλη δεν
   συρρικνώνεται και το πλέγμα ξεχειλίζει (02-pitfalls, «grid blowout»). */
.nb-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(224px,100%),1fr));
  gap:16px;align-items:start}
.nb-wall>.lz-host{display:contents}
.nb-wall .lz-sent{grid-column:1/-1;height:1px}
/* Ίδιο ύψος σε όλα: το πλέγμα μένει καθαρό και η σειρά ανάγνωσης αδιατάρακτη.
   Το πλήρες κείμενο είναι ένα κλικ μακριά (nbZoom), οπότε εδώ αρκεί προεπισκόπηση. */
.nb-pit{height:178px;display:flex;flex-direction:column;overflow:hidden;
  padding:12px 16px 13px;border-radius:3px 3px 12px 3px;
  background:var(--pg,#fdf6d8);color:var(--tx,#463a12);cursor:pointer;
  box-shadow:0 5px 16px rgba(21,36,59,.16);transition:transform .16s ease,box-shadow .16s ease}
.nb-pit:hover{transform:translateY(-3px) rotate(0deg)!important;box-shadow:0 10px 26px rgba(21,36,59,.22)}
.nb-pit.r0{transform:rotate(-.7deg)}.nb-pit.r1{transform:rotate(.5deg)}
.nb-pit.r2{transform:rotate(-.35deg)}.nb-pit.r3{transform:rotate(.8deg)}
.nb-pit b{display:block;font-size:14px;line-height:1.3;margin-bottom:6px;flex:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nb-pit p{margin:0;font-size:13px;line-height:1.5;white-space:pre-wrap;opacity:.85;flex:1;min-height:0;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
/* `margin-top:auto` → η ημερομηνία κάθεται ΠΑΝΤΑ στη βάση, ίδια γραμμή σε όλα τα χαρτάκια */
.nb-pdt{display:block;margin-top:auto;padding-top:9px;font-size:10.5px;font-weight:700;opacity:.6;flex:none}
.nb-pin{display:block;width:13px;height:13px;border-radius:50%;background:#d64541;
  margin:-9px 3px 7px auto;box-shadow:0 2px 4px rgba(0,0,0,.25),inset 0 -2px 3px rgba(0,0,0,.2)}

/* ---------- Post-it σε ΜΕΓΕΘΥΝΣΗ (κλικ στον τοίχο· module 48 `nbZoom`) ----------
   Είναι κανονικό popup (.overlay > .modal) → το εφέ ανοίγματος/κλεισίματος το
   δίνει το 37/38-transitions. ΜΗΝ βάλεις εδώ δικό σου `animation`: θα ξανάπαιζε
   μόλις φεύγει το `.tr-enter` (02-pitfalls, «δεύτερη ανανέωση» §3).
   Χωρίς γραμμές χαρτιού επίτηδες — post-it, όχι σελίδα σημειωματαρίου. */
.nbz-ov{background:rgba(10,17,31,.6)}
.nb-zoom{background:var(--pg,#fdf6d8);color:var(--tx,#463a12);
  width:min(560px,92vw);max-width:560px;max-height:min(78vh,660px);
  border-radius:4px 18px 18px 4px;
  /* ΒΑΘΙΑ σκιά τεσσάρων στρώσεων: σε λειτουργία παραθύρων (body.mdi, ≥901px) το
     overlay ΔΕΝ έχει σκούρο πέπλο επίτηδες (40-window.css — τα κλικ περνούν στη
     σελίδα), οπότε ΜΟΝΟ η σκιά ξεχωρίζει το χαρτί από το φόντο. Μη τη μειώσεις. */
  box-shadow:0 44px 92px -20px rgba(6,12,24,.55),0 18px 40px -8px rgba(6,12,24,.34),
             0 6px 14px rgba(6,12,24,.18),0 0 0 1px rgba(12,20,36,.10),
             inset 0 1px 0 rgba(255,255,255,.55)}
/* Το dock περνά πάνω από τα popup (40-window.css) — δικό του όριο σε desktop,
   αλλιώς το κάτω μέρος του χαρτιού κάθεται από κάτω του (02-pitfalls). */
@media(min-width:901px){ .nb-zoom{max-height:min(78vh,calc(100vh - 200px))} }
.nbz-top{display:flex;align-items:center;gap:9px;flex:none;padding:12px 14px 11px 16px;
  border-bottom:1px solid var(--ed,#e3d38f);background:rgba(255,255,255,.34)}
.nb-zoom .nb-colors{margin-left:auto}
.nbz-pin{width:15px;height:15px;border-radius:50%;background:#d64541;flex:none;
  box-shadow:0 3px 6px rgba(0,0,0,.3),inset 0 -3px 4px rgba(0,0,0,.22),inset 0 2px 3px rgba(255,255,255,.45)}
.nbz-x{border:1px solid var(--ed,#e3d38f);background:rgba(255,255,255,.6);border-radius:8px;
  width:28px;height:28px;display:grid;place-items:center;cursor:pointer;color:var(--tx,#463a12);flex:none}
.nbz-x:hover{background:rgba(255,255,255,.95)}
.nbz-sheet{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;padding:16px 20px 6px}
.nbz-title,.nbz-text{width:100%;border:none;outline:none;background:transparent;
  font-family:inherit;color:inherit}
.nbz-title{flex:none;font-size:20px;font-weight:800;line-height:1.3}
.nbz-title::placeholder,.nbz-text::placeholder{color:currentColor;opacity:.38;font-weight:400}
/* Ο ΚΥΛΙΝΔΡΟΣ είναι το ίδιο το textarea: πολύ κείμενο → κύλιση μέσα στο χαρτί,
   το κουτί δεν μεγαλώνει άλλο (min-height:0 στον γονέα, αλλιώς το flex δεν κόβει). */
.nbz-text{flex:1;min-height:clamp(160px,32vh,360px);resize:none;font-size:15px;line-height:1.65;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:var(--ed,#e3d38f) transparent}
.nbz-text::-webkit-scrollbar{width:9px}
.nbz-text::-webkit-scrollbar-thumb{background:var(--ed,#e3d38f);border-radius:9px}
.nbz-text::-webkit-scrollbar-track{background:transparent}
.nbz-foot{flex:none;display:flex;padding:0 18px 14px}
.nb-zoom .btn-ghost{background:rgba(255,255,255,.55);border-color:var(--ed,#e3d38f);color:var(--tx,#463a12)}
.nb-zoom .btn-ghost:hover{background:rgba(255,255,255,.92)}

/* ---------- Προεπισκόπηση στο popup επιβεβαίωσης διαγραφής ---------- */
.nb-cfm{background:var(--pg,#fdf6d8);border:1px solid var(--ed,#e3d38f);
  border-left:4px solid var(--ed,#e3d38f);border-radius:3px 10px 10px 3px;
  padding:12px 14px;color:var(--tx,#4a4020)}
.nb-cfm b{display:block;font-size:14px;line-height:1.35;margin-bottom:5px}
.nb-cfm p{margin:0 0 8px;font-size:12.5px;line-height:1.55;opacity:.85;
  word-break:break-word;overflow-wrap:anywhere}
.nb-cfm-dt{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;opacity:.7}
/* =====================================================================
   ΑΝΑΦΟΡΕΣ ΠΡΟΒΛΗΜΑΤΩΝ — χρώμα module: fuchsia #701a75 → #c026d3
   ΠΡΙΝ το 36-mobile.css στο manifest, ώστε τα @media του mobile να
   μπορούν να υπερισχύουν χωρίς !important.

   ΑΡΧΗ ΣΧΕΔΙΑΣΗΣ: η κατάσταση είναι ΤΟ ΕΝΑ πράγμα που πρέπει να φαίνεται
   αμέσως. Κάθε κατάσταση ορίζει τρεις μεταβλητές (--st γραμμή/κουκκίδα,
   --st-bg φόντο, --st-tx κείμενο) μέσω μιας κλάσης `s-*` στο δοχείο, και
   όλα τα επιμέρους (λωρίδα, chip, κεφαλίδα κάρτας) τις κληρονομούν.
   Έτσι μια αναφορά έχει ΠΑΝΤΑ το ίδιο χρώμα σε λίστα, κάρτα και πίνακα.
===================================================================== */
:root{ --bug1:#701a75; --bug2:#c026d3; --bug-soft:#fdf4ff; --bug-line:#f0abfc;
       --bug-ink:#86198f; --th-bg:#f0f3f9; }

/* ---------- Παλέτα καταστάσεων ---------- */
.s-new  {--st:#64748b;--st-bg:#eef2f7;--st-tx:#41506b}
.s-look {--st:#2563eb;--st-bg:#e5eefd;--st-tx:#1d4ed8}
.s-info {--st:#d97706;--st-bg:#fdf0d2;--st-tx:#8a4b06}
.s-fix  {--st:#7c3aed;--st-bg:#ece7fe;--st-tx:#6425d0}
.s-done {--st:#15803d;--st-bg:#d8f3e2;--st-tx:#15653a}
.s-no   {--st:#64748b;--st-bg:#e8ecf2;--st-tx:#41506b}

/* Ετικέτα κατάστασης. Το «Διορθώθηκε» είναι ΓΕΜΑΤΟ — δεν συγχέεται με τίποτε. */
.bg-sp{font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;display:inline-flex;
  align-items:center;gap:6px;white-space:nowrap;line-height:1.55;border:1px solid transparent}
.bg-sp:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.bg-sp.new {background:#eef2f7;color:#41506b;border-color:#dde4ee}
.bg-sp.look{background:#e5eefd;color:#1d4ed8;border-color:#c7dbfb}
.bg-sp.info{background:#fdf0d2;color:#8a4b06;border-color:#f5d99a}
.bg-sp.fix {background:#ece7fe;color:#6425d0;border-color:#d6cbfb}
.bg-sp.done{background:#15803d;color:#fff;border-color:#15803d;box-shadow:0 1px 4px rgba(21,128,61,.35)}
.bg-sp.done:before{background:#fff}
.bg-sp.no  {background:#e8ecf2;color:#41506b;border-color:#dde4ee}

.bg-imp{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
.bg-imp.i3{background:#d64541;box-shadow:0 0 0 3px rgba(214,69,65,.18)}
.bg-imp.i2{background:#e09c1a;box-shadow:0 0 0 3px rgba(224,156,26,.18)}
.bg-imp.i1{background:#1e9e5a;box-shadow:0 0 0 3px rgba(30,158,90,.18)}

.bg-tag{font-size:10.5px;font-weight:700;padding:2.5px 8px;border-radius:6px;white-space:nowrap;
  background:#eef2f7;color:#41506b;display:inline-block;border:1px solid #e1e7f0}
.bg-tag.idea{background:#fdf0d2;color:#8a4b06;border-color:#f5d99a}
.bg-tag.q{background:#e5eefd;color:#1d4ed8;border-color:#c7dbfb}
.bg-code{font-size:10.5px;font-weight:800;letter-spacing:.05em;color:#6b7a90;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* ---------- Φίλτρα ---------- */
.bg-fbar{display:flex;gap:7px;align-items:center;margin:14px 0 12px;flex-wrap:wrap}
.bg-chip{height:31px;padding:0 12px;border-radius:999px;background:#fff;border:1px solid var(--border);
  font-size:12.5px;font-weight:600;color:#41506b;display:inline-flex;align-items:center;gap:7px;
  transition:border-color .12s,background .12s}
.bg-chip .c{font-size:11px;font-weight:800;color:#5b6a80;background:#eef2f7;border-radius:999px;padding:1px 7px}
.bg-chip .sd{width:8px;height:8px;border-radius:50%;flex:none}
.bg-chip:hover{border-color:#b9c6d8;background:#fbfcfe}
/* Ενεργό φίλτρο = το χρώμα ΤΗΣ ΚΑΤΑΣΤΑΣΗΣ, όχι ένα γενικό navy: βλέπεις τι κοιτάς. */
.bg-chip.on{color:var(--st-tx);background:var(--st-bg);border-color:var(--st);
  box-shadow:0 0 0 1px var(--st) inset,0 2px 8px -3px var(--st)}
.bg-chip.on .c{background:rgba(255,255,255,.72);color:var(--st-tx)}
.bg-chip.st-new.on {--st:#64748b;--st-bg:#eef2f7;--st-tx:#33415c}
.bg-chip.st-look.on{--st:#2563eb;--st-bg:#e5eefd;--st-tx:#1d4ed8}
.bg-chip.st-info.on{--st:#d97706;--st-bg:#fdf0d2;--st-tx:#8a4b06}
.bg-chip.st-fix.on {--st:#7c3aed;--st-bg:#ece7fe;--st-tx:#6425d0}
.bg-chip.st-done.on{--st:#15803d;--st-bg:#d8f3e2;--st-tx:#15653a}
.bg-chip.st-no.on  {--st:#64748b;--st-bg:#e8ecf2;--st-tx:#33415c}
.bg-chip.all.on{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 2px 8px -3px rgba(21,36,59,.6)}
.bg-chip.all.on .c{background:rgba(255,255,255,.22);color:#fff}
.bg-fbar .gap{flex:1;min-width:8px}
.bg-seg{display:flex;background:#fff;border:1px solid var(--border);border-radius:9px;padding:2px}
.bg-seg button{padding:5px 12px;border-radius:7px;font-size:12.5px;font-weight:600;color:#5b6a80;
  border:none;background:none}
.bg-seg button.on{background:var(--navy);color:#fff}
.bg-srch{display:flex;align-items:center;gap:7px;height:31px;padding:0 12px;border-radius:999px;
  background:#fff;border:1px solid var(--border);color:#6b7a90}
.bg-srch input{border:none;outline:none;background:none;width:180px;font-size:12.5px;color:var(--text)}

/* ---------- Inbox (λίστα + νήμα) ---------- */
.bg-split{display:grid;grid-template-columns:346px minmax(0,1fr);gap:14px;align-items:start}
.bg-list{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;box-shadow:0 1px 2px rgba(21,36,59,.06),0 10px 26px -18px rgba(21,36,59,.35)}
.bg-lh{padding:10px 14px;border-bottom:1px solid var(--border);font-size:11px;font-weight:800;
  text-transform:uppercase;letter-spacing:.07em;color:#5b6a80;display:flex;align-items:center;gap:8px;
  background:#fafbfd}
.bg-ti{padding:12px 13px;border-bottom:1px solid #eef2f7;display:flex;gap:10px;width:100%;
  text-align:left;border-left:4px solid var(--st,transparent);background:none;position:relative}
.bg-ti:hover{background:#f8fafc}
.bg-ti.on{background:var(--bug-soft);box-shadow:inset 0 0 0 1px var(--bug-line)}
.bg-ti.s-done{border-left-color:#15803d}
.bg-ti .bd{flex:1;min-width:0;display:block}
.bg-ti .r1{display:flex;align-items:center;gap:7px;margin-bottom:4px}
.bg-ti .tt{display:block;font-size:13px;font-weight:600;color:var(--text);line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bg-ti.unread .tt{font-weight:800}
.bg-ti.unread{background:#fffdf7}
.bg-ti .r3{display:flex;align-items:center;gap:7px;margin-top:7px;font-size:11px;color:#5b6a80}
.bg-ti .tm{margin-left:auto;font-size:10.5px;color:#8593a8;white-space:nowrap}
.bg-udot{width:7px;height:7px;border-radius:50%;background:var(--red);flex:none;
  box-shadow:0 0 0 3px rgba(214,69,65,.16)}
.bg-mc{margin-left:auto;display:inline-flex;align-items:center;gap:3px;color:#5b6a80}

/* ---------- Λεπτομέρεια ---------- */
.bg-det{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:0 1px 2px rgba(21,36,59,.06),0 14px 34px -22px rgba(21,36,59,.5);
  display:flex;flex-direction:column;min-height:520px;overflow:hidden}
/* Η κεφαλίδα παίρνει ΑΠΑΛΟ τόνο της κατάστασης + έγχρωμη γραμμή στην κορυφή:
   καταλαβαίνεις σε τι στάδιο είσαι πριν καν διαβάσεις την ετικέτα. */
.bg-dh{padding:14px 16px;border-bottom:1px solid var(--border);border-top:3px solid var(--st,var(--border));
  background:linear-gradient(180deg,var(--st-bg,#fff) -40%,#fff 78%)}
.bg-dh .r1{display:flex;align-items:center;gap:9px;margin-bottom:8px;flex-wrap:wrap}
.bg-dh h3{font-size:16px;line-height:1.35;margin:0;color:var(--text)}
.bg-dh .r2{display:flex;align-items:center;gap:8px;font-size:12px;color:#5b6a80;
  margin-top:8px;flex-wrap:wrap}
.bg-stwrap{margin-left:auto;position:relative}
.bg-stbtn{height:32px;padding:0 12px;border-radius:9px;font-size:12.5px;font-weight:700;
  display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(0,0,0,.08);cursor:pointer}
.bg-stmenu{position:absolute;right:0;top:36px;background:#fff;border:1px solid var(--border);
  border-radius:11px;box-shadow:0 18px 44px -14px rgba(21,36,59,.45);padding:5px;z-index:40;min-width:214px}
.bg-stmenu button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 9px;border-radius:8px;
  border:none;background:none;font-size:12.5px;text-align:left;color:var(--text)}
.bg-stmenu button:hover{background:#f1f5f9}
.bg-acts{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.bg-gbtn{height:31px;padding:0 12px;border-radius:9px;border:1px solid var(--border);background:#fff;
  font-size:12px;font-weight:700;color:#33415c;display:inline-flex;align-items:center;gap:7px}
.bg-gbtn:hover{background:#f4f7fb;border-color:#b9c6d8}
.bg-gbtn .n{font-size:10.5px;font-weight:800;background:#eef2f7;color:#41506b;border-radius:999px;padding:1px 6px}
.bg-gbtn.on{background:var(--navy);border-color:var(--navy);color:#fff}
.bg-gbtn.on .n{background:rgba(255,255,255,.2);color:#fff}

/* ---------- Τεχνικά στοιχεία ---------- */
.bg-tech{margin:12px 16px 0;border:1px solid var(--border);border-radius:11px;overflow:hidden;background:#fafbfd}
.bg-tech summary{padding:9px 12px;font-size:12px;font-weight:700;color:#33415c;cursor:pointer;
  display:flex;align-items:center;gap:8px;list-style:none}
.bg-tech summary::-webkit-details-marker{display:none}
.bg-tech summary .er{margin-left:auto;font-size:11px;font-weight:800;color:#fff;background:#c0322e;
  padding:2px 9px;border-radius:999px}
.bg-techb{padding:0 12px 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}
.bg-kv{background:#fff;border:1px solid var(--border);border-radius:9px;padding:7px 10px;min-width:0}
.bg-kv .k{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#7a879c;font-weight:800}
.bg-kv .v{font-size:12px;color:var(--text);margin-top:2px;word-break:break-word;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.bg-crumbs{grid-column:1/-1;background:#fff;border:1px solid var(--border);border-radius:9px;padding:8px 10px}
.bg-crumb{font-size:11px;font-family:ui-monospace,Menlo,monospace;color:#41506b;background:#eef2f7;
  border-radius:6px;padding:2px 7px;display:inline-block;margin:2px 3px 0 0}
.bg-crumb.err{background:#fde3e2;color:#a3231f;font-weight:700}

/* ---------- Συζήτηση: ΞΕΧΩΡΙΣΤΗ ζώνη, όχι συνέχεια της καρτέλας ----------
   Δικό της φόντο, δική της κεφαλίδα και εσωτερική σκιά στην κορυφή. */
.bg-thwrap{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--th-bg);
  border-top:1px solid var(--border)}
.bg-thh{display:flex;align-items:center;gap:8px;padding:9px 16px;font-size:11px;font-weight:800;
  text-transform:uppercase;letter-spacing:.07em;color:#41506b;background:#e4e9f2;
  border-bottom:1px solid #d3dbe8}
.bg-thh .n{margin-left:auto;background:#fff;border:1px solid var(--border);border-radius:999px;
  padding:1px 8px;font-size:11px;letter-spacing:0;color:#41506b}
.bg-thread{flex:1;padding:15px 16px;display:flex;flex-direction:column;gap:12px;overflow:auto;
  max-height:430px;box-shadow:inset 0 7px 9px -9px rgba(21,36,59,.35)}
.bg-msg{display:flex;gap:9px;max-width:86%}
.bg-msg .bub{background:#fff;border:1px solid #e1e7f0;border-radius:13px 13px 13px 4px;padding:9px 12px;
  font-size:13px;color:var(--text);line-height:1.55;white-space:pre-wrap;word-break:break-word;
  box-shadow:0 1px 2px rgba(21,36,59,.06)}
.bg-msg .who{font-size:10.5px;color:#6b7a90;margin-bottom:4px;font-weight:700}
.bg-msg.me{margin-left:auto;flex-direction:row-reverse}
.bg-msg.me .bub{background:#f7e6fb;border-color:#eec2f6;border-radius:13px 13px 4px 13px;color:#5b1466}
.bg-msg.me .who{text-align:right}
.bg-msg.int .bub{background:#fff8e6;border:1px dashed #e0a90c;color:#6b3d05}
.bg-msg.int .who{color:#8a4b06}
.bg-sys{align-self:center;font-size:11px;color:#41506b;background:#fff;border:1px solid var(--border);
  border-radius:999px;padding:4px 13px;display:inline-flex;align-items:center;gap:6px;text-align:center;
  box-shadow:0 1px 2px rgba(21,36,59,.05)}
.bg-sys b{color:var(--text);font-weight:800}

/* ---------- Εικόνες ---------- */
.bg-shots{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.bg-shot{width:132px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff;
  padding:0;display:block;text-align:left}
.bg-shot img{width:100%;height:84px;object-fit:cover;display:block;background:#eef2f7}
.bg-shot .n{font-size:10.5px;color:#5b6a80;padding:5px 7px;display:block;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.bg-shot:hover{border-color:var(--bug-line)}
.bg-drop{border:2px dashed var(--bug-line);border-radius:11px;padding:14px;text-align:center;
  background:var(--bug-soft);color:var(--bug-ink);cursor:pointer;display:block;width:100%}
.bg-drop .t{display:block;font-size:12.5px;font-weight:700;margin-top:4px}
.bg-drop .s{display:block;font-size:11px;color:#9d2ba9;margin-top:3px}
.bg-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.bg-th{position:relative;width:104px;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:#fff}
.bg-th img{width:100%;height:66px;object-fit:cover;display:block}
.bg-th .sz{font-size:10px;color:#5b6a80;padding:3px 6px;display:block}
.bg-th .rm{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:none;
  background:rgba(15,23,42,.72);color:#fff;display:grid;place-items:center;line-height:1}

/* ---------- Σύνθεση απάντησης ---------- */
.bg-comp{border-top:1px solid #dfe5ee;padding:12px 16px;background:#fff}
.bg-qr{display:flex;gap:6px;margin-bottom:9px;flex-wrap:wrap}
.bg-qr button{font-size:11.5px;padding:5px 11px;border-radius:999px;background:#f4f7fb;
  border:1px solid var(--border);color:#33415c;font-weight:600}
.bg-qr button:hover{background:#e9eef6;border-color:#b9c6d8}
.bg-cbox{border:1px solid #d5dde9;border-radius:11px;padding:10px 12px;background:#fff;
  transition:border-color .12s,box-shadow .12s}
.bg-cbox:focus-within{border-color:var(--bug2);box-shadow:0 0 0 3px rgba(192,38,211,.13)}
.bg-cbox textarea{width:100%;border:none;outline:none;resize:vertical;min-height:54px;font-size:13px;
  color:var(--text);background:none;line-height:1.55}
.bg-crow{display:flex;align-items:center;gap:9px;margin-top:8px;flex-wrap:wrap}
.bg-tgl{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#5b6a80;font-weight:600;
  border:none;background:none;padding:0}
.bg-tgl .sw{width:32px;height:18px;border-radius:999px;background:#d9e0ea;position:relative;flex:none;
  transition:background .15s}
.bg-tgl .sw:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.bg-tgl.on .sw{background:var(--amber)}
.bg-tgl.on .sw:after{transform:translateX(14px)}
.bg-tgl.on{color:#8a4b06}
.bg-send{margin-left:auto;height:33px;padding:0 17px;border-radius:9px;color:#fff;font-weight:700;
  font-size:12.5px;border:none;background:linear-gradient(135deg,var(--bug1),var(--bug2));
  display:inline-flex;align-items:center;gap:7px;box-shadow:0 3px 12px -4px rgba(112,26,117,.8)}
.bg-send:hover{filter:brightness(1.07)}

/* ---------- Πίνακας (kanban) ---------- */
.bg-kb{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin-top:4px}
.bg-kcol{background:#f2f5f9;border:1px solid var(--border);border-radius:12px;padding:9px;min-height:220px}
.bg-kh{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.04em;padding:2px 3px 9px}
.bg-kh .d{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.bg-kh .n{margin-left:auto;background:#fff;border:1px solid var(--border);border-radius:999px;
  padding:0 7px;font-size:11px;color:#41506b}
.bg-kc{background:#fff;border:1px solid var(--border);border-top:3px solid;border-radius:10px;
  padding:9px 10px;margin-bottom:8px;width:100%;text-align:left;display:block;
  box-shadow:0 1px 2px rgba(21,36,59,.07)}
.bg-kc:hover{box-shadow:0 4px 14px -6px rgba(21,36,59,.4)}
.bg-kc .t{display:block;font-size:12.5px;font-weight:600;line-height:1.35;margin:4px 0 7px;color:var(--text)}
.bg-kc .f{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:10.5px;color:#5b6a80}

/* ---------- Πλευρά χρήστη ---------- */
.bg-mine{display:flex;flex-direction:column;gap:12px}
.bg-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--st,var(--border));
  border-radius:var(--radius);padding:14px 16px;
  box-shadow:0 1px 2px rgba(21,36,59,.06),0 10px 26px -20px rgba(21,36,59,.45)}
.bg-card.open{box-shadow:0 1px 2px rgba(21,36,59,.08),0 18px 40px -22px rgba(21,36,59,.6)}
/* Ολοκληρωμένη: πράσινη λωρίδα + απαλό πράσινο πλαίσιο. Δεν χρειάζεται να διαβάσεις τίποτα. */
.bg-card.s-done{border-color:#b7e3c8;border-left-color:#15803d;background:linear-gradient(180deg,#f4fcf7,#fff 70px)}
.bg-card .r1{display:flex;align-items:center;gap:9px;margin-bottom:6px;flex-wrap:wrap}
.bg-card h4{font-size:14.5px;margin:0;line-height:1.35;color:var(--text)}
.bg-card .meta{font-size:11.5px;color:#5b6a80;margin-top:4px}
.bg-cfoot{margin-top:12px;padding-top:11px;border-top:1px dashed #dfe5ee;display:flex;gap:8px;flex-wrap:wrap}

/* Stepper: παχύτερες μπάρες, μεγαλύτερες κουκκίδες, ξεκάθαρο «τρέχον» */
.bg-step{display:flex;align-items:flex-start;margin:14px 0 2px;max-width:490px}
.bg-step .n{display:flex;flex-direction:column;align-items:center;gap:6px;width:78px;flex:none}
.bg-step .d{width:17px;height:17px;border-radius:50%;background:#dbe2ec;display:grid;place-items:center;color:#fff}
.bg-step .d.ok{background:#15803d}
.bg-step .d.cur{background:#7c3aed;box-shadow:0 0 0 4px rgba(124,58,237,.2)}
.bg-step .lb{font-size:10.5px;color:#7a879c;font-weight:600;text-align:center;line-height:1.2}
.bg-step .n.act .lb{color:var(--text);font-weight:700}
.bg-step .bar{flex:1;height:3px;border-radius:2px;background:#dbe2ec;margin:7px -8px 0}
.bg-step .bar.ok{background:#15803d}

.bg-ask{background:#fdf0d2;border:1px solid #f0cf80;border-radius:11px;padding:10px 12px;
  display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.bg-ask .tx{font-size:12.5px;color:#7a4205;font-weight:700}
.bg-ask .b{margin-left:auto;height:30px;padding:0 14px;border-radius:8px;background:#b45309;
  color:#fff;font-weight:700;font-size:12px;border:none}
.bg-note{display:flex;align-items:center;gap:9px;border-radius:10px;padding:9px 12px;
  font-size:12.5px;margin-top:12px;flex-wrap:wrap;font-weight:600}
.bg-note.blue{background:#e5eefd;border:1px solid #bcd3f8;color:#1d4ed8}
.bg-note.green{background:#d8f3e2;border:1px solid #a6ddbc;color:#15653a}
.bg-note .b{margin-left:auto;height:29px;padding:0 13px;border-radius:8px;background:var(--blue);
  color:#fff;font-weight:700;font-size:11.5px;border:none}

/* Η συζήτηση μέσα στην κάρτα του χρήστη: βυθισμένο πάνελ, ΟΧΙ συνέχεια της κάρτας */
.bg-conv{margin:12px -16px -14px;border-top:1px solid var(--border);border-radius:0 0 8px 8px;
  overflow:hidden;background:var(--th-bg)}
.bg-conv .bg-thread{max-height:340px}
.bg-conv .bg-thwrap{border-top:none}

/* ---------- Φόρμα ---------- */
.bg-opts{display:grid;gap:8px}
.bg-opt{border:1px solid #d5dde9;border-radius:10px;padding:10px 12px;display:flex;align-items:center;
  gap:10px;font-size:13px;color:var(--text);text-align:left;width:100%;background:#fff}
.bg-opt:hover{border-color:#b9c6d8;background:#fbfcfe}
.bg-opt .rd{width:16px;height:16px;border-radius:50%;border:2px solid #b9c6d8;flex:none}
.bg-opt.on{border-color:var(--bug2);background:var(--bug-soft);box-shadow:0 0 0 1px var(--bug2) inset}
.bg-opt.on .rd{border-color:var(--bug2);background:var(--bug2);box-shadow:inset 0 0 0 3px #fff}
.bg-opt .d{display:block;font-size:11px;color:#5b6a80;margin-top:1px}
.bg-opt>span:last-child>span{display:block}
.bg-types{display:flex;gap:8px}
.bg-types .bg-opt{flex:1;justify-content:center;gap:6px}
.bg-auto{background:#f4f7fb;border:1px solid var(--border);border-radius:10px;padding:10px 12px;
  display:flex;align-items:center;gap:9px;font-size:11.5px;color:#41506b}
.bg-auto .ck{width:16px;height:16px;border-radius:5px;background:var(--green);color:#fff;
  display:grid;place-items:center;flex:none}
.bg-auto .lnk{margin-left:auto;color:var(--blue);font-weight:700;white-space:nowrap;border:none;
  background:none;font-size:11.5px}

/* ---------- Στατιστικά hero ---------- */
.bg-stats{display:flex;gap:9px;flex-wrap:wrap}
.bg-stat{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:11px;
  padding:8px 14px;min-width:94px;color:#fff}
.bg-stat b{display:block;font-size:20px;line-height:1.15;font-weight:800}
.bg-stat span{font-size:10.5px;opacity:.9}
.bg-stat.alert{background:#fff;color:var(--bug1);border-color:#fff;box-shadow:0 4px 14px -6px rgba(0,0,0,.5)}
.bg-stat.alert span{opacity:.75}

@media(max-width:1200px){ .bg-split{grid-template-columns:1fr} .bg-kb{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ---- Αδιάβαστες: να ξεχωρίζουν αμέσως (λίστα, chips, κάρτα) ---- */
.bg-ti.unread{background:#fff1f2;box-shadow:inset 3px 0 0 #e11d48}
.bg-ti.unread:hover{background:#ffe4e8}
.bg-ti.unread.on{background:#ffe4e8;box-shadow:inset 3px 0 0 #e11d48,inset 0 0 0 1px #fda4af}
.bg-ti.unread .tt{font-weight:800;color:#0f172a}
.bg-ti.unread .tm{color:#be123c;font-weight:700}
.bg-new{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:#e11d48;color:#fff;
  font-size:10.5px;font-weight:800;line-height:17px;white-space:nowrap;box-shadow:0 2px 6px -2px rgba(225,29,72,.6)}
.bg-new svg{width:10px;height:10px}
.bg-chip.un svg{width:12px;height:12px}
.bg-chip.un.hot{border-color:#fda4af;color:#be123c;background:#fff1f2}
.bg-chip.un.hot .c{background:#e11d48;color:#fff}
.bg-chip.un.on,.bg-chip.un.on.hot{background:#e11d48;color:#fff;border-color:#e11d48;box-shadow:0 2px 8px -3px rgba(225,29,72,.7)}
.bg-chip.un.on .c,.bg-chip.un.on.hot .c{background:#fff;color:#e11d48}
.bg-ti .r3{flex-wrap:wrap;row-gap:5px}
.bg-chip{position:relative}
.bg-chip .un-dot{position:absolute;top:-3px;right:-3px;width:10px;height:10px;border-radius:50%;background:#e11d48;border:2px solid #fff}
button.bg-stat{font:inherit;color:inherit;cursor:pointer;text-align:left}
button.bg-stat.alert{color:var(--bug1)}
/* Τικ ανάγνωσης στο νήμα (ίδιο .tick με το chat) */
.bg-msg .who .tick{margin-left:5px;vertical-align:-3px}
.bg-msg .who .tick:not(.read){color:#6b7a90;opacity:.75}

/* ---- Επιλεγμένη αναφορά: αυτή που βλέπεις ΔΕΞΙΑ — να ξεχωρίζει αμέσως (και από τις αδιάβαστες) ---- */
.bg-ti.on,.bg-ti.unread.on{background:linear-gradient(90deg,#f5d0fe 0%,#f5d0fe 12%,#fae8ff 100%);
  border-left-color:var(--bug2);box-shadow:inset 6px 0 0 var(--bug2),inset 0 0 0 2px var(--bug2),0 10px 22px -10px rgba(192,38,211,.6);z-index:1;padding-right:30px}
.bg-ti.on:hover,.bg-ti.unread.on:hover{background:linear-gradient(90deg,#f0abfc 0%,#f5d0fe 12%,#fae8ff 100%)}
.bg-ti.on .tt{color:var(--bug1);font-weight:800}
.bg-ti.on .bg-code{color:var(--bug2)}
.bg-ti.on::after{content:"›";position:absolute;right:10px;top:50%;translate:0 -50%;font-size:26px;font-weight:700;line-height:1;color:var(--bug2)}
/* =====================================================================
   ΕΠΕΞΕΡΓΑΣΙΑ & ΑΡΧΕΙΟΘΕΤΗΣΗ TASK (module 50) — πορτοκαλί οικογένεια task.
   ΠΡΙΝ το 36-mobile.css στο manifest, ώστε τα @media να υπερισχύουν.
===================================================================== */
.te-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.te-prio{display:flex;gap:6px}
.te-pr{flex:1;height:34px;border-radius:9px;border:1px solid #d5dde9;background:#fff;
  font-size:12.5px;font-weight:700;color:#41506b}
.te-pr:hover{border-color:#b9c6d8}
.te-pr.p-high.on{background:#fde3e2;border-color:#d64541;color:#a3231f}
.te-pr.p-med.on {background:#fdf0d2;border-color:#e09c1a;color:#8a4b06}
.te-pr.p-low.on {background:#d8f3e2;border-color:#1e9e5a;color:#15653a}

.te-sec{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;color:#5b6a80;margin:18px 0 8px;padding-top:14px;border-top:1px solid var(--border)}
.te-sec .c{background:#eef2f7;border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:0;color:#41506b}
.te-sec.danger{color:#8f3a12}

.te-people{display:flex;flex-direction:column;gap:7px}
.te-p{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--border);
  border-radius:10px;background:#fff}
.te-p .nm{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--text);display:flex;flex-direction:column}
.te-p .nm .dp{font-size:10.5px;font-weight:500;color:#5b6a80}
.te-p.new{border-color:#a6ddbc;background:#f4fcf7}
.te-p.out{border-color:#f0b8b6;background:#fdf5f5}
.te-p.out .nm{text-decoration:line-through;color:#8a5754}
.te-pg{font-size:11.5px;font-weight:800;color:#5b6a80;background:#eef2f7;border-radius:999px;padding:2px 9px}
.te-pg.run{background:#fdf0d2;color:#8a4b06}
.te-pg.ok{background:#15803d;color:#fff}
.te-badge{font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 9px}
.te-badge.new{background:#d8f3e2;color:#15653a}
.te-badge.out{background:#fde3e2;color:#a3231f}
.te-x{width:26px;height:26px;border-radius:8px;border:1px solid var(--border);background:#fff;
  display:grid;place-items:center;color:#5b6a80;flex:none}
.te-x:hover{background:#fde3e2;border-color:#f0b8b6;color:#a3231f}
.te-lock{width:26px;height:26px;display:grid;place-items:center;color:#8593a8;flex:none}

.te-addbtn{margin-top:9px;height:36px;width:100%;border-radius:10px;border:1.5px dashed #c3cddc;
  background:#fbfcfe;color:#41506b;font-size:12.5px;font-weight:700;display:flex;align-items:center;
  justify-content:center;gap:7px}
.te-addbtn:hover{border-color:var(--accent);color:var(--accent);background:#fff7f3}
.te-picker{margin-top:9px;border:1px solid var(--border);border-radius:11px;overflow:hidden;background:#fff}
.te-psearch{display:flex;align-items:center;gap:8px;padding:8px 11px;border-bottom:1px solid var(--border);
  background:#fafbfd;color:#6b7a90}
.te-psearch input{flex:1;border:none;outline:none;background:none;font-size:12.5px;color:var(--text)}
.te-plist{max-height:210px;overflow:auto}
.te-pick{display:flex;align-items:center;gap:9px;width:100%;padding:8px 11px;border:none;background:none;
  border-bottom:1px solid #eef2f7;text-align:left;color:#5b6a80}
.te-pick:last-child{border-bottom:none}
.te-pick:hover{background:#fff7f3}
.te-pick .nm{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--text);display:flex;flex-direction:column}
.te-pick .nm .dp{font-size:10.5px;font-weight:500;color:#5b6a80}
.te-hint{display:flex;align-items:flex-start;gap:7px;font-size:11px;color:#5b6a80;margin-top:9px;line-height:1.5}

.te-arch{display:flex;align-items:flex-start;gap:12px;border:1px solid #f0cbb4;background:#fff8f4;
  border-radius:11px;padding:11px 13px}
.te-arch .tx{flex:1;min-width:0;font-size:12px;color:#7a3d13;line-height:1.55}
.te-arch .tx b{display:block;font-size:13px;color:#6b2408;margin-bottom:2px}
.te-archbtn{flex:none;height:33px;padding:0 14px;border-radius:9px;border:1px solid #c86a3a;background:#fff;
  color:#8f3a12;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;gap:7px}
.te-archbtn:hover{background:#8f3a12;color:#fff;border-color:#8f3a12}
.te-ul{margin:0 0 4px 18px;font-size:12.5px;color:#41506b;line-height:1.75}

/* ---------- Το ΑΡΧΕΙΟΘΕΤΗΜΕΝΟ task μέσα στο popup ---------- */
.tk-archbar{display:flex;align-items:flex-start;gap:11px;background:#f4f6fa;border:1px solid #d5dde9;
  border-left:4px solid #64748b;border-radius:11px;padding:11px 13px;margin-bottom:13px;color:#41506b}
.tk-archbar b{display:block;font-size:13.5px;color:#33415c}
.tk-archbar span{font-size:12px;line-height:1.55}
.tk-lockrow{display:flex;align-items:center;gap:8px;justify-content:center;padding:12px;font-size:12px;
  color:#5b6a80;background:#f4f6fa;border-top:1px solid var(--border)}
.chip.arch{background:#e3e8f0;color:#33415c;border:1px solid #cfd8e6}
.tk-pp{font-size:11px;font-weight:800;color:#5b6a80;background:#eef2f7;border-radius:999px;padding:1px 7px}
.tk-pp.run{background:#fdf0d2;color:#8a4b06}
.tk-pp.ok{background:#15803d;color:#fff}

/* ---------- Κάρτα task: σήμανση διακοπής ---------- */
.tk-card.arch{background:#f7f9fc;border-color:#d5dde9;border-left-color:#94a3b8}
.tk-card.arch .tk-tt{color:#5b6a80}
.tk-stop{font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 9px;background:#e3e8f0;
  color:#33415c;border:1px solid #cfd8e6;display:inline-flex;align-items:center;gap:5px}

/* ---------- Ανάδοχος βήματος (card modal) ---------- */
.cd-who{display:flex;gap:6px;flex-wrap:wrap}
.cd-p{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:999px;
  border:1px solid #d5dde9;background:#fff;font-size:12px;font-weight:600;color:#41506b}
.cd-p:hover{border-color:#b9c6d8;background:#fbfcfe}
.cd-p.on{border-color:var(--accent);background:#fff2ea;color:#8f3a12;box-shadow:0 0 0 1px var(--accent) inset}
.kb-card .kb-who{display:inline-flex;align-items:center}

@media(max-width:620px){ .te-row{grid-template-columns:1fr} }

/* ---------- Task χωρίς ανάδοχο (56-task-orphan) ---------- */
.tk-orphbar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;background:#fff7ed;border:1px solid #fed7aa;
  border-radius:12px;padding:12px 14px;margin-bottom:12px;color:#9a3412}
.tk-orphbar>svg{flex:0 0 auto;color:#ea580c}
.tk-orphbar>div{flex:1 1 220px;min-width:0}
.tk-orphbar b{display:block;font-size:13.5px;color:#7c2d12}
.tk-orphbar span{font-size:12px;line-height:1.55}
.tk-orphbar span b{display:inline}
.tk-orph-go{background:linear-gradient(135deg,#c2410c,#f97316);border:none;white-space:nowrap}
.tk-orph{display:inline-flex;align-items:center;gap:5px;color:#c2410c;font-weight:700}
.tk-who.tk-orph{background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:2px 8px}

/* ---------- Οριστική διαγραφή αρχειοθετημένου (50-task-edit) ---------- */
.te-delbtn{background:#fff;color:var(--red);border:1px solid #f3c3c1}
.te-delbtn:hover{background:#fdeaea}
.tk-del{margin-left:auto;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;border:1px solid transparent;
  background:transparent;color:#94a3b8;cursor:pointer;transition:.15s}
.tk-del:hover{color:var(--red);background:#fdeaea;border-color:#f3c3c1}
/* =====================================================================
   TABS ΥΠΟΤΜΗΜΑΤΩΝ — segmented slider + χρωματισμός πλαϊνού μενού
   core/02f-dept-context.js · ΠΡΙΝ το 36-mobile.css (τα media queries δεν
   ανεβάζουν ειδικότητα — μετράει η σειρά στο manifest).
   ΚΑΜΙΑ `animation` εδώ, μόνο transitions: το #ctxTabs ξαναγράφεται σε κάθε
   renderAll και το aside δεν ξαναχτίζεται (δες «δεύτερη ανανέωση», 02-pitfalls).
===================================================================== */

/* --- δοχείο: παίρνει όλο τον χώρο μέχρι την αναζήτηση --- */
#ctxTabs{display:none}
#ctxTabs.on{display:flex;align-items:center;gap:4px;justify-content:flex-start;
  /* Το κουτί πιάνει ΟΣΟ χώρο καταλαμβάνουν πραγματικά τα tabs — μεγαλώνει και
     μικραίνει μαζί τους, δεν τεντώνεται μέχρι την αναζήτηση.
     ΠΡΟΣΟΧΗ ΣΤΗΝ ΠΑΓΙΔΑ: με flex-basis:auto το flex-wrap μετράει το ΜΗ
     συρρικνωμένο πλάτος (6 tabs ≈ 760px) και θα έσπαγε το topbar σε δεύτερη
     γραμμή. Το `max-width` περιορίζει ΚΑΙ το basis, άρα το σπάσιμο υπολογίζεται
     πάνω στο περιορισμένο μέγεθος. Μετρημένο σε 1600→940 + κινητό. */
  flex:0 1 auto;min-width:0;margin-right:auto}
/* ΤΟ ΟΡΙΟ ΠΛΑΤΟΥΣ ΤΟ ΒΑΖΕΙ ΤΟ ctxFit() (inline max-width), ΟΧΙ το CSS.
   Γιατί: το flex-wrap αποφασίζει ΠΡΙΝ το shrink, οπότε με basis:auto τα 6 tabs
   έσπαγαν το topbar σε δεύτερη γραμμή. Ένα ΣΤΑΘΕΡΟ max-width το απέτρεπε, αλλά
   έκοβε το κουτί πριν φτάσει την αναζήτηση (έβγαζε βελάκια ενώ υπήρχε ακόμη
   χώρος). Το ctxFit() μετράει τον πραγματικά διαθέσιμο χώρο, άρα το κουτί
   μεγαλώνει ΟΣΟ γίνεται και η αναδίπλωση είναι εξ ορισμού αδύνατη. */

/* --- το «αυλάκι» (liquid glass) --- */
.ctx-track{position:relative;display:flex;align-items:center;gap:2px;flex:0 1 auto;min-width:0;max-width:100%;
  padding:4px;border-radius:13px;overflow-x:auto;overflow-y:hidden;
  background:#fff;border:1px solid #ccd4de;
  box-shadow:0 1px 3px rgba(18,32,56,.10),0 4px 12px rgba(18,32,56,.05);
  scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
  scroll-behavior:smooth;cursor:grab;touch-action:pan-x}
.ctx-track::-webkit-scrollbar{display:none}
.ctx-track.dragging{cursor:grabbing;scroll-behavior:auto}

/* --- η κάψουλα που γλιστράει --- */
.ctx-thumb{position:absolute;left:0;top:4px;bottom:4px;width:0;opacity:0;border-radius:10px;
  background:#15243b;pointer-events:none;z-index:0;
  box-shadow:0 3px 12px rgba(16,32,58,.32),0 1px 2px rgba(16,32,58,.24),
             inset 0 1px 0 rgba(255,255,255,.24);
  transition:transform .36s cubic-bezier(.32,1.28,.5,1),width .36s cubic-bezier(.32,1.28,.5,1),
             background .26s ease}

/* --- τα segments --- */
.ctx-seg{position:relative;z-index:1;flex:0 0 auto;display:inline-flex;align-items:center;
  height:32px;padding:0 15px;border:0;background:transparent;border-radius:10px;
  font-size:12.5px;font-weight:800;letter-spacing:.15px;color:#43536b;cursor:pointer;
  white-space:nowrap;max-width:210px;transition:color .2s ease}
.ctx-seg:hover{color:#15243b}
.ctx-seg.on,.ctx-seg.on:hover{color:#fff}    /* όλη η παλέτα είναι ≥4.5:1 με λευκό */
.ctx-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* --- βελάκια: μόνο όταν δεν χωράνε όλα --- */
.ctx-arrow{display:none;flex:0 0 auto;width:26px;height:32px;padding:0;border:0;cursor:pointer;
  align-items:center;justify-content:center;border-radius:9px;color:#5b6b85;
  background:#fff;border:1px solid #ccd4de;transition:background .16s ease,color .16s ease,opacity .16s ease}
#ctxTabs.scrollable .ctx-arrow{display:inline-flex}
.ctx-arrow:hover:not(:disabled){background:#e1edff;border-color:#b9cfee;color:#15243b}
.ctx-arrow:disabled{opacity:.28;cursor:default}

/* --- το πλαϊνό μενού παίρνει βαθιά απόχρωση του ενεργού υποτμήματος --- */
/* Ειδικότητα (0,1,1) > το `aside` (0,0,1) του 04-layout· το aside ΔΕΝ
   ξαναχτίζεται (μόνο το #sidebar μέσα του) άρα το transition είναι ασφαλές. */
aside.sidebar-wrap{transition:background .3s ease}
body.ctx-on aside.sidebar-wrap{background:linear-gradient(180deg,var(--sb1,#15243b),var(--sb2,#182a47))}
/* ΑΝΤΙΘΕΣΗ: το ενεργό στοιχείο του μενού είναι πορτοκαλί gradient. Πάνω σε navy
   ξεχωρίζει· πάνω σε ΘΕΡΜΗ απόχρωση (αμπέρ/κόκκινο υποτμήματος) πλησιάζει
   επικίνδυνα. Ένα λεπτό λευκό δαχτυλίδι εγγυάται τον διαχωρισμό σε ΚΑΘΕ χρώμα
   της παλέτας, χωρίς να χαθεί η ταυτότητα του πορτοκαλί. */
body.ctx-on #sidebar .nav-item.active{
  box-shadow:0 0 0 2px rgba(255,255,255,.92),0 6px 16px rgba(0,0,0,.28)}

body.tr-off .ctx-thumb,body.tr-off aside.sidebar-wrap{transition:none}
@media(prefers-reduced-motion:reduce){
  .ctx-thumb,aside.sidebar-wrap{transition:none}
  .ctx-track{scroll-behavior:auto}
}

/* --- κινητό: δική της γραμμή, πλήρους πλάτους· η αφή κυλά, τα βελάκια περισσεύουν --- */
@media(max-width:900px){
  #topbar #ctxTabs.on{order:6;flex:0 1 100%;max-width:100%;margin-right:auto;margin-top:2px}
  #ctxTabs.scrollable .ctx-arrow{display:none}
  .ctx-seg{height:31px;padding:0 13px;font-size:12px;max-width:170px}
}

/* ===== Γενική Εποπτεία: μία κάρτα ανά τμήμα (ctxDeptCards, 07b) ===== */
.ctxd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
/* minmax(min(100%,230px),1fr): το σκέτο 230px θα κλείδωνε το πλέγμα σε στενή
   οθόνη (ίδια οικογένεια με την παγίδα «1fr = minmax(auto,1fr)»).
   auto-FIT και όχι auto-fill: οι άδειες στήλες συμπτύσσονται, άρα οι κάρτες
   απλώνονται από άκρη σε άκρη· όσες δεν χωρούν πέφτουν από κάτω — ποτέ
   οριζόντια κύλιση. */
.dgrid .card.ctxd{min-width:0}
.dgrid .card.ctxd>.card-h{cursor:pointer;color:#fff;background-color:var(--dc,#15243b);
  background-image:linear-gradient(120deg,rgba(255,255,255,.18),rgba(0,0,0,.14))}
.dgrid .card.ctxd>.card-h svg{color:#fff}
.dgrid .card.ctxd>.card-h .cnt{background:rgba(255,255,255,.22);color:#fff}
.dgrid .card.ctxd>.card-h:hover{background-image:linear-gradient(120deg,rgba(255,255,255,.3),rgba(0,0,0,.1))}
.ctxd-go{margin-left:auto;font-size:10.5px;font-weight:700;color:rgba(255,255,255,.9);white-space:nowrap}
.ctxd .hbar{cursor:pointer}
/* Στενή κάρτα (έως 6 υποτμήματα σε μία σειρά): τίποτα δεν ξεχειλίζει. */
.dgrid .card.ctxd>.card-h{flex-wrap:wrap;row-gap:3px;padding:11px 13px}
.ctxd .hb-top{gap:8px}
.ctxd .hb-top b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ctxd .hb-top span{flex:none}
@media(max-width:900px){ .ctxd-grid{grid-template-columns:1fr} }
/* ---------- God Mode → «Αναφορές» (module 59) — μωβ του God Mode ---------- */
.dr-wrap{max-width:980px}
.dr-top{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-bottom:16px}
.dr-search{flex:1;min-width:260px;display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #ddd3f5;
  border-radius:14px;padding:0 14px;box-shadow:0 2px 10px rgba(76,29,149,.06);color:#6d28d9}
.dr-search:focus-within{border-color:#8b5cf6;box-shadow:0 0 0 4px rgba(139,92,246,.14)}
.dr-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:14px;padding:13px 0;color:var(--text)}
.dr-clear{border:none;background:#f1ecfd;color:#6d28d9;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;cursor:pointer}
.dr-stats{display:flex;gap:8px}
.dr-stat{background:linear-gradient(135deg,#f5f0ff,#fbf7ff);border:1px solid #e4dbfa;border-radius:14px;padding:8px 16px;min-width:92px;
  display:flex;flex-direction:column;justify-content:center}
.dr-stat b{font-size:19px;color:#4c1d95;line-height:1.1}
.dr-stat span{font-size:10.5px;color:#7c6aa6;text-transform:uppercase;letter-spacing:.4px}
.dr-month{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#7c6aa6;margin:18px 4px 8px}
.dr-found{font-size:12px;color:#6d28d9;font-weight:700;margin:0 4px 4px}
.dr-card{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;background:#fff;border:1px solid var(--border);
  border-radius:16px;padding:14px 16px;margin-bottom:10px;cursor:pointer;font-family:inherit;color:inherit;
  box-shadow:0 1px 3px rgba(20,30,50,.04);transition:border-color .15s,box-shadow .15s,transform .15s}
.dr-card:hover{border-color:#c4b5fd;box-shadow:0 8px 24px rgba(76,29,149,.12);transform:translateY(-1px)}
.dr-date{flex:none;width:58px;border-radius:12px;background:linear-gradient(160deg,#4c1d95,#7c3aed);color:#fff;
  display:flex;flex-direction:column;align-items:center;padding:7px 0 6px;box-shadow:0 4px 12px rgba(109,40,217,.28)}
.dr-date b{font-size:22px;line-height:1}
.dr-date i{font-style:normal;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-top:2px}
.dr-date small{font-size:9.5px;opacity:.75;margin-top:1px}
.dr-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.dr-title{font-size:15px;font-weight:800;color:#1f1640;line-height:1.3}
.dr-snip{font-size:12.5px;color:#5b6479;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dr-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.dr-chips i{font-style:normal;font-size:10.5px;font-weight:700;color:#5b21b6;background:#f3edff;border:1px solid #e4dbfa;border-radius:999px;padding:2px 9px}
.dr-chips i.more{color:#7c6aa6;background:#f7f5fb}
.dr-hits{flex:none;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:#fde68a;color:#78350f;font-size:12px;font-weight:800;display:grid;place-items:center}
.dr-go{flex:none;color:#a78bfa;margin-top:4px}
.dr-card mark,.dr-read mark{background:#fde68a;color:inherit;border-radius:3px;padding:0 1px}
.dr-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:46px 20px;color:#7c6aa6;background:#fff;border:1px dashed #ddd3f5;border-radius:16px}
.dr-empty span{font-size:12.5px}
/* Ανάγνωση */
.dr-modal{width:760px;max-width:95vw}
.dr-read{max-height:min(68vh,720px);overflow:auto;padding:20px 26px 24px;font-size:14px;line-height:1.7;color:#27304a}
.dr-h{font-size:15.5px;font-weight:800;color:#4c1d95;margin:20px 0 6px;padding-bottom:5px;border-bottom:2px solid #efe8fd}
.dr-h:first-child{margin-top:0}
.dr-p{margin:6px 0}
.dr-ul{margin:4px 0 8px;padding-left:22px}
.dr-ul li{margin:4px 0}
.dr-ul li::marker{color:#8b5cf6}
.dr-gain{display:flex;gap:9px;align-items:flex-start;background:linear-gradient(135deg,#ecfdf5,#f0fdf9);border:1px solid #bbf7d0;
  border-radius:12px;padding:9px 12px;margin:8px 0 4px;color:#14532d;font-size:13.5px}
.dr-gain svg{flex:none;margin-top:4px;color:#16a34a}
@media(max-width:640px){
  .dr-top{flex-direction:column}
  .dr-search{min-width:0}
  .dr-stats .dr-stat{flex:1}
  .dr-card{padding:12px;gap:11px}
  .dr-date{width:50px}
  .dr-date b{font-size:19px}
  .dr-read{padding:16px}
  .dr-modal .modal-f{flex-wrap:wrap}
}
/* =====================================================================
   ΕΠΕΚΤΑΣΗ ΕΓΓΥΗΣΗΣ (module 60) — χρώμα module: petrol #123c49 → #1f7a8c
   ΠΡΙΝ το 36-mobile.css στο manifest.
   ΑΡΧΗ ΣΧΕΔΙΑΣΗΣ: λίστα αριστερά, στοιχεία δεξιά στην ΙΔΙΑ σελίδα (όπως οι
   Αναφορές Προβλημάτων). Στη γραμμή το μάτι βρίσκει πρώτα το SERIAL (έντονο)·
   όλα τα υπόλοιπα σε γκρι. Χρώμα μόνο εκεί που σημαίνει κάτι.
   ≤1100px: μία στήλη — με επιλογή φαίνεται μόνο η λεπτομέρεια (κουμπί «Λίστα»).
===================================================================== */
:root{ --wr1:#123c49; --wr2:#1f7a8c; --wr-soft:#e9f4f6; --wr-ink:#0f4c5c; --wr-line:#cfe3e8; }

.nav-item.ni-wr svg.i{color:#67c7dc}

.wr-page{max-width:1360px}
.wr-hero{background:linear-gradient(115deg,var(--wr1),var(--wr2) 130%)}
.wr-stats{display:flex;gap:8px;flex-wrap:wrap}
.wr-stat{min-width:92px;padding:8px 14px;border-radius:12px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);line-height:1.15}
.wr-stat b{display:block;font-size:20px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.wr-stat span{font-size:11px;color:rgba(255,255,255,.78)}
.wr-stat.warn b{color:#fde68a}

/* ---------- Διάταξη ---------- */
.wr-split{display:grid;grid-template-columns:minmax(330px,410px) minmax(0,1fr);gap:16px;align-items:start}
.wr-listcol{min-width:0}
.wr-detcol{min-width:0;position:sticky;top:12px}

/* ---------- Αναζήτηση & φίλτρα ---------- */
.wr-bar{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.wr-srch{display:flex;align-items:center;gap:10px;height:44px;padding:0 8px 0 14px;background:#fff;border:1.5px solid var(--border);border-radius:12px;color:var(--muted);transition:border-color .15s,box-shadow .15s;cursor:text}
.wr-srch:focus-within{border-color:var(--wr2);box-shadow:0 0 0 4px rgba(31,122,140,.14)}
.wr-srch input{flex:1;min-width:0;border:0;outline:none;background:transparent;font:inherit;font-size:14px;color:var(--text);height:100%}
.wr-srch input::-webkit-search-cancel-button{display:none}
.wr-clr{display:none;width:28px;height:28px;border:0;border-radius:8px;background:#eef2f6;color:var(--muted);cursor:pointer;place-items:center}
.wr-srch.has .wr-clr{display:grid}
.wr-clr:hover{background:#e2e8f0;color:var(--text)}
.wr-chips{display:flex;gap:6px;flex-wrap:wrap}
.wr-chips:empty{display:none}
.wr-chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.wr-chip:hover{border-color:#c5cfdb}
.wr-chip .d{width:8px;height:8px;border-radius:50%;background:#ea580c}
.wr-chip .c{min-width:20px;padding:1px 6px;border-radius:999px;background:#eef2f6;color:var(--muted);font-size:11px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}
.wr-chip.on{background:var(--wr1);border-color:var(--wr1);color:#fff}
.wr-chip.review.on{background:#c2410c;border-color:#c2410c}
.wr-chip.on .c{background:rgba(255,255,255,.2);color:#fff}
.wr-chip.on .d{background:#fff}

/* ---------- Λίστα ---------- */
.wr-list{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.wr-found{padding:9px 14px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);background:#fbfcfd}
.wr-row{display:flex;flex-direction:column;gap:3px;width:100%;padding:11px 14px 11px 12px;border:0;border-bottom:1px solid #eef1f5;border-left:3px solid transparent;background:#fff;text-align:left;font:inherit;color:var(--text);cursor:pointer;transition:background .12s}
.wr-row:hover{background:#f7fafb}
.wr-row.on{background:var(--wr-soft);border-left-color:var(--wr2)}
.wr-row:focus-visible{outline:2px solid var(--wr2);outline-offset:-2px}
.wr-row>span{display:flex;align-items:center;gap:8px;min-width:0}
.wr-r1 .wr-code6{font-size:15px;color:var(--wr-ink)}
.wr-mdl{font-size:12px;font-weight:700;color:#5b6b7c;letter-spacing:.03em}
.wr-r1 time{margin-left:auto;font-size:11.5px;color:var(--muted);white-space:nowrap}
.wr-r2 b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none;max-width:55%}
.wr-r2 small,.wr-r3{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wr-r3{gap:10px}
.wr-ic{display:inline-flex;align-items:center;gap:3px;color:var(--wr2);font-weight:700}
.wr-rcode{margin-left:auto;color:#9aa6b2}
.wr-rcb{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;background:#ffedd5;color:#9a3412;border:1px solid #fed7aa;font-size:10.5px;font-weight:700;white-space:nowrap}
.wr-row mark,.wr-det mark{background:#fff1a8;color:inherit;border-radius:3px;padding:0 1px}
.wr-code6{font-weight:800;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.wr-more,.wr-end{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;font-size:12.5px;color:var(--muted)}
.wr-spin{width:15px;height:15px;border-radius:50%;border:2px solid #d5dde6;border-top-color:var(--wr2);animation:wr-rot .7s linear infinite;display:inline-block}
@keyframes wr-rot{to{transform:rotate(360deg)}}
.wr-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:46px 20px;text-align:center}
.wr-empty b{font-size:14px;color:var(--text)}
.wr-empty span{max-width:44ch}
.wr-empty.sm{padding:22px}
.wr-skel{cursor:default;gap:8px}
.wr-skel span{height:11px;border-radius:6px;background:linear-gradient(90deg,#eef1f5,#f6f8fa,#eef1f5);background-size:200% 100%;animation:wr-sk 1.2s ease-in-out infinite}
.wr-skel span:nth-child(1){width:45%;height:14px}.wr-skel span:nth-child(2){width:75%}.wr-skel span:nth-child(3){width:55%}
@keyframes wr-sk{to{background-position:-200% 0}}

/* ---------- Λεπτομέρεια ---------- */
.wr-det{background:#f6f8fb;border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(21,36,59,.06),0 14px 34px -22px rgba(21,36,59,.5);
  max-height:calc(100vh - 124px);display:flex;flex-direction:column}      /* 124 = πάνω κενό + dock: το κάτω μέρος δεν κρύβεται πίσω από το dock */
.wr-det-empty{align-items:center;justify-content:center;gap:6px;min-height:340px;background:#fff;color:#9aa6b2;text-align:center;padding:20px}
.wr-det-empty b{font-size:14px;color:var(--text)}
.wr-det-empty span{font-size:12.5px;color:var(--muted)}
.wr-dh{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(115deg,var(--wr1),var(--wr2) 130%);color:#fff;flex:none}
.wr-dh-t{flex:1;min-width:0}
.wr-dh h2{margin:0;font-size:21px;line-height:1.2;color:#fff}
.wr-dh .sub{font-size:12.5px;color:rgba(255,255,255,.82);margin-top:2px}
.wr-dh .sub b{color:#fff}
.wr-dh .x{width:34px;height:34px;border:0;border-radius:9px;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer}
.wr-dh .x:hover{background:rgba(255,255,255,.26)}
.wr-back{display:none;align-items:center;gap:4px;height:32px;padding:0 10px 0 6px;border:0;border-radius:9px;background:rgba(255,255,255,.14);color:#fff;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.wr-back svg{transform:rotate(180deg)}
.wr-db{padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;overflow:auto;min-height:0}
#wrDetInfo{display:contents}
.wr-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px 14px;min-width:0}
.wr-card h4{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted);margin:0 0 9px;text-transform:uppercase}
.wr-kv{display:flex;flex-direction:column;gap:1px;padding:6px 0;border-top:1px solid #f0f3f6;min-width:0}
.wr-card>.wr-kv:first-of-type,.wr-kv2:first-of-type .wr-kv{border-top:0;padding-top:0}
.wr-kv span{font-size:11px;color:var(--muted)}
.wr-kv b{font-size:13.5px;font-weight:600;color:var(--text);overflow-wrap:anywhere}
.wr-kv a{color:var(--wr-ink);text-decoration:none}
.wr-kv a:hover{text-decoration:underline}
.wr-kv2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.wr-by{display:flex;align-items:center;gap:6px;margin:9px 0 0;font-size:11.5px;color:var(--muted)}
.wr-load{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:12.5px;color:var(--muted)}

/* παραστατικό: πλήρες πλάτος πάνω */
.wr-rc{grid-column:1/-1}
.wr-rc.is-review{border-color:#fdba74;box-shadow:0 0 0 3px #fff7ed}
.wr-rc-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.wr-rc-warn{display:flex;gap:9px;align-items:flex-start;margin:0 0 10px;padding:9px 11px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
.wr-rc-warn svg{flex:none;margin-top:1px}
.wr-rc-warn b{display:block;font-size:12.5px}
.wr-rc-warn span{display:block;font-size:12px;color:#7c2d12}
.wr-rc-file{display:flex;align-items:center;gap:12px;flex:1 1 260px;min-width:0;padding:8px;border:1px solid var(--border);border-radius:11px;background:#fafbfc;font:inherit;color:var(--text);text-align:left;cursor:pointer}
.wr-rc-file:hover{border-color:var(--wr2);background:var(--wr-soft)}
.wr-rc-th{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:9px;background:#fff center top/cover no-repeat;border:1px solid var(--border);color:var(--wr2)}
.wr-rc-m{min-width:0;display:flex;flex-direction:column;line-height:1.3}
.wr-rc-m b{font-size:13.5px;font-weight:700;color:var(--wr-ink)}
.wr-rc-m small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wr-rc-date{flex:1 1 180px;border-top:0;padding:0}
.wr-rc-date b{font-size:17px;font-weight:800}
.wr-rc-none{margin:0;flex:1 1 260px;font-size:12.5px;color:var(--muted);font-style:italic}
.wr-rc-days{display:block;font-style:normal;font-size:11.5px;font-weight:600;color:#166534}
.wr-rc-days.late{color:#b91c1c}
.wr-rc-no{font-size:13px;font-weight:500;color:var(--muted)}
.wr-rc-txt{font-size:11.5px;font-weight:500;color:var(--muted)}
.wr-rc-form{display:flex;gap:6px;margin-top:10px}
.wr-rc-form input{flex:1;min-width:0;max-width:220px;height:34px;padding:0 9px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:13px;color:var(--text);background:#fff}
.wr-rc-form input:focus{outline:none;border-color:var(--wr2);box-shadow:0 0 0 3px var(--wr-soft)}

/* σημειώσεις: πλήρες πλάτος κάτω */
.wr-notes{grid-column:1/-1}
.wr-notes h4 span{min-width:18px;padding:0 6px;border-radius:999px;background:#eef2f6;color:var(--muted);font-size:10.5px;text-align:center;letter-spacing:0}
.wr-notes h4 span:empty{display:none}
.wr-ncomp{display:flex;gap:8px;align-items:flex-end;margin-bottom:10px}
.wr-ncomp textarea{flex:1;min-width:0;resize:vertical;min-height:40px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;font:inherit;font-size:13.5px;line-height:1.5;color:var(--text);outline:none}
.wr-ncomp textarea:focus{border-color:var(--wr2);box-shadow:0 0 0 3px rgba(31,122,140,.12)}
.wr-ncomp .btn{flex:none;white-space:nowrap}
.wr-nempty{margin:0;font-size:12.5px;color:var(--muted);font-style:italic}
.wr-note{padding:10px 0;border-top:1px solid #f0f3f6}
.wr-nh{display:flex;align-items:center;gap:7px;font-size:12px}
.wr-nh b{font-weight:700;color:var(--text)}
.wr-nh time{color:var(--muted)}
.wr-ndel{margin-left:auto;width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:#9aa6b2;cursor:pointer;display:grid;place-items:center}
.wr-ndel:hover{background:#fee2e2;color:#b91c1c}
.wr-nk{display:inline-block;margin:6px 0 0 29px;padding:0 7px;border-radius:999px;background:#eef2f6;font-size:10.5px;font-weight:700;color:#5b6b7c}
.wr-nb{margin:5px 0 0 29px;font-size:13.5px;line-height:1.55;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.wr-ned{display:block;margin:3px 0 0 29px;font-size:11px;font-style:normal;color:#8a6d1d}
.btn.wr-del{background:#b91c1c;color:#fff;border:0}
.btn.wr-del:hover{background:#991b1b}

/* ---------- Στενά / κινητό ---------- */
@media (max-width:1400px){
  .wr-db{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:1100px){
  .wr-split{grid-template-columns:minmax(0,1fr)}
  .wr-page:not(.has-sel) .wr-detcol{display:none}
  .wr-page.has-sel .wr-listcol{display:none}
  .wr-detcol{position:static}
  .wr-det{max-height:none}
  .wr-back{display:inline-flex}
  .wr-dh .x{display:none}
}
@media (max-width:760px){
  .wr-stat{min-width:0;flex:1 1 40%}
  .wr-db{padding:10px;gap:10px}
  .wr-kv2{grid-template-columns:minmax(0,1fr)}
  .wr-kv2 .wr-kv{border-top:1px solid #f0f3f6!important;padding-top:6px!important}
  .wr-kv2:first-of-type .wr-kv:first-child{border-top:0!important;padding-top:0!important}
  .wr-ncomp{flex-direction:column;align-items:stretch}
  .wr-dh{padding:12px}
  .wr-dh h2{font-size:19px}
}
/* =====================================================================
   ΚΩΔΙΚΟΙ (module 61) — χρώμα module: vault slate #1e293b → amber #b45309
   ΠΡΙΝ το 36-mobile.css στο manifest.
   ΑΡΧΗ ΣΧΕΔΙΑΣΗΣ: η σελίδα είναι κλειδαριά πρώτα, λίστα μετά. Στην κλειδαριά
   μία μόνο ενέργεια στο κέντρο. Στη λίστα το μάτι βρίσκει πρώτα το ΟΝΟΜΑ·
   ο κωδικός μένει κρυμμένος μέχρι να ζητηθεί ρητά.
   ≤760px: ο πίνακας γίνεται κάρτες (36-mobile δεν χρειάζεται να ξέρει τίποτα).
===================================================================== */
:root{ --vlt1:#1e293b; --vlt2:#b45309; --vlt-soft:#fef3c7; --vlt-ink:#92400e; --vlt-line:#e7d9c0; }

.nav-item.ni-vlt svg.i{color:#fbbf24}

.vlt-page{max-width:1100px}
.vlt-hero{background:linear-gradient(115deg,var(--vlt1),var(--vlt2) 145%)}

/* ---------- κλειδαριά ---------- */
.vlt-lockwrap{display:grid;place-items:center;min-height:min(62vh,520px);padding:20px}
.vlt-lock{width:100%;max-width:360px;text-align:center;background:var(--card,#fff);border:1px solid var(--border);
  border-radius:18px;padding:28px 22px 20px;box-shadow:0 10px 34px rgba(15,23,42,.10)}
.vlt-lic{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 12px;border-radius:16px;
  background:linear-gradient(135deg,var(--vlt1),var(--vlt2));color:#fff}
.vlt-lock h2{margin:0 0 4px;font-size:19px;font-weight:800}
.vlt-lock p{margin:0 0 15px;font-size:12.5px;color:var(--muted);line-height:1.5}
.vlt-pin{width:100%;text-align:center;letter-spacing:.42em;font-size:22px;font-weight:700;padding:11px 12px;
  border:1.5px solid var(--border);border-radius:12px;background:var(--bg);outline:none;margin-bottom:10px}
.vlt-pin:focus{border-color:var(--vlt2)}
.vlt-rk{width:100%;text-align:center;letter-spacing:.08em;font-size:13.5px;font-weight:700;padding:10px 12px;
  border:1.5px solid var(--border);border-radius:12px;background:var(--bg);outline:none;margin-bottom:9px;text-transform:uppercase}
.vlt-rk:focus{border-color:var(--vlt2)}
.btn-wide{width:100%;justify-content:center}
.vlt-alt{display:block;width:100%;margin-top:10px;background:none;border:none;color:var(--muted);
  font-size:11.5px;text-decoration:underline;cursor:pointer;padding:4px}
.vlt-alt:hover{color:var(--vlt-ink)}
.vlt-err{color:var(--red);font-size:12px;font-weight:600;margin:10px 0 0}
.vlt-note{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;padding-top:13px;
  border-top:1px solid var(--border);font-size:10.5px;color:var(--muted)}

/* ---------- μπάρα ---------- */
.vlt-bar{display:flex;gap:10px;align-items:center;margin:14px 0 12px;flex-wrap:wrap}
.vlt-srch{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;background:var(--card,#fff);
  border:1.5px solid var(--border);border-radius:12px;padding:0 11px;color:var(--muted)}
.vlt-srch:focus-within{border-color:var(--vlt2)}
.vlt-srch input{flex:1;border:none;outline:none;background:none;padding:10px 0;font-size:13px;color:var(--text)}
.vlt-clr{display:none;border:none;background:none;color:var(--muted);cursor:pointer;padding:2px}
.vlt-srch.has .vlt-clr{display:block}
.vlt-tab{display:flex;align-items:center;gap:7px;border:1.5px solid var(--border);background:var(--card,#fff);
  border-radius:12px;padding:9px 13px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer}
.vlt-tab.on{border-color:var(--vlt2);color:var(--vlt-ink);background:var(--vlt-soft)}
.vlt-tab .cnt{background:var(--vlt2);color:#fff;border-radius:20px;padding:1px 7px;font-size:10.5px}

/* ---------- πίνακας ---------- */
.vlt-tblwrap{background:var(--card,#fff);border:1px solid var(--border);border-radius:14px;overflow:hidden}
.vlt-tbl{width:100%;border-collapse:collapse;font-size:13px}
.vlt-tbl th{text-align:left;font-size:10.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);
  font-weight:700;padding:11px 14px;background:var(--bg);border-bottom:1px solid var(--border)}
.vlt-tbl td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.vlt-tbl tbody tr:last-child td{border-bottom:none}
.vlt-tbl tbody tr:hover{background:var(--bg)}
.vlt-nm b{font-weight:700}
.vlt-badge{display:inline-flex;align-items:center;gap:4px;margin-left:7px;font-size:10px;font-weight:700;
  color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:1px 7px}
.vlt-badge.sh{color:var(--vlt-ink);background:var(--vlt-soft);border-color:var(--vlt-line)}
.vlt-us,.vlt-ps{white-space:nowrap}
.vlt-us span,.vlt-dots{display:inline-block;max-width:230px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.vlt-ic{border:1px solid transparent;background:none;color:var(--muted);cursor:pointer;border-radius:8px;
  padding:4px 5px;margin-left:3px;vertical-align:middle}
.vlt-ic:hover{background:var(--vlt-soft);color:var(--vlt-ink);border-color:var(--vlt-line)}
.vlt-ic.danger:hover{background:#fee2e2;color:var(--red);border-color:#fecaca}
.vlt-act{text-align:right;white-space:nowrap;width:1%}

/* ---------- φόρμες & popups ---------- */
.vlt-form{display:flex;flex-direction:column;gap:12px}
.vlt-form label{display:flex;flex-direction:column;gap:5px;font-size:11.5px;font-weight:700;color:var(--muted)}
.vlt-form input{border:1.5px solid var(--border);border-radius:10px;padding:9px 12px;font-size:13px;
  background:var(--bg);outline:none;color:var(--text);font-weight:500}
.vlt-form input:focus{border-color:var(--vlt2)}
.vlt-gwrap{display:flex;gap:7px}
.vlt-gwrap input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.vlt-gen{white-space:nowrap;font-size:11.5px}
.vlt-hint{display:flex;gap:7px;align-items:flex-start;font-size:11.5px;line-height:1.55;color:var(--muted);
  background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 11px}
.vlt-rkbox{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;font-weight:700;letter-spacing:.06em;
  text-align:center;padding:15px 10px;border-radius:12px;background:var(--vlt-soft);color:var(--vlt-ink);
  border:1.5px dashed var(--vlt2);word-break:break-all;margin-bottom:12px}
.vlt-ack{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12.5px;cursor:pointer}
.vlt-share .vlt-plist{display:flex;flex-direction:column;gap:7px;margin-top:11px;max-height:320px;overflow:auto}
.vlt-prow{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border);
  border-radius:11px;padding:8px 11px}
.vlt-prow.on{border-color:var(--vlt-line);background:var(--vlt-soft)}
.vlt-pnm{display:flex;flex-direction:column;min-width:0}
.vlt-pnm b{font-size:13px;font-weight:700}
.vlt-pnm small{font-size:10.5px;color:var(--muted)}
.vlt-prow .btn{font-size:11.5px;padding:6px 11px;white-space:nowrap}
.vlt-empty span{max-width:360px}

/* ---------- κινητό: ο πίνακας γίνεται κάρτες ---------- */
@media(max-width:760px){
  .vlt-tbl thead{display:none}
  .vlt-tbl,.vlt-tbl tbody,.vlt-tbl tr,.vlt-tbl td{display:block;width:auto}
  .vlt-tbl tr{border-bottom:1px solid var(--border);padding:4px 0}
  .vlt-tbl tbody tr:last-child{border-bottom:none}
  .vlt-tbl td{border-bottom:none;padding:5px 13px}
  .vlt-tbl td.vlt-nm{padding-top:11px;font-size:14px}
  .vlt-us span,.vlt-dots{max-width:calc(100vw - 150px)}
  .vlt-act{text-align:left;width:auto;padding-bottom:11px}
  .vlt-ic{margin:0 5px 0 0;border:1px solid var(--border)}
  .vlt-lock{padding:24px 18px 17px}
}

/* ---------- βήματα & επεξηγήσεις ---------- */
.vlt-steps{margin:0 0 4px;padding-left:20px;display:flex;flex-direction:column;gap:9px;
  font-size:12.5px;line-height:1.6;color:var(--text)}
.vlt-steps li::marker{color:var(--vlt2);font-weight:800}
.vlt-p{margin:0 0 12px;font-size:12.5px;line-height:1.6;color:var(--muted)}
.vlt-hint span{display:block}
.vlt-hint svg{flex:none;margin-top:2px}

/* ---------- μενού ρυθμίσεων ---------- */
.vlt-menu{display:flex;flex-direction:column;gap:8px}
.vlt-mrow{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;cursor:pointer;
  border:1px solid var(--border);border-radius:12px;padding:12px 13px;background:var(--card,#fff)}
.vlt-mrow:hover{border-color:var(--vlt2);background:var(--vlt-soft)}
.vlt-mic{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;
  background:linear-gradient(135deg,var(--vlt1),var(--vlt2));color:#fff}
.vlt-mrow b{display:block;font-size:13px;font-weight:700;margin-bottom:2px}
.vlt-mrow small{display:block;font-size:11.5px;color:var(--muted);line-height:1.5}

/* ---------- «τι σημαίνει κρυπτογραφημένοι» ---------- */
.vlt-expl p{margin:0 0 12px;font-size:13px;line-height:1.65}
.vlt-ul{margin:0 0 12px;padding-left:19px;font-size:12.5px;line-height:1.7}
.vlt-flow{display:flex;align-items:stretch;gap:6px;margin:0 0 14px;flex-wrap:nowrap}
.vlt-flow>div:not(.vlt-arrow){flex:1;min-width:0;border:1px solid var(--border);border-radius:11px;
  padding:10px 9px;background:var(--bg);text-align:center}
.vlt-flow span{display:grid;place-items:center;width:20px;height:20px;margin:0 auto 6px;border-radius:50%;
  background:var(--vlt2);color:#fff;font-size:11px;font-weight:800}
.vlt-flow b{display:block;font-size:11.5px;font-weight:700;line-height:1.3}
.vlt-flow small{display:block;margin-top:4px;font-size:10px;color:var(--muted);word-break:break-all}
.vlt-flow code{font-size:9.5px;background:none;padding:0}
.vlt-arrow{display:grid;place-items:center;color:var(--vlt2);flex:none;width:18px}

/* ---------- σύζευξη συσκευής ---------- */
.vlt-qrbox{display:grid;place-items:center;padding:14px;margin:13px 0 10px;border-radius:14px;
  background:#fff;border:1px solid var(--border)}
.vlt-qr{display:block;max-width:100%;height:auto;image-rendering:pixelated}
.vlt-or{text-align:center;font-size:11px;color:var(--muted);margin-bottom:9px}

/* ---------- παράθυρο στοιχείων ---------- */
.vlt-row{cursor:pointer}
.vlt-detb{display:flex;flex-direction:column;gap:9px}
.vlt-fld{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:11px;padding:9px 11px}
.vlt-fld.wrap{align-items:flex-start}
.vlt-flab{flex:none;width:82px;font-size:10.5px;letter-spacing:.3px;text-transform:uppercase;
  color:var(--muted);font-weight:700}
.vlt-fval{flex:1;min-width:0;font-size:13px;word-break:break-word}
.vlt-fval.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}

@media(max-width:760px){
  .vlt-flow{flex-wrap:wrap}
  .vlt-flow>div:not(.vlt-arrow){flex:1 1 100%}
  .vlt-arrow{width:100%;transform:rotate(90deg);height:16px}
  .vlt-flab{width:70px}
}
/* =====================================================================
   ΜΟΝΤΕΛΑ (module 62) — χρώμα module: forest #14532d → #16a34a
   ΠΡΙΝ το 36-mobile.css στο manifest.
   ΑΡΧΗ ΣΧΕΔΙΑΣΗΣ: φύλλο Excel, όχι φόρμα. Τα κελιά είναι ΠΑΝΤΑ επεξεργάσιμα —
   καμία λειτουργία «κλικ για επεξεργασία», κανένα κουμπί αποθήκευσης ανά γραμμή.
   Τα τεμάχια ενός σετ ανοίγουν κάτω από τη γραμμή του, με εσοχή.
   ≤820px: ο πίνακας γίνεται κάρτες.
===================================================================== */
:root{ --md1:#14532d; --md2:#16a34a; --md-soft:#dcfce7; --md-ink:#166534; --md-line:#bbf7d0; }

.nav-item.ni-mdl svg.i{color:#4ade80}

.md-page{max-width:1180px}
.md-hero{background:linear-gradient(115deg,var(--md1),var(--md2) 145%)}
.md-stats{display:flex;gap:8px}
.md-stat{min-width:84px;padding:8px 14px;border-radius:12px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.14);line-height:1.15}
.md-stat b{display:block;font-size:20px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.md-stat span{font-size:11px;color:rgba(255,255,255,.78)}

/* ---------- μπάρα ---------- */
.md-bar{display:flex;gap:9px;align-items:center;margin:14px 0 12px;flex-wrap:wrap}
.md-srch{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;background:var(--card,#fff);
  border:1.5px solid var(--border);border-radius:12px;padding:0 11px;color:var(--muted)}
.md-srch:focus-within{border-color:var(--md2)}
.md-srch input{flex:1;border:none;outline:none;background:none;padding:10px 0;font-size:13px;color:var(--text)}
.md-clr{display:none;border:none;background:none;color:var(--muted);cursor:pointer;padding:2px}
.md-srch.has .md-clr{display:block}
.md-err{display:flex;align-items:center;gap:8px;background:#fef2f2;border:1px solid #fecaca;color:var(--red);
  border-radius:11px;padding:9px 12px;font-size:12.5px;margin-bottom:11px}

/* ---------- φύλλο ---------- */
.md-tblwrap{background:var(--card,#fff);border:1px solid var(--border);border-radius:14px;overflow:hidden}
.md-tbl{width:100%;border-collapse:collapse;font-size:13px}
.md-tbl th{text-align:left;font-size:10.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);
  font-weight:700;padding:10px 12px;background:var(--bg);border-bottom:1px solid var(--border)}
.md-tbl td{padding:4px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.md-tbl tbody tr:last-child td{border-bottom:none}
.md-row:hover{background:var(--bg)}
.md-row.off{opacity:.5}
.md-cexp{width:30px;padding-left:10px!important;padding-right:0!important}
.md-ctype{width:150px}
.md-cact{width:60px;text-align:center}
.md-cbtn{width:46px;text-align:right}
.md-in{width:100%;border:1.5px solid transparent;border-radius:8px;padding:7px 8px;font-size:13px;
  background:none;outline:none;color:var(--text);font-family:inherit}
.md-in:hover{border-color:var(--border)}
.md-in:focus{border-color:var(--md2);background:var(--card,#fff)}
.md-in.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;letter-spacing:.04em;
  max-width:340px}
.md-exp{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;cursor:pointer;
  border:1px solid var(--border);background:var(--card,#fff);color:var(--md-ink);transition:transform .15s}
.md-exp.on{transform:rotate(45deg);background:var(--md-soft);border-color:var(--md-line)}
.md-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--md-ink);
  background:var(--md-soft);border:1px solid var(--md-line);border-radius:20px;padding:2px 9px}
.md-badge.plain{color:var(--muted);background:var(--bg);border-color:var(--border)}
.md-ic{border:1px solid transparent;background:none;color:var(--muted);cursor:pointer;border-radius:8px;padding:4px 5px}
.md-ic:hover{background:var(--md-soft);color:var(--md-ink);border-color:var(--md-line)}
.md-ic.danger:hover{background:#fee2e2;color:var(--red);border-color:#fecaca}

/* τεμάχια κάτω από το σετ */
.md-sub{background:var(--bg)}
.md-sub td{padding:6px 12px;font-size:12.5px}
.md-pc{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;padding-left:26px!important;
  color:var(--md-ink);position:relative;word-break:break-all}
.md-pc::before{content:"";position:absolute;left:12px;top:50%;width:8px;height:1px;background:var(--md-line)}

/* διακόπτης ενεργό */
.md-sw{display:inline-block;position:relative;width:34px;height:19px;cursor:pointer}
.md-sw input{opacity:0;width:0;height:0;position:absolute}
.md-sw span{position:absolute;inset:0;border-radius:20px;background:var(--border);transition:background .15s}
.md-sw span::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;
  background:#fff;transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.md-sw input:checked+span{background:var(--md2)}
.md-sw input:checked+span::after{transform:translateX(15px)}

/* ---------- παράθυρα ---------- */
.md-hint{display:flex;gap:7px;align-items:flex-start;font-size:11.5px;line-height:1.55;color:var(--muted);
  background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 11px}
.md-hint svg{flex:none;margin-top:2px}
.md-hint span{display:block}

.md-plist{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}
.md-prow{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:11px;padding:7px 10px}
.md-pcode{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;font-size:12.5px;
  color:var(--md-ink);flex:1;min-width:0;word-break:break-all}
.md-addrow{display:flex;gap:7px;margin-bottom:11px}
.md-addrow input:first-child{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;
  letter-spacing:.04em}
.md-addrow input{border:1.5px solid var(--border);border-radius:10px;padding:8px 10px;font-size:12.5px;
  background:var(--bg);outline:none;color:var(--text)}
.md-addrow input:focus{border-color:var(--md2)}

/* ---------- επικόλληση ---------- */
.md-ta{width:100%;margin:11px 0 10px;border:1.5px solid var(--border);border-radius:11px;padding:10px 12px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.6;background:var(--bg);
  outline:none;color:var(--text);resize:vertical}
.md-ta:focus{border-color:var(--md2)}
.md-prev{min-height:54px}
.md-pnote{font-size:11.5px;color:var(--muted);padding:9px 0}
.md-pok{background:var(--md-soft);border:1px solid var(--md-line);border-radius:11px;padding:10px 12px;font-size:12.5px}
.md-pok b{display:flex;align-items:center;gap:6px;color:var(--md-ink);margin-bottom:3px}
.md-perr{background:#fef2f2;border:1px solid #fecaca;border-radius:11px;padding:10px 12px;font-size:12px}
.md-perr b{display:flex;align-items:center;gap:6px;color:var(--red);margin-bottom:5px}
.md-perr ul{margin:0;padding-left:18px;line-height:1.7;color:var(--text)}
.md-empty span{max-width:360px}

/* ---------- κινητό: κάρτες ---------- */
@media(max-width:820px){
  .md-tbl thead{display:none}
  .md-tbl,.md-tbl tbody,.md-tbl tr,.md-tbl td{display:block;width:auto}
  .md-tbl tr{border-bottom:1px solid var(--border);padding:6px 0}
  .md-tbl td{border-bottom:none;padding:3px 12px}
  .md-cexp{width:auto;padding:6px 12px 0 12px!important}
  .md-ctype,.md-cact,.md-cbtn{width:auto;text-align:left}
  .md-cbtn{padding-bottom:8px}
  .md-in.code{max-width:none}
  .md-pc{padding-left:22px!important}
  .md-pc::before{left:10px}
  .md-cols span{font-size:10.5px}
}
.md-phead{display:block;margin-top:4px;font-size:11px;color:var(--muted)}

/* ---------- επιλογή τρόπου εισαγωγής ---------- */
.md-pick{display:flex;flex-direction:column;gap:10px}
.md-pcard{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;gap:2px 13px;
  text-align:left;cursor:pointer;border:1.5px solid var(--border);border-radius:13px;padding:14px;
  background:var(--card,#fff)}
.md-pcard:hover{border-color:var(--md2);background:var(--md-soft)}
.md-pic{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;
  background:linear-gradient(135deg,var(--md1),var(--md2));color:#fff}
.md-pcard b{font-size:14px;font-weight:800}
.md-pcard small{font-size:11.5px;color:var(--muted);line-height:1.5}
.md-prow{justify-content:space-between}
.md-pcode{width:auto;flex:1}
.md-phead{display:block;margin-top:4px;font-size:11px;color:var(--muted)}
/* =====================================================================
   ΑΔΕΙΕΣ (module 63) — χρώμα module: #0a6d53 → #0E8F6F
   ΠΡΙΝ το 36-mobile.css στο manifest.
   ΑΡΧΗ ΣΧΕΔΙΑΣΗΣ: κάρτες υπολοίπων πάνω, μία λίστα αιτημάτων κάτω.
   Η κατάσταση διαβάζεται από το badge, ΠΟΤΕ από χρώμα γραμμής.
   ≤820px: ο πίνακας γίνεται κάρτες (τα data-h γίνονται ετικέτες).
===================================================================== */
:root{ --lv1:#0a6d53; --lv2:#0E8F6F; --lv-soft:#e4f5ee; --lv-ink:#0b6b52; --lv-line:#bfe6d8; }

.nav-item.ni-lv svg.i{color:#34d399}

.lv-page{max-width:1180px}
.lv-hero{background:linear-gradient(115deg,var(--lv1),var(--lv2) 145%)}
.lv-err{margin:12px 0;padding:10px 13px;border-radius:12px;background:#fee2e2;color:#991b1b;
  display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}

/* ---------- κάρτες υπολοίπων ---------- */
.lv-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin:16px 0 14px}
.lv-card{background:var(--card,#fff);border:1.5px solid var(--border);border-radius:16px;padding:15px 17px}
.lv-ct{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--muted);margin-bottom:8px}
.lv-ct i{width:8px;height:8px;border-radius:50%;flex:none}
.lv-cv{font-size:25px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.lv-cv span{font-size:13.5px;font-weight:600;color:var(--muted)}
.lv-cp{margin-top:5px;font-size:11.5px;font-weight:600;color:#b45309}

/* ---------- λίστα ---------- */
.lv-box{background:var(--card,#fff);border:1.5px solid var(--border);border-radius:16px;overflow:hidden}
.lv-boxh{padding:14px 18px;border-bottom:1.5px solid var(--border);font-size:14.5px;font-weight:700;
  display:flex;align-items:center;gap:9px}
.lv-boxh span{font-size:11.5px;font-weight:700;color:var(--lv-ink);background:var(--lv-soft);
  border-radius:999px;padding:2px 9px}
.lv-tblwrap{overflow-x:auto}
.lv-tbl{width:100%;border-collapse:collapse}
.lv-tbl th{text-align:left;padding:10px 18px;font-size:11.5px;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);white-space:nowrap}
.lv-tbl td{padding:13px 18px;font-size:13.5px;border-bottom:1px solid var(--border);vertical-align:middle}
.lv-tbl tbody tr:last-child td{border-bottom:none}
.lv-row td b{font-weight:600}
.lv-cd{color:var(--muted);white-space:nowrap}
.lv-ca{text-align:right;white-space:nowrap}
.lv-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px}
.lv-note{display:block;margin-top:3px;font-size:11.5px;color:var(--muted);font-style:italic}
.lv-dash{color:var(--muted);opacity:.6}
.lv-x{background:none;border:none;cursor:pointer;padding:4px 2px;font:inherit;font-size:13px;
  font-weight:600;color:#dc2626;border-radius:6px}
.lv-x:hover{text-decoration:underline}
.lv-empty{padding:34px 20px}

/* ---------- badges κατάστασης ---------- */
.lv-badge{display:inline-block;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.lv-badge.wait{background:#fef3e2;color:#b45309}
.lv-badge.hr{background:#eaf1ff;color:#1d4ed8}
.lv-badge.ok{background:#e9f9ee;color:#15803d}
.lv-badge.no{background:#fdecec;color:#dc2626}
.lv-badge.off{background:#eef1ee;color:#6b7280}

/* ---------- φόρμα ---------- */
.lv-mh{background:linear-gradient(115deg,var(--lv1),var(--lv2) 150%);color:#fff;align-items:center}
.lv-mh h2,.lv-mh .sub{color:#fff}
.lv-mh .sub{opacity:.82}
.lv-mh .x{color:#fff}
.lv-form{display:flex;flex-direction:column;gap:0}
.lv-l{display:block;font-size:12.5px;font-weight:700;color:var(--muted);margin:14px 0 6px}
.lv-l:first-child{margin-top:0}
.lv-fld{width:100%;box-sizing:border-box;border:1.5px solid var(--border);border-radius:11px;
  padding:10px 12px;font:inherit;font-size:14px;background:var(--card,#fff);color:inherit}
.lv-fld:focus{outline:none;border-color:var(--lv2);box-shadow:0 0 0 3px rgba(14,143,111,.16)}
textarea.lv-fld{resize:vertical;min-height:70px}
.lv-2{display:flex;gap:13px}
.lv-2>div{flex:1;min-width:0}
.lv-2 .lv-l{margin-top:14px}
.lv-segs{display:flex;gap:7px;flex-wrap:wrap}
.lv-seg{flex:1;min-width:104px;padding:9px 10px;border-radius:11px;border:1.5px solid var(--border);
  background:var(--card,#fff);font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.lv-seg.on{border-color:var(--lv2);background:var(--lv-soft);color:var(--lv-ink)}
.lv-calc{margin-top:14px;display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:11px;
  background:#f1f3f1;font-size:13px;color:#4b554d}
.lv-calc svg{color:var(--lv2);flex:none}
.lv-calc.bad{background:#fdecec;color:#991b1b}
.lv-calc.bad svg{color:#dc2626}
.lv-after{margin-top:14px;padding:11px 13px;border-radius:11px;background:var(--lv-soft);
  border:1px solid var(--lv-line);font-size:12.5px;color:var(--lv-ink)}

/* ---------- κινητό: ο πίνακας γίνεται κάρτες ---------- */
@media(max-width:820px){
  .lv-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:11px}
  .lv-cv{font-size:22px}
  .lv-tbl,.lv-tbl tbody,.lv-tbl tr,.lv-tbl td{display:block;width:100%}
  .lv-tbl thead{display:none}
  .lv-tbl tr{border-bottom:1px solid var(--border);padding:11px 15px}
  .lv-tbl tbody tr:last-child{border-bottom:none}
  .lv-tbl td{border:none;padding:3px 0;display:flex;justify-content:space-between;gap:12px;align-items:center}
  /* margin-right:auto → η ετικέτα αριστερά, τελεία+κείμενο ΜΑΖΙ δεξιά */
  .lv-tbl td::before{content:attr(data-h);font-size:11.5px;font-weight:700;color:var(--muted);
    flex:none;margin-right:auto}
  .lv-tbl td.lv-ca{justify-content:flex-end;padding-top:7px}
  .lv-tbl td.lv-ca::before{content:""}
  .lv-note{text-align:right}
  .lv-2{flex-direction:column;gap:0}
}

/* ---------- επιβεβαίωση ακύρωσης (ΕΝΑ παράθυρο, αλλάζει περιεχόμενο) ---------- */
.lv-ask{margin:0;font-size:14px;line-height:1.55;color:var(--muted)}
.btn.lv-danger{background:#dc2626;border-color:#dc2626;color:#fff}
.btn.lv-danger:hover{background:#b91c1c;border-color:#b91c1c}

/* ---------- tabs: ΕΝΑ στοιχείο μενού, δύο περιεχόμενα ---------- */
.lv-tabs{display:flex;gap:22px;border-bottom:1.5px solid var(--border);margin:16px 0 14px;overflow-x:auto}
.lv-tab{background:none;border:none;cursor:pointer;font:inherit;font-size:14px;font-weight:600;
  color:var(--muted);padding:9px 2px;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;
  white-space:nowrap;display:flex;align-items:center;gap:7px}
.lv-tab.on{color:var(--lv-ink);font-weight:700;border-bottom-color:var(--lv2)}
.lv-tab span{background:#d97706;color:#fff;font-size:10.5px;font-weight:800;min-width:18px;height:18px;
  border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}

/* ---------- κάρτες ουράς ---------- */
.lv-qlist{display:flex;flex-direction:column;gap:11px}
.lv-q{background:var(--card,#fff);border:1.5px solid var(--border);border-radius:16px;padding:16px 18px;
  display:flex;align-items:flex-start;gap:14px}
.lv-q.past{opacity:.82}
.lv-av{width:40px;height:40px;border-radius:50%;background:var(--lv-soft);color:var(--lv-ink);
  display:grid;place-items:center;font-size:13px;font-weight:800;flex:none}
.lv-qb{flex:1;min-width:0}
.lv-qh{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:4px}
.lv-qh b{font-size:14.5px;font-weight:700}
.lv-chip{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px}
.lv-qd{font-size:11.5px;color:var(--muted)}
.lv-qm{font-size:13px;color:var(--muted)}
.lv-qr{margin-top:5px;font-size:12.5px;color:var(--muted);font-style:italic}
.lv-qa{display:flex;gap:8px;flex:none;align-items:center}
.lv-b{padding:9px 16px;border-radius:10px;border:none;cursor:pointer;font:inherit;font-size:13px;font-weight:700}
.lv-b.yes{background:#e9f9ee;color:#15803d}
.lv-b.yes:hover{background:#d6f3e0}
.lv-b.no{background:#fdecec;color:#dc2626}
.lv-b.no:hover{background:#fbdcdc}
.lv-hint{margin-top:12px;border:1.5px dashed var(--border);border-radius:14px;padding:12px 18px;
  font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:9px}
.lv-hint svg{flex:none}

@media(max-width:820px){
  .lv-q{flex-wrap:wrap}
  .lv-qa{width:100%;justify-content:flex-end;padding-top:4px}
  .lv-b{flex:1;padding:11px 10px}
}

/* ---------- επισυναπτόμενο ---------- */
.lv-fpick{display:flex;align-items:center;gap:10px;border:1.5px dashed var(--border);border-radius:11px;
  padding:14px 15px;color:var(--muted);font-size:13px;cursor:pointer}
.lv-fpick:hover{border-color:var(--lv2);color:var(--lv-ink)}
.lv-fpick input{display:none}
.lv-fhas{display:flex;align-items:center;gap:9px;border:1.5px solid var(--lv-line);border-radius:11px;
  padding:11px 13px;background:var(--lv-soft);color:var(--lv-ink);font-size:13px}
.lv-fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.lv-fs{font-size:11.5px;opacity:.75;flex:none}
.lv-fx{background:none;border:none;cursor:pointer;color:inherit;padding:2px;border-radius:6px;flex:none}
.lv-fx:hover{background:rgba(0,0,0,.07)}
.lv-clip{display:inline-flex;align-items:center;gap:6px;margin-top:6px;background:var(--lv-soft);
  border:1px solid var(--lv-line);border-radius:999px;padding:3px 10px;cursor:pointer;
  font:inherit;font-size:11.5px;font-weight:600;color:var(--lv-ink);max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lv-clip:hover{background:#d5efe5}
.lv-pdf{display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;text-align:center;padding:40px 24px}
.lv-pdf b{font-size:16px}
.lv-pdf span{font-size:13px;opacity:.8;max-width:280px}

/* ---------- ΗΜΕΡΟΛΟΓΙΟ HR ---------- */
.lv-srow{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:13px;margin-bottom:14px}
.lv-st{background:var(--card,#fff);border:1.5px solid var(--border);border-radius:16px;padding:14px 16px}
.lv-stl{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:6px}
.lv-stv{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.lv-calbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.lv-nav{display:flex;align-items:center;gap:6px}
.lv-nav b{font-size:15.5px;font-weight:800;min-width:168px;text-align:center}
.lv-narw{width:30px;height:30px;border-radius:9px;border:1.5px solid var(--border);background:var(--card,#fff);
  cursor:pointer;display:grid;place-items:center;color:var(--muted)}
.lv-narw svg{transform:rotate(180deg)}
.lv-narw.next svg{transform:none}
.lv-narw:hover{border-color:var(--lv2);color:var(--lv-ink)}
.lv-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);font-weight:600}
.lv-leg span{display:inline-flex;align-items:center;gap:6px}
.lv-leg i{width:9px;height:9px;border-radius:3px;display:inline-block}
.lv-leg i.pend{background:repeating-linear-gradient(45deg,#cbd5d1,#cbd5d1 3px,#eef1ee 3px,#eef1ee 6px)}
.lv-calact{margin-left:auto;display:flex;gap:9px;align-items:center}
.lv-calwrap{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}
.lv-cal{background:var(--card,#fff);border:1.5px solid var(--border);border-radius:16px;overflow:hidden}
.lv-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1.5px solid var(--border)}
.lv-dow div{padding:9px 6px;text-align:center;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.04em}
.lv-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.lv-day{min-height:92px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:6px;display:flex;flex-direction:column;gap:3px}
.lv-day:nth-child(7n){border-right:none}
.lv-day.out{opacity:.38}
.lv-day.off{background:rgba(15,40,30,.045)}
.lv-day.now .lv-dn{background:var(--lv2);color:#fff}
.lv-dn{font-size:11.5px;font-weight:700;color:var(--muted);width:21px;height:21px;border-radius:7px;
  display:grid;place-items:center;flex:none}
.lv-cchip{border:none;cursor:pointer;font:inherit;align-self:flex-start;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:800;letter-spacing:.02em;
  border-radius:6px;padding:3px 6px;text-align:left;background:var(--lv-soft);color:var(--lv-ink)}
.lv-cchip.pend{background:repeating-linear-gradient(45deg,#e7ebe8,#e7ebe8 3px,#f4f6f4 3px,#f4f6f4 6px);
  color:#6b7280;border:1px dashed #cbd5d1}
.lv-more{font-size:10.5px;color:var(--muted);font-weight:700;padding-left:3px}

/* ---------- πλαϊνό πάνελ ---------- */
.lv-side{display:flex;flex-direction:column;gap:14px}
.lv-sbody{padding:4px 0}
.lv-sitem{padding:13px 16px;border-bottom:1px solid var(--border)}
.lv-sitem:last-child{border-bottom:none}
.lv-sh{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.lv-sh b{font-size:13.5px}
.lv-av.sm{width:28px;height:28px;font-size:11px}
.lv-sm{font-size:12px;color:var(--muted)}
.lv-sok{margin-top:5px;font-size:11.5px;color:#15803d;display:flex;align-items:center;gap:5px}
.lv-sitem .lv-qa{margin-top:9px;justify-content:flex-end}
.lv-sitem .lv-b{padding:7px 13px;font-size:12.5px}
.lv-sempty{padding:16px;font-size:12.5px;color:var(--muted)}
.lv-srow2{display:flex;align-items:center;gap:9px;padding:9px 16px;font-size:13px}
.lv-sn{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lv-sd{margin-left:auto;font-size:11.5px;color:var(--muted);flex:none}
.lv-kv{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13.5px}
.lv-kv:last-child{border-bottom:none}
.lv-kv span:first-child{color:var(--muted);font-size:12.5px;width:120px;flex:none}

/* ---------- ΡΥΘΜΙΣΕΙΣ ---------- */
.lv-sec{margin-bottom:14px}
.lv-secb{padding:16px 18px}
.lv-p{margin:0 0 11px;font-size:12.5px;color:var(--muted)}
.lv-wk{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.lv-wk .lv-seg{flex:0 0 auto;min-width:0;padding:8px 13px}
.lv-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lv-inline .lv-l{margin:0}
.lv-u{font-size:12.5px;color:var(--muted)}
.lv-fld.sm{width:auto;min-width:140px;padding:8px 10px;font-size:13px}
.lv-fld.num{min-width:0;width:86px;text-align:right}
.lv-addrow{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.lv-addrow .lv-fld{flex:1;min-width:150px}
.lv-hlist,.lv-tlist,.lv-blist{display:flex;flex-direction:column;border:1.5px solid var(--border);border-radius:12px;overflow:hidden}
.lv-hrow,.lv-trow,.lv-brow{display:flex;align-items:center;gap:11px;padding:10px 13px;
  border-bottom:1px solid var(--border);font-size:13px}
.lv-hrow:last-child,.lv-trow:last-child,.lv-brow:last-child{border-bottom:none}
.lv-hd{font-weight:600;flex:none;min-width:172px}
.lv-ht{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.lv-hk{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--lv-soft);color:var(--lv-ink);flex:none}
.lv-hk.cl{background:#fef3e2;color:#b45309}
.lv-trow.off{opacity:.55}
.lv-trow .lv-fld{flex:1;min-width:130px;padding:7px 10px;font-size:13px}
.lv-col{width:34px;height:34px;padding:2px;border:1.5px solid var(--border);border-radius:9px;background:none;cursor:pointer;flex:none}
.lv-chk{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);
  font-weight:600;white-space:nowrap;cursor:pointer;flex:none}
.lv-bn{flex:1;min-width:0;font-weight:600}
.lv-bf{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);font-weight:600;flex:none}
.lv-bu{font-size:11.5px;color:var(--muted);flex:none}

@media(max-width:1100px){
  .lv-calwrap{grid-template-columns:minmax(0,1fr)}
  .lv-calact{margin-left:0;width:100%}
}
@media(max-width:820px){
  .lv-day{min-height:68px;padding:4px}
  .lv-dn{width:19px;height:19px;font-size:10.5px}
  .lv-cchip{font-size:9.5px;padding:2px 4px}
  .lv-nav b{min-width:0;flex:1;text-align:left}
  .lv-nav{width:100%}
  .lv-leg{display:none}
  .lv-hd{min-width:0;flex:1}
  .lv-hrow,.lv-trow,.lv-brow{flex-wrap:wrap}
  .lv-addrow{flex-direction:column;align-items:stretch}
  .lv-addrow .lv-fld,.lv-addrow .btn{width:100%}
}

/* ---------- HR: tabs σε δύο ομάδες-«κάψουλες» (Διαχείριση HR · Προσωπικά) ---------- */
.lv-gtabs{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0 14px;min-width:0}
.lv-g{display:flex;flex-direction:column;gap:6px;min-width:0;--g1:#0E8F6F;--g2:#e4f5ee;--gi:#0b6b52;--gs:rgba(14,143,111,.35)}
.lv-g-me{--g1:#2563eb;--g2:#e7efff;--gi:#1d4ed8;--gs:rgba(37,99,235,.33)}
.lv-gl{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gi);padding-left:4px}
.lv-gl i{width:7px;height:7px;border-radius:50%;background:var(--g1)}
.lv-caps{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--g2);overflow-x:auto;scrollbar-width:none}
.lv-caps::-webkit-scrollbar{display:none}
.lv-gt{display:flex;align-items:center;gap:6px;padding:8px 11px;border:none;border-radius:10px;background:none;cursor:pointer;
  font:inherit;font-size:13px;font-weight:650;color:#475569;white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s}
.lv-gt svg{color:var(--g1);flex:none}
.lv-gt:hover{background:rgba(255,255,255,.7);color:#1c2536}
.lv-gt:focus-visible{outline:none;box-shadow:0 0 0 3px var(--gs)}
.lv-gt.on{background:var(--g1);color:#fff;box-shadow:0 4px 12px var(--gs)}
.lv-gt.on svg{color:#fff}
.lv-gtc{min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:9px;background:#ef4444;color:#fff;
  font-size:10.5px;font-weight:800;display:inline-grid;place-items:center}
@media(max-width:820px){
  .lv-gtabs{gap:10px;flex-direction:column}
  .lv-g,.lv-caps{width:100%;box-sizing:border-box}
  .lv-gt{padding:8px 11px;font-size:12.5px}
}
/* «Νέο αίτημα» μέσα στο «Οι άδειές μου» (HRMS) — δεξιά στην κεφαλίδα της λίστας */
.lv-boxh .lv-newin{margin-left:auto;padding:7px 13px;font-size:12.5px}
.lv-av.ph{overflow:hidden;padding:0;background:#e2e8f0}
.lv-av.ph img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
/* ===================================================================
   Άδειες → «Μέρες ανά άτομο» (module 64 · shard 33) — ΠΡΙΝ το 36-mobile
   =================================================================== */
.ld-bar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:14px 18px 4px}
.ld-bar .lv-fld.sm{min-width:0}
.ld-segs{display:flex;gap:6px;flex-wrap:wrap}
.ld-tip{display:flex;gap:7px;align-items:flex-start;padding:6px 18px 0;margin:0 0 10px}
.ld-tip svg{flex:none;margin-top:2px;color:var(--lv2,#0E8F6F)}
.ld-msg{display:flex;gap:9px;align-items:flex-start;margin:0 18px 10px;padding:10px 12px;border-radius:11px;font-size:12.5px;line-height:1.45}
.ld-msg span{flex:1}
.ld-msg svg{flex:none;margin-top:1px}
.ld-msg.err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.ld-msg.ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.ld-msg .lv-fx{margin:-3px -4px 0 0}

/* Πλέγμα γραμμής: λαβή · # · όνομα · κουμπιά · τιμή */
.ld-head,.ld-row{display:grid;grid-template-columns:22px 26px minmax(0,1fr) auto 96px;gap:8px;align-items:center;padding:0 18px}
.ld-head{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-bottom:6px;border-bottom:1.5px solid var(--border)}
.ld-head span:last-child{text-align:right}
.ld-row{min-height:46px;border-bottom:1px solid #eef1f5;position:relative;background:var(--card,#fff)}
.ld-row:hover{background:#f8fafc}
.ld-row.drag{opacity:.45}
.ld-row.ov-b{box-shadow:inset 0 2px 0 var(--lv2,#0E8F6F)}
.ld-row.ov-a{box-shadow:inset 0 -2px 0 var(--lv2,#0E8F6F)}
.ld-grip{color:#b6bfcc;cursor:grab;display:grid;place-items:center;height:30px}
.ld-grip:active{cursor:grabbing}
.ld-row:hover .ld-grip{color:#64748b}
.ld-n{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}
.ld-name{min-width:0;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;padding:6px 0}
.ld-name b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ld-name small{font-size:11px;color:var(--muted)}
.ld-name em{font-style:normal;font-size:10px;font-weight:700;color:#1d4ed8;background:#dbeafe;border-radius:6px;padding:1px 6px}
.ld-mv{display:flex;gap:2px;opacity:0;transition:opacity .12s}
.ld-row:hover .ld-mv,.ld-row:focus-within .ld-mv{opacity:1}
.ld-mv button{width:26px;height:26px;border:none;background:none;border-radius:7px;color:#64748b;cursor:pointer;display:grid;place-items:center;padding:0}
.ld-mv button:hover{background:#eef2f7;color:#0f172a}
.ld-in{width:100%;box-sizing:border-box;border:1.5px solid var(--border);border-radius:9px;padding:7px 10px;font-size:13.5px;
       text-align:right;font-variant-numeric:tabular-nums;background:#fff;color:inherit}
.ld-in:focus{outline:none;border-color:var(--lv2,#0E8F6F);box-shadow:0 0 0 3px rgba(14,143,111,.16)}
.ld-row.chg .ld-in{background:#fffbeb;border-color:#f59e0b;font-weight:700}
.ld-row.bad .ld-in{background:#fef2f2;border-color:#ef4444;color:#b91c1c}

.ld-hid{padding:10px 18px}
.ld-hidt{border:none;background:none;display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;padding:4px 0}
.ld-hidt span{font-size:11px;background:#eef1f5;border-radius:8px;padding:1px 7px}
.ld-hrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0 7px 20px;font-size:13px;color:var(--muted)}
.ld-hrow small{font-size:11px}
.ld-hrow .btn{padding:5px 10px;font-size:12px}

.ld-save{position:sticky;bottom:0;display:flex;gap:9px;align-items:center;justify-content:flex-end;flex-wrap:wrap;
         padding:12px 18px;background:#fffbeb;border-top:1.5px solid #fde68a;font-size:12.5px;z-index:2}
.ld-save span{margin-right:auto}
.ld-e{color:#b91c1c}
.ld-save .btn[disabled]{opacity:.5;cursor:not-allowed}

.ld-cl{max-height:50vh;overflow:auto;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:11px}
.ld-cl>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:9px;align-items:center;padding:8px 12px;font-size:13px;border-bottom:1px solid #eef1f5}
.ld-cl>div:last-child{border-bottom:none}
.ld-cl span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ld-cl s{color:var(--muted)} .ld-cl b{color:var(--lv2,#0E8F6F)}

/* Αφή: κανένα hover → κουμπιά πάντα ορατά, η λαβή (drag) κρύβεται */
@media (hover:none){ .ld-mv{opacity:1} .ld-grip{visibility:hidden;width:0} }
@media (max-width:820px){
  /* η λαβή κρύβεται → 4 στήλες (αλλιώς τα κελιά μετακινούνται μία θέση) */
  .ld-head,.ld-row{grid-template-columns:20px minmax(0,1fr) auto 80px;gap:6px;padding:0 12px}
  .ld-grip,.ld-head span:first-child{display:none}
  .ld-head{font-size:10px;letter-spacing:0}
  .ld-bar{padding:12px 12px 4px} .ld-tip{padding:6px 12px 0} .ld-msg{margin:0 12px 10px}
  .ld-name small{display:none}
  .ld-mv button{width:28px;height:30px}
  .ld-save{padding:10px 12px}
}
/* ===================================================================
   HRMS (module 65) — chips-ενότητες στη θέση του banner · ΠΡΙΝ το 36-mobile
   =================================================================== */
.nav-item.ni-hr svg.i{color:#c084fc}
.hr-page{max-width:1180px}
.hr-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:12px;margin-bottom:18px}
.hr-chip{--c:#0a6d53;--c2:#10b981;position:relative;display:flex;align-items:center;gap:12px;min-width:0;text-align:left;
  padding:12px 14px;border-radius:16px;border:1.5px solid #e3e8ef;background:var(--card,#fff);color:#1c2536;cursor:pointer;
  box-shadow:0 1px 2px rgba(15,23,42,.05);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}
.hr-chip:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--c2) 55%,#e3e8ef);
  box-shadow:0 8px 20px color-mix(in srgb,var(--c) 16%,transparent)}
.hr-chip:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--c2) 40%,transparent)}
.hr-ic{flex:none;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:var(--c);
  background:linear-gradient(135deg,color-mix(in srgb,var(--c2) 18%,#fff),color-mix(in srgb,var(--c2) 8%,#fff));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c2) 22%,transparent);transition:background .16s ease,color .16s ease}
.hr-tx{min-width:0;display:flex;flex-direction:column;gap:2px}
.hr-tx b{font-size:14.5px;font-weight:750;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hr-tx small{font-size:11.5px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hr-chip.soon .hr-tx small{color:#94a3b8;font-style:italic}
.hr-n{position:absolute;top:-7px;right:-7px;min-width:21px;height:21px;padding:0 6px;box-sizing:border-box;border-radius:11px;
  background:#ef4444;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid var(--bg,#f4f6fa)}
/* Επιλεγμένο: γέμισμα με το χρώμα της ενότητας — ξεκάθαρο με μια ματιά */
.hr-chip.on{border-color:transparent;color:#fff;background:linear-gradient(125deg,var(--c),var(--c2));
  box-shadow:0 10px 24px color-mix(in srgb,var(--c) 34%,transparent),inset 0 1px 0 rgba(255,255,255,.18);transform:translateY(-1px)}
.hr-chip.on .hr-ic{color:#fff;background:rgba(255,255,255,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.hr-chip.on .hr-tx small{color:rgba(255,255,255,.85);font-style:normal}
.hr-chip.on::after{content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;margin-left:-7px;border-radius:3px;
  background:var(--c2);transform:rotate(45deg);box-shadow:3px 3px 6px color-mix(in srgb,var(--c) 18%,transparent)}
/* Εναλλαγή ενότητας: ήπιο fade ΜΟΝΟ όταν αλλάζει chip (όχι σε re-render — shard 02) */
.hr-body.hr-in{animation:hrIn .22s ease both}
@keyframes hrIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Πλαίσιο κάθε ενότητας: διακεκομμένο, απαλό χρώμα του chip — ό,τι ανήκει στην ενότητα ζει ΜΕΣΑ */
.hr-frame{--c:#0a6d53;--c2:#10b981;border:1.5px dashed color-mix(in srgb,var(--c2) 38%,#e3e8ef);border-radius:20px;padding:16px 16px 18px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--c2) 7%,#fff),color-mix(in srgb,var(--c2) 3%,#fff) 240px,color-mix(in srgb,var(--c2) 2.5%,#fff));
  min-width:0}
.hr-frame .lv-ebar{margin-top:0}
.hr-frame>.hr-soon{border:none;background:none;padding:34px 12px}

/* Υπό κατασκευή */
.hr-soon{--c:#1d4ed8;--c2:#3b82f6;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;
  padding:52px 24px;border-radius:20px;border:1.5px dashed color-mix(in srgb,var(--c2) 35%,#e3e8ef);
  background:radial-gradient(120% 80% at 50% 0%,color-mix(in srgb,var(--c2) 9%,#fff),var(--card,#fff) 70%)}
.hr-soon-ic{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;color:#fff;margin-bottom:6px;
  background:linear-gradient(135deg,var(--c),var(--c2));box-shadow:0 12px 28px color-mix(in srgb,var(--c) 30%,transparent)}
.hr-soon h2{margin:0;font-size:20px;font-weight:800;color:#1c2536}
.hr-soon p{margin:0;max-width:420px;font-size:13.5px;color:#64748b;line-height:1.55}
.hr-soon-tag{margin-top:8px;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:5px 11px;border-radius:999px;
  color:var(--c);background:color-mix(in srgb,var(--c2) 12%,#fff);border:1px solid color-mix(in srgb,var(--c2) 28%,transparent)}

/* Άδειες ενσωματωμένες (χωρίς banner): tabs + «Νέο αίτημα» σε μία σειρά */
.lv-ebar{display:flex;align-items:flex-end;gap:10px;margin:0 0 14px}
.lv-ebar .lv-tabs,.lv-ebar .lv-gtabs{flex:1;min-width:0;margin:0}
.lv-ebar>.btn{flex:none;margin-bottom:6px}

@media(prefers-reduced-motion:reduce){ .hr-chip,.hr-chip:hover{transition:none;transform:none} .hr-body.hr-in{animation:none} }
@media(max-width:820px){
  .hr-chips{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding:8px 6px 20px;margin:-8px -6px -2px;scrollbar-width:none}
  .hr-chips::-webkit-scrollbar{display:none}
  .hr-chip{flex:0 0 auto;min-width:0;scroll-snap-align:start;padding:10px 13px 10px 10px;gap:10px;border-radius:14px}
  .hr-chip:hover{transform:none}
  .hr-ic{width:36px;height:36px;border-radius:11px}
  .hr-tx small{display:none}
  .hr-chip.on::after{display:none}
  .lv-ebar{flex-direction:column-reverse;align-items:stretch;gap:8px}
  .lv-ebar>.btn{align-self:flex-end;margin:0}
  .hr-soon{padding:36px 18px}
  .hr-frame{padding:12px 10px 14px;border-radius:16px}
}
/* ===================================================================
   Μπάρα «νέα έκδοση» (module 66) — σταθερή στην κορυφή, δεν μπλοκάρει · ΠΡΙΝ το 36-mobile
   Το σώμα κατεβαίνει κατά --updh (το μετρά το updFit) — ίδιο μοτίβο με το .preview-bar.
   =================================================================== */
.upd-bar{position:fixed;top:0;left:0;right:0;z-index:230;display:flex;align-items:center;gap:12px;
  padding:8px 12px 8px 16px;min-height:40px;box-sizing:border-box;color:#fff;font-size:12.5px;line-height:1.35;
  background:linear-gradient(110deg,#0b3b8f,#2563eb 55%,#0ea5e9 130%);box-shadow:0 2px 12px rgba(11,59,143,.35);
  animation:updIn .28s ease-out both}
@keyframes updIn{from{transform:translateY(-100%)}to{transform:none}}
.upd-ic{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.18)}
.upd-tx{flex:1;min-width:0;display:flex;flex-wrap:wrap;column-gap:6px}
.upd-tx b{font-weight:750}
.upd-tx span{opacity:.92}
.upd-go{flex:none;display:inline-flex;align-items:center;gap:6px;border:none;cursor:pointer;border-radius:9px;padding:6px 13px;
  background:#fff;color:#0b3b8f;font-size:12.5px;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.15);white-space:nowrap}
.upd-go:hover{background:#eef4ff}
.upd-x{flex:none;width:28px;height:28px;border:none;border-radius:8px;background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;opacity:.85}
.upd-x:hover{background:rgba(255,255,255,.18);opacity:1}
.upd-bar .upd-s{display:none}
body.has-upd{padding-top:var(--updh,40px)}
body.has-upd aside{top:var(--updh,40px);height:calc(100vh / var(--zf,1) - var(--updh,40px))}
body.has-upd #chatPanel{top:calc(70px + var(--updh,40px))}
@media(prefers-reduced-motion:reduce){ .upd-bar{animation:none} }
@media(max-width:900px){
  /* κινητό: σύντομο κείμενο, ΜΙΑ σειρά με το κουμπί — η μπάρα μένει ~50px */
  .upd-bar{padding:7px 6px 7px 10px;gap:8px}
  .upd-bar .upd-l{display:none}
  .upd-bar .upd-s{display:inline}
  .upd-bar .upd-tx.upd-s{display:block;font-size:12px}
  .upd-ic{width:24px;height:24px}
  .upd-go{padding:6px 10px;font-size:12px}
  .upd-x{width:26px}
  body.has-upd aside.sidebar-wrap{top:var(--updh,40px);height:calc(100dvh / var(--zf,1) - var(--updh,40px))}
  body.has-upd #chatPanel{top:var(--updh,40px)}
}

/* God Mode → tab «Ενημέρωση» */
.upd-card{border-left:4px solid #2563eb;max-width:720px}
.upd-card-b{padding:4px 16px 16px;font-size:13px;line-height:1.55}
.upd-card-b p{margin:0 0 10px}
.upd-note{display:flex;gap:7px;align-items:flex-start;font-size:12px;color:var(--muted);background:#f5f8ff;border-radius:10px;padding:9px 11px}
.upd-note svg{flex:none;margin-top:2px;color:#2563eb}
.upd-who{display:flex;gap:16px;margin:4px 0 14px;font-size:12.5px;font-weight:600}
.upd-who span{display:inline-flex;align-items:center;gap:6px}
.upd-who .dot{display:inline-block}
.upd-send[disabled]{opacity:.5;cursor:not-allowed}
/* Αριθμός έκδοσης (docs/sql/71) */
.upd-ver{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13px;margin:0 0 12px}
.upd-ver b{font-weight:800;color:#2563eb;background:#eef4ff;border-radius:7px;padding:2px 8px}
.upd-ver span{flex-basis:100%;font-size:12px;color:var(--muted)}
.upd-frm{padding:16px 20px}
.upd-frm .upd-ver{margin:0}
.upd-frm input#updVer{font-size:15px;font-weight:700;letter-spacing:.02em;max-width:220px}
.upd-hint{font-size:11.5px;color:var(--muted);margin-top:6px}
.upd-q{margin:14px 0 0;font-size:13px;padding-top:12px;border-top:1px dashed var(--border)}
.side-brand .app-ver{white-space:nowrap}
/* ===================================================================
   Άδειες → «Προσωπικό» (module 67) — οργανόγραμμα σε επίπεδα · ΠΡΙΝ το 36-mobile
   =================================================================== */
.oc-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.oc-kp{display:flex;gap:8px;flex-wrap:wrap;margin-right:auto}
.oc-kp span{background:#fff;border:1.5px solid #e3e8ef;border-radius:12px;padding:6px 12px;font-size:12px;color:#64748b;display:flex;gap:6px;align-items:center}
.oc-kp b{font-size:15px;color:#1c2536}
.oc-d{width:8px;height:8px;border-radius:50%;display:inline-block}.oc-d.here{background:#16a34a}.oc-d.away{background:#f97316}
.oc-sw{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:650;color:#475569;cursor:pointer;user-select:none}
.oc-sw input{display:none}
.oc-sw span{width:34px;height:20px;border-radius:10px;background:#cbd5e1;position:relative;transition:background .15s}
.oc-sw span::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .15s}
.oc-sw input:checked+span{background:#0E8F6F}.oc-sw input:checked+span::after{transform:translateX(14px)}
.oc-bar.ed{background:#fffbeb;border:1.5px solid #fde68a;border-radius:14px;padding:8px 10px}
.oc-edt{margin-right:auto;display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:650;color:#92400e}

.oc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.oc.has-sel .oc-grid{grid-template-columns:minmax(0,1fr) 310px}
.oc-chart{min-width:0;display:flex;flex-direction:column;align-items:stretch;padding:2px 0 6px}
/* Επίπεδα & γραμμές σύνδεσης: κορμός στο κέντρο + οριζόντια ράγα πάνω από κάθε επίπεδο */
.oc-lvl{position:relative;padding-top:22px}
.oc-lvl:first-child{padding-top:0}
.oc-lvl:not(:first-child)::before{content:"";position:absolute;top:0;left:50%;width:2px;height:12px;background:#cbd5e1}
.oc-row{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding-top:10px}
.oc-lvl:first-child .oc-row{padding-top:0}
/* many: ράγα σχεδόν σε όλο το πλάτος · few: από το κέντρο της 1ης ως της τελευταίας κάρτας + «δοντάκια» · one: μόνο κορμός */
.oc-chart{--cw:176px}
.oc-lvl:not(:first-child) .oc-row::before{content:"";position:absolute;top:0;left:12%;right:12%;height:2px;background:#cbd5e1;border-radius:2px}
.oc-lvl.few{--rw:calc((var(--n) - 1) * (var(--cw) + 12px) / 2)}
.oc-lvl.few:not(:first-child) .oc-row::before{left:calc(50% - var(--rw));right:calc(50% - var(--rw))}
.oc-lvl.few:not(:first-child) .oc-node::before{content:"";position:absolute;top:-11px;left:50%;width:2px;height:10px;background:#cbd5e1}
.oc-lvl.one:not(:first-child)::before{height:22px}
.oc-lvl.one .oc-row::before{display:none}
.oc-node{position:relative;width:var(--cw);background:#fff;border:1.5px solid #e3e8ef;border-radius:16px;padding:11px 12px 10px;cursor:pointer;
  box-shadow:0 2px 6px rgba(15,23,42,.05);transition:transform .15s,box-shadow .15s,border-color .15s;text-align:left;outline:none}
.oc-node:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(15,23,42,.1);border-color:color-mix(in srgb,var(--dc) 45%,#e3e8ef)}
.oc-node:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--dc) 35%,transparent)}
.oc-node.sel{border-color:var(--dc);box-shadow:0 0 0 3px color-mix(in srgb,var(--dc) 20%,transparent),0 8px 18px color-mix(in srgb,var(--dc) 20%,transparent)}
.oc-node.none{opacity:.72}
.oc-top{display:flex;align-items:center;gap:8px}
.oc-ic{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:#fff;flex:none;background:var(--dc)}
.oc-nm{font-size:13px;font-weight:750;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.oc-mid{display:flex;align-items:flex-end;gap:6px;margin:5px 0 7px}
.oc-t{margin-left:auto;font-size:22px;font-weight:800;line-height:1;flex:none}
.oc-sub{font-size:11px;color:#64748b;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-bottom:2px}
.oc-pb{height:6px;border-radius:4px;background:#fde7cc;overflow:hidden}
.oc-node.none .oc-pb{background:#eef1f5}
.oc-pb i{display:block;height:100%;background:#16a34a;border-radius:4px}
.oc-ft{display:flex;justify-content:space-between;font-size:10.5px;margin-top:6px;color:#94a3b8}
.oc-ft .h{color:#15803d}.oc-ft .a{color:#c2410c}
.oc-kids{font-size:10.5px;color:var(--dc);font-weight:750;margin-top:5px}

/* Διαμόρφωση */
.oc-lvl.ed{border:1.5px dashed #cbd5e1;border-radius:16px;padding:10px 10px 12px;margin-top:22px;background:rgba(255,255,255,.55)}
.oc-lvl.ed:first-child{margin-top:0}
.oc-lvl.ed::before{top:-24px;height:22px}
.oc-lvl.ed .oc-row{padding-top:0}.oc-lvl.ed .oc-row::before,.oc-lvl.ed .oc-node::before{display:none}
.oc-lh{display:flex;align-items:center;gap:6px;margin:0 2px 8px;font-size:12px;color:#64748b}
.oc-lh b{color:#1c2536}.oc-lh span{margin-right:auto}
.oc-lh .lv-fx[disabled]{opacity:.3;cursor:not-allowed}
.oc-lvl.ed .oc-node{cursor:grab}
.oc-mv{display:flex;justify-content:space-between;margin-top:8px;padding-top:7px;border-top:1px solid #eef1f5}
.oc-mv button{width:30px;height:26px;border:none;border-radius:8px;background:#f1f5f9;color:#475569;cursor:pointer;display:grid;place-items:center;padding:0}
.oc-mv button:hover:not([disabled]){background:#e2e8f0;color:#0f172a}
.oc-mv button[disabled]{opacity:.3;cursor:not-allowed}
.oc-drop{width:100%;padding:18px;text-align:center;font-size:12px;color:#94a3b8}

/* Πάνελ τμήματος (div — ΟΧΙ aside) */
.oc-dr{position:sticky;top:12px;background:#fff;border:1.5px solid #e3e8ef;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px rgba(15,23,42,.1);max-height:calc(100vh - 40px);display:flex;flex-direction:column}
.oc-dh{display:flex;align-items:flex-start;gap:10px;padding:13px 12px 12px 15px;color:#fff;background:linear-gradient(120deg,color-mix(in srgb,var(--dc) 80%,#000),var(--dc))}
.oc-dh div{flex:1;min-width:0}.oc-dh b{display:block;font-size:15px}.oc-dh span{font-size:11.5px;opacity:.92}
.oc-x{width:28px;height:28px;border:none;border-radius:8px;background:rgba(255,255,255,.18);color:#fff;cursor:pointer;display:grid;place-items:center;flex:none}
.oc-db{overflow-y:auto;padding-bottom:8px}
.oc-sec{display:flex;align-items:center;gap:6px;padding:10px 15px 4px;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}
.oc-sec span{background:#f1f5f9;border-radius:8px;padding:0 6px;letter-spacing:0}
.oc-bk{display:none}
.oc-p{display:flex;align-items:center;gap:9px;padding:6px 15px;cursor:pointer}
.oc-p:hover{background:#f8fafc}
.oc-av{width:30px;height:30px;font-size:11px;flex:none}
.oc-av.away{filter:grayscale(1);opacity:.6}
.oc-pn{flex:1;min-width:0;display:flex;flex-direction:column}
.oc-pn b{font-size:12.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oc-pn small{font-size:11px;color:#64748b}
.oc-b{font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap}
.oc-b.here{background:#e8f7ef;color:#15803d}.oc-b.away{background:#fff3e0;color:#c2410c}

@media(max-width:1100px){ .oc.has-sel .oc-grid{grid-template-columns:minmax(0,1fr) 280px} .oc-chart{--cw:160px} }
/* Κινητό: τα επίπεδα γίνονται στοίβα, το πάνελ ανεβαίνει από κάτω */
@media(max-width:820px){
  .oc.has-sel .oc-grid{grid-template-columns:minmax(0,1fr)}
  .oc-row{gap:8px}
  .oc-node{width:calc(50% - 4px)}
  .oc-lvl:not(:first-child) .oc-row::before,.oc-lvl.few:not(:first-child) .oc-node::before{display:none}
  .oc-lvl:not(:first-child)::before{height:20px}
  .oc-bk{display:block;position:fixed;inset:0;z-index:149;background:rgba(15,23,42,.35)}
  .oc-dr{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:150;max-height:72vh;border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(15,23,42,.25)}
  .oc-bar .btn{padding:7px 11px}
}

/* Πάνελ «Σε άδεια σήμερα» */
.oc-kpb{background:#fff7ed;border:1.5px solid #fed7aa;border-radius:12px;padding:6px 12px;font:inherit;font-size:12px;color:#9a3412;display:flex;gap:6px;align-items:center;cursor:pointer;transition:background .15s,box-shadow .15s}
.oc-kpb b{font-size:15px;color:#c2410c}
.oc-kpb:hover,.oc-kpb.on{background:#ffedd5;box-shadow:0 0 0 3px rgba(249,115,22,.15)}
.oc-ab{border:none;background:none;padding:0;font:inherit;font-size:10.5px;color:#c2410c;cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}
.oc-ab:hover{color:#9a3412}
.oc-ls{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid #eef1f5;flex-wrap:wrap}
.oc-lsi{flex:1;min-width:160px;display:flex;align-items:center;gap:7px;border:1.5px solid #e3e8ef;border-radius:10px;padding:0 10px;color:#94a3b8;background:#f8fafc}
.oc-lsi:focus-within{border-color:#f97316;background:#fff}
.oc-lsi input{flex:1;min-width:0;border:none;outline:none;background:none;padding:8px 0;font-size:12.5px;color:#1c2536}
.oc-chip{display:inline-flex;align-items:center;gap:5px;border:none;border-radius:999px;padding:4px 10px;background:#ffedd5;color:#9a3412;font-size:11.5px;font-weight:700;cursor:pointer}
.oc-lvr{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}
.oc-lvr small{font-size:10px;color:#94a3b8;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ===================================================================
   Άδειες (HRMS) → αναζήτηση + «Καρτέλα άδειας» (module 68) · ΠΡΙΝ το 36-mobile
   Κυρίαρχο: ο μεγάλος αριθμός «διαθέσιμες μέρες κανονικής». Τα υπόλοιπα δευτερεύοντα.
   =================================================================== */
.lc{position:relative;margin:0 0 14px}
.lc-bar{display:flex;align-items:center;gap:10px;height:46px;padding:0 14px;background:#fff;border:1.5px solid #cfe9dd;border-radius:14px;color:#0E8F6F;
  transition:border-color .15s,box-shadow .15s}
.lc-bar:focus-within{border-color:#0E8F6F;box-shadow:0 0 0 4px rgba(14,143,111,.12)}
.lc-bar input{flex:1;min-width:0;border:none;outline:none;background:none;font-size:14px;color:#1c2536}
.lc-kbd{font-size:11px;font-weight:700;color:#64748b;border:1px solid #cbd5e1;border-radius:6px;padding:1px 7px}
.lc-drop{position:absolute;left:0;top:52px;width:min(560px,100%);z-index:20;background:#fff;border:1.5px solid #e3e8ef;border-radius:14px;
  box-shadow:0 14px 34px rgba(15,23,42,.14);overflow:hidden;padding:4px 0}
.lc-opt{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer}
.lc-opt.hi,.lc-opt:hover{background:#ecfdf5}
.lc-av{width:32px;height:32px;font-size:11px;flex:none}
.lc-on{flex:1;min-width:0;display:flex;flex-direction:column}
.lc-on b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lc-on small{font-size:11px;color:#64748b}
.lc-tag{font-size:11px;font-weight:750;color:#0b6b52;background:#e4f5ee;border-radius:999px;padding:3px 9px;white-space:nowrap}
.lc-tag.away{color:#c2410c;background:#fff3e0}
.lc-none{padding:12px 14px;font-size:12.5px;color:#64748b}

.lc-card{position:relative;margin-top:14px;background:#fff;border:1.5px solid #bfe6d4;border-radius:20px;overflow:hidden;
  box-shadow:0 22px 50px rgba(6,78,59,.22),0 6px 14px rgba(15,23,42,.08);animation:lcIn .22s ease-out}
@keyframes lcIn{from{opacity:0;transform:translateY(-6px) scale(.99)}to{opacity:1;transform:none}}
/* Όνομα + αριθμός = ΕΝΑ πράσινο μπλοκ με σκιά */
.lc-top{background:linear-gradient(125deg,#064e3b,#0a6d53 40%,#10b981);color:#fff;box-shadow:0 8px 20px rgba(6,78,59,.28);position:relative;z-index:1}
.lc-h{display:flex;align-items:center;gap:12px;padding:14px 14px 4px 18px}
.lc-hav{width:44px;height:44px;font-size:15px;flex:none;box-shadow:0 0 0 3px rgba(255,255,255,.35)}
.lc-hn{flex:1;min-width:0;display:flex;flex-direction:column}
.lc-hn b{font-size:17px;letter-spacing:-.01em}.lc-hn span{font-size:12.5px;opacity:.9}
.lc-hn em{font-style:normal;font-weight:800;background:#fff3e0;color:#c2410c;border-radius:999px;padding:0 7px}
/* Κλείσιμο: έντονο, ευδιάκριτο */
.lc-x{width:38px;height:38px;border:none;border-radius:50%;background:#fff;color:#064e3b;cursor:pointer;display:grid;place-items:center;flex:none;
  box-shadow:0 4px 12px rgba(0,0,0,.25);transition:transform .12s,background .12s}
.lc-x svg{stroke-width:3}
.lc-x:hover{transform:scale(1.08);background:#fef2f2;color:#b91c1c}
/* ΤΟ ΚΥΡΙΟ: διαθέσιμες μέρες */
.lc-hero{display:flex;align-items:center;gap:26px;flex-wrap:wrap;padding:10px 22px 20px}
.lc-big{display:flex;align-items:center;gap:14px}
.lc-big b{font-size:68px;font-weight:850;line-height:.9;letter-spacing:-.02em;text-shadow:0 4px 14px rgba(0,0,0,.18)}
.lc-big span{font-size:17px;font-weight:750;line-height:1.3}
.lc-big em{font-style:normal;font-size:13px;font-weight:600;opacity:.88}
.lc-meter{flex:1;min-width:240px;max-width:460px}
/* Μπάρα: σκούρο = πήρε · λευκό = διαθέσιμες · ριγέ πορτοκαλί = εκκρεμούν */
.lc-mb{height:14px;border-radius:8px;background:#fff;overflow:hidden;display:flex;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6),0 2px 6px rgba(0,0,0,.15)}
.lc-mb i{display:block;height:100%}
.lc-mb i.u{background:#052e22}
.lc-mb i.p{background:repeating-linear-gradient(135deg,#fb923c 0 5px,#fdba74 5px 10px)}
.lc-sc{display:flex;justify-content:space-between;font-size:10.5px;opacity:.8;margin-top:4px}
.lc-lg{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;font-size:12px}
.lc-lg span{display:flex;align-items:center;gap:6px}
.lc-lg i{width:11px;height:11px;border-radius:3px;display:inline-block}
.lc-lg i.u{background:#052e22;box-shadow:0 0 0 1.5px rgba(255,255,255,.6)}
.lc-lg i.a{background:#fff}
.lc-lg i.p{background:repeating-linear-gradient(135deg,#fb923c 0 3px,#fdba74 3px 6px)}
/* Δευτερεύοντα: μόνο με κλικ */
.lc-more{display:flex;align-items:center;gap:6px;width:100%;border:none;background:#f8fafc;border-top:1px solid #eef1f5;padding:9px 16px;
  font:inherit;font-size:12.5px;font-weight:650;color:#64748b;cursor:pointer;text-align:left}
.lc-more:hover,.lc-more.on{color:#0b6b52;background:#f0faf5}
.lc-det{padding:12px 16px 14px;border-top:1px solid #eef1f5;font-size:12.5px;color:#475569}
.lc-kv{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:8px}
.lc-kv span{display:flex;gap:6px;align-items:baseline;color:#64748b}.lc-kv b{color:#1c2536;font-size:14px}
.lc-ot{display:flex;align-items:center;gap:7px;padding:4px 0;color:#64748b}
.lc-ot i{width:9px;height:9px;border-radius:3px}.lc-ot b{color:#1c2536;margin-left:4px}
.lc-hh{display:flex;align-items:center;gap:10px;margin:12px 0 6px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}
.lc-hh .lv-fld.sm{margin-left:auto;min-width:0;width:auto;padding:4px 8px;font-size:12px}
.lc-tl{border-left:2px solid #e3e8ef;margin-left:5px;padding-left:14px}
.lc-ti{position:relative;display:flex;align-items:center;gap:10px;padding:7px 0}
.lc-ti::before{content:"";position:absolute;left:-21px;top:50%;margin-top:-6px;width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid #94a3b8}
.lc-ti.ok::before{border-color:#16a34a}.lc-ti.no::before{border-color:#dc2626}.lc-ti.wait::before,.lc-ti.hr::before{border-color:#f97316}
.lc-ti div{flex:1;min-width:0}.lc-ti b{font-size:12.5px;color:#1c2536}.lc-ti small{display:block;font-size:11px;color:#64748b}
@media(max-width:820px){
  .lc-kbd{display:none}
  .lc-hero{padding:8px 16px 16px;gap:12px}
  .lc-h{padding:12px 12px 4px 14px}
  .lc-big b{font-size:54px}
  .lc-meter{min-width:0;flex-basis:100%}
}
/* ===================================================================
   Άδειες → Ημερολόγιο: παστέλ κάρτες στατιστικών (module 69) + ομορφότερο πλέγμα
   ΜΕΤΑ το 35j (υπερισχύει) · ΠΡΙΝ το 36-mobile. Πλέγμα: ΠΑΝΤΑ repeat(7,minmax(0,1fr)) (calfit).
   =================================================================== */
.lv-srow{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.lv-st2{display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;font:inherit;color:inherit;
  background:var(--sb);border:1.5px solid color-mix(in srgb,var(--sa) 35%,transparent);border-radius:18px;padding:14px 14px 14px 16px;
  transition:transform .15s,box-shadow .15s,border-color .15s}
.lv-st2:hover{transform:translateY(-2px);box-shadow:0 10px 22px color-mix(in srgb,var(--sa) 28%,transparent);border-color:var(--sa)}
.lv-st2:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--sa) 45%,transparent)}
.lv-sti{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;flex:none;color:var(--sf);background:#fff;
  box-shadow:0 2px 6px color-mix(in srgb,var(--sa) 30%,transparent)}
.lv-stt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lv-st2 .lv-stl{font-size:12px;font-weight:650;color:color-mix(in srgb,var(--sf) 75%,#475569);margin:0}
.lv-st2 .lv-stv{font-size:26px;font-weight:850;color:var(--sf);line-height:1.05}
.lv-stgo{color:var(--sf);opacity:.45;transition:opacity .15s,transform .15s}
.lv-st2:hover .lv-stgo{opacity:1;transform:translateX(2px)}

/* Popup στατιστικών */
.modal-h.lv-sth{background:var(--sb);border-bottom:1.5px solid color-mix(in srgb,var(--sa) 35%,transparent);align-items:center}
.modal-h.lv-sth h2{color:var(--sf)}
.lv-stb{max-height:60vh;overflow-y:auto;padding-top:6px}
.lv-prow{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid #f1f5f9}
.lv-prow:last-child{border-bottom:none}
.lv-prb{flex:1;min-width:0;display:flex;flex-direction:column}
.lv-prb b{font-size:13px}.lv-prb small{font-size:11.5px;color:var(--muted)}
.lv-sb2{font-size:11px;font-weight:750;border-radius:999px;padding:3px 9px;white-space:nowrap;flex:none}
.lv-sb2.o{background:#fff4ec;color:#c2410c}.lv-sb2.b{background:#eef0ff;color:#4338ca}.lv-sb2.y{background:#fdf7e3;color:#a16207}
.lv-sk{display:flex;gap:10px;margin-bottom:12px}
.lv-sk span{flex:1;background:#e9f8f1;border-radius:14px;padding:10px 12px;font-size:12px;color:#047857;display:flex;flex-direction:column}
.lv-sk b{font-size:22px}
.lv-sbars{display:flex;flex-direction:column;gap:6px}
.lv-sbr{display:grid;grid-template-columns:minmax(0,150px) 1fr 30px;gap:10px;align-items:center;font-size:12.5px}
.lv-sbr span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv-sbr i{height:8px;border-radius:5px;background:#eef1f5;overflow:hidden}
.lv-sbr em{display:block;height:100%;background:linear-gradient(90deg,#34d399,#0E8F6F);border-radius:5px}
.lv-sbr b{text-align:right}

/* Πλέγμα ημερολογίου */
.lv-nav b{font-size:17px;letter-spacing:-.01em}
.lv-narw{border-radius:50%;width:32px;height:32px}
.lv-cal{border-radius:18px;box-shadow:0 4px 16px rgba(15,23,42,.06)}
.lv-dow{background:#f4faf7}
.lv-dow div{padding:10px 6px;color:#0b6b52}
.lv-dow div.we{color:#94a3b8}
.lv-day{transition:background .12s;min-height:96px}
.lv-day:hover{background:#f8fbfa}
.lv-day.off{background:repeating-linear-gradient(135deg,#fafbfc 0 8px,#f3f5f8 8px 16px)}
.lv-day.hol{background:#fff5f5}
.lv-hl{margin-left:5px;font-size:9.5px;font-weight:800;color:#e11d48;background:#ffe4e6;border-radius:999px;padding:1px 6px;white-space:nowrap}
.lv-dn{width:auto;min-width:22px;height:22px;border-radius:999px;padding:0 4px;display:flex;align-items:center;justify-content:flex-start;align-self:flex-start}
.lv-day.now{background:#effaf5}
.lv-day.now .lv-dn{background:#0E8F6F;color:#fff;justify-content:center;box-shadow:0 3px 8px rgba(14,143,111,.35)}
.lv-cchip{border-radius:7px;padding:3px 7px;background:color-mix(in srgb,var(--cc,#0E8F6F) 14%,#fff);
  color:color-mix(in srgb,var(--cc,#0E8F6F) 80%,#000);border-left:3px solid var(--cc,#0E8F6F);transition:transform .1s,box-shadow .1s}
.lv-cchip:hover{transform:translateY(-1px);box-shadow:0 3px 8px color-mix(in srgb,var(--cc,#0E8F6F) 30%,transparent)}
.lv-cchip.pend{border-left:3px dashed #94a3b8}
@media(max-width:820px){
  .lv-srow{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .lv-st2{padding:10px;gap:8px;border-radius:14px}
  .lv-sti{width:32px;height:32px;border-radius:10px}
  .lv-st2 .lv-stl{font-size:11px}.lv-st2 .lv-stv{font-size:21px}
  .lv-stgo{display:none}
  .lv-day{min-height:70px}
  .lv-hl{display:none}
  .lv-sbr{grid-template-columns:minmax(0,110px) 1fr 26px}
}
/* =====================================================================
   35q — Κοινόχρηστα & αναζήτηση στη συνομιλία (module 70)
   ΠΡΙΝ το 36-mobile. Πάνελ: #csPanel στο body (div, ΟΧΙ aside — global aside{width}).
===================================================================== */
/* ---- κουμπιά στην κεφαλίδα της συνομιλίας ---- */
.chat-head .ch-tools{margin-left:auto;display:flex;gap:5px;flex:none}
.chat-head .ch-tools + button:last-child{margin-left:4px}
.chat-head .ch-tool{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.16);color:#fff;border:none;cursor:pointer;padding:0}
.chat-head .ch-tool:hover{background:rgba(255,255,255,.26)}
.chat-head .ch-tool.on{background:#fff;color:#1e3a8a}

/* ---- μπάρα αναζήτησης ---- */
.cs-sbar{display:flex;align-items:center;gap:6px;padding:7px 10px;border-bottom:1px solid var(--border);background:#f3f7ff;color:var(--muted)}
.cs-sbar input{flex:1;min-width:0;border:1px solid #cfdaf0;border-radius:9px;padding:7px 10px;font-size:13px;background:#fff;outline:none;color:var(--text)}
.cs-sbar input:focus{border-color:#3b82f6}
.cs-cnt{font-size:11.5px;font-weight:650;color:#46546b;min-width:54px;text-align:right;white-space:nowrap}
.cs-nav{width:28px;height:28px;border:none;border-radius:8px;background:transparent;color:#46546b;display:grid;place-items:center;cursor:pointer;flex:none}
.cs-nav:hover{background:#e3ebfb}
mark.cs-hl{background:#fde68a;color:#1c2536;border-radius:3px;padding:0 1px}
.msg.cs-cur{outline:2px solid #f59e0b;outline-offset:2px}
.msg.cs-flash{animation:csFlash 1.6s ease}
@keyframes csFlash{0%,40%{box-shadow:0 0 0 4px rgba(245,158,11,.55)}100%{box-shadow:0 0 0 0 rgba(245,158,11,0)}}

/* ---- πάνελ ---- */
.cs-panel{position:fixed;z-index:69;background:#fff;display:flex;flex-direction:column;border:1px solid var(--border);box-shadow:-10px 0 30px rgba(21,36,59,.14);min-height:0}
.cs-panel.cs-side{top:70px;bottom:0;width:360px;border-top-left-radius:16px;border-right:none}
.cs-panel.cs-over{top:70px;bottom:0;right:0;width:min(510px,92vw);z-index:71;border-top-left-radius:16px}
.cs-panel.cs-sheet{left:0;right:0;bottom:0;height:78vh;height:78dvh;z-index:151;border-radius:18px 18px 0 0;border:none;box-shadow:0 -10px 30px rgba(21,36,59,.2)}
.cs-back{position:fixed;inset:0;background:rgba(21,36,59,.38);z-index:150}
.cs-head{display:flex;align-items:center;gap:10px;padding:13px 14px 8px;position:relative}
.cs-grab{position:absolute;left:50%;top:6px;width:40px;height:5px;margin-left:-20px;border-radius:3px;background:#d5dbe5}
.cs-sheet .cs-head{padding-top:18px}
.cs-ht{flex:1;min-width:0;display:flex;flex-direction:column}
.cs-ht b{font-size:15px}
.cs-ht span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-x{width:34px;height:34px;border:1px solid var(--border);background:#fff;border-radius:10px;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none}
.cs-tabs{display:flex;gap:6px;padding:2px 14px 8px}
.cs-tab{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:#fff;color:#3b475c;border-radius:999px;padding:6px 11px;font-size:12.5px;font-weight:650;cursor:pointer;min-height:34px;white-space:nowrap}
.cs-tab .cs-n{font-size:11px;font-weight:700;background:#eef1f6;color:var(--muted);border-radius:999px;padding:1px 7px}
.cs-tab.on{background:var(--navy);border-color:var(--navy);color:#fff}
.cs-tab.on .cs-n{background:rgba(255,255,255,.18);color:#fff}
.cs-priv{margin:0 14px 8px;display:flex;align-items:center;gap:7px;font-size:11.5px;color:#46546b;background:#eef3fb;border-radius:9px;padding:7px 10px}
.cs-priv svg{color:#2e6fd8;flex:none}
.cs-flt{display:flex;gap:8px;align-items:center;padding:0 14px 8px}
.cs-f{flex:1;min-width:0;border:1px solid var(--border);border-radius:9px;padding:7px 10px;font-size:12.5px;background:var(--bg);outline:none;min-height:32px}
.cs-f:focus{border-color:var(--accent);background:#fff}
.cs-scroll{flex:1;min-height:0;overflow-y:auto;padding:4px 14px 16px}
.cs-empty{padding:40px 10px;text-align:center;font-size:12.5px;color:var(--muted)}
/* πολυμέσα */
.cs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-content:start}
.cs-grid .lz-sent{grid-column:1/-1}
.cs-mh{grid-column:1/-1;font-size:11px;font-weight:750;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 0 4px}
.cs-grid .cs-mh:first-child{padding-top:2px}
.cs-tile{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:#eef1f6}
.cs-open{display:block;width:100%;height:100%;border:none;padding:0;margin:0;background:none;cursor:zoom-in}
.cs-open img,.cs-open video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.cs-ph{width:100%;height:100%;display:grid;place-items:center;color:#9aa6ba}
.cs-play{position:absolute;left:50%;top:50%;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;background:rgba(21,36,59,.62);color:#fff;display:grid;place-items:center;pointer-events:none}
.cs-dl{position:absolute;top:5px;right:5px;width:28px;height:28px;border:none;border-radius:8px;background:rgba(21,36,59,.66);color:#fff;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .15s}
.cs-tile:hover .cs-dl,.cs-dl:focus-visible{opacity:1}
@media (hover:none){ .cs-dl{opacity:1} }
/* αρχεία & links */
.cs-row{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid #edf0f5}
.cs-rmain{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:none;background:none;padding:6px 4px;text-align:left;cursor:pointer;color:inherit;text-decoration:none;border-radius:9px;font:inherit}
.cs-rmain:hover{background:var(--bg)}
.cs-ext{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:10px;font-weight:800;flex:none;background:#eef1f6;color:var(--navy)}
.cs-ext.pdf{background:#fbe5e4;color:#b3302c} .cs-ext.xls{background:#dff3e8;color:#17784a}
.cs-ext.doc{background:#e2ebfb;color:#2257b0} .cs-ext.zip{background:#fdf3df;color:#8a5a00}
.cs-ext.lnk{font-size:15px}
.cs-rt{min-width:0;display:flex;flex-direction:column}
.cs-rt b{font-size:12.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-rt span{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-rb{width:32px;height:32px;border:1px solid var(--border);background:#fff;border-radius:9px;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none}
.cs-rb:hover{color:var(--text);border-color:#cfd6e2}
@media (prefers-reduced-motion:reduce){ .msg.cs-flash{animation:none} .cs-dl{transition:none} }
/* Με τα κουμπιά 🔍/▦ ο υπότιτλος (τμήμα · ρόλος · κατάσταση) σε ΜΙΑ γραμμή */
.chat-head:has(.ch-tools) > div:not(.avatar){min-width:0;flex:1 1 auto}
.chat-head:has(.ch-tools) > div:not(.avatar) > div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* iOS: πεδίο < 16px → αυτόματο zoom στο πάτημα */
@media (max-width:900px){ .cs-sbar input,.cs-f{font-size:16px} }
/* =====================================================================
   35r — «Updates» (module 71) + επεξεργαστής σημειώσεων στο God Mode (module 72)
   Η λίστα/ανάγνωση ΞΑΝΑΧΡΗΣΙΜΟΠΟΙΕΙ τις κλάσεις dr-* των Αναφορών (35f) — εδώ μόνο
   το χρώμα του module (teal) και ό,τι είναι δικό του. ΠΡΙΝ το 36-mobile.
===================================================================== */
.up-page{--up1:#0f766e;--up2:#14b8a6}
.up-hero{background:linear-gradient(115deg,var(--up1),var(--up2) 145%)}
.up-stats{display:flex;gap:8px}
.up-stat{min-width:92px;padding:8px 14px;border-radius:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18)}
.up-stat b{display:block;font-size:20px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.up-stat span{font-size:11px;color:rgba(255,255,255,.82)}
.up-page .dr-month{color:#0f766e}
.up-page .dr-card:hover{border-color:#99e2d6;box-shadow:0 8px 24px rgba(15,118,110,.12)}
.up-page .dr-date{background:linear-gradient(160deg,#0f766e,#14b8a6);box-shadow:0 4px 12px rgba(15,118,110,.26)}
.up-page .dr-title{color:#11302d;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.up-page .dr-chips i{color:#0f5e57;background:#e6f7f4;border-color:#c5ece5}
.up-page .dr-go{color:#5cc8b8}
.up-card.up-gen .dr-snip{font-style:italic}
.up-new{font-size:10.5px;font-weight:800;color:#fff;background:#e8622d;border-radius:999px;padding:2px 8px;letter-spacing:.02em}
.up-more{display:flex;justify-content:center;padding:6px 0 18px}
.up-mh{background:linear-gradient(120deg,#0f766e,#14b8a6 120%);color:#fff;border-bottom:none}
.up-mh h2{color:#fff}
.up-mh .sub{color:rgba(255,255,255,.85)}
.up-mh .x{color:rgba(255,255,255,.9)}
.up-teasers{display:flex;gap:10px;align-items:flex-start;margin-top:18px;padding:12px 14px;border-radius:12px;background:#f3f6fa;border:1px dashed #cfd8e3;color:#46546b;font-size:13px;line-height:1.55}
.up-teasers svg{flex:none;margin-top:3px;color:#0f766e}
.up-teasers div{display:flex;flex-direction:column;gap:2px}
.up-teasers b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#0f5e57;margin-bottom:2px}

/* ---- God Mode: επεξεργαστής πρόχειρου ---- */
.ue-card{border-left:4px solid #14b8a6;max-width:720px;margin-top:14px}
.ue-tag{font-size:10.5px;font-weight:800;color:#0f5e57;background:#e6f7f4;border-radius:999px;padding:2px 8px;margin-left:6px;text-transform:uppercase;letter-spacing:.04em}
.ue-b0{padding:4px 16px 16px;font-size:13px}
.ue-help{margin:0 0 12px;color:var(--muted);font-size:12.5px;line-height:1.55}
.ue-empty{padding:18px 10px;font-size:12.5px}
.ue-it{border:1px solid var(--border);border-radius:12px;padding:10px;margin-bottom:10px;background:#fff;display:flex;flex-direction:column;gap:8px}
.ue-it.bad{border-color:var(--red)}
.ue-r1{display:flex;gap:6px;align-items:center}
.ue-t{flex:1;min-width:0;border:1px solid var(--border);border-radius:9px;padding:8px 10px;font-size:13.5px;font-weight:700;outline:none}
.ue-t:focus,.ue-b:focus{border-color:#14b8a6}
.ue-b{width:100%;border:1px solid var(--border);border-radius:9px;padding:8px 10px;font-size:13px;line-height:1.5;resize:vertical;outline:none;font-family:inherit}
.ue-ib{width:32px;height:32px;border:1px solid var(--border);background:#fff;border-radius:9px;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none}
.ue-ib:disabled{opacity:.4;cursor:default}
.ue-x:hover:not(:disabled){color:var(--red);border-color:#f3c9c7}
.ue-del{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--red);flex:none}
.ue-yes{background:var(--red);color:#fff;border:none}
.ue-r2{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.ue-r2 label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:700;color:#3b475c}
.ue-r2 select{border:1px solid var(--border);border-radius:9px;padding:6px 8px;font-size:12.5px;background:#fff;min-height:34px;max-width:230px}
.ue-aud{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#0f5e57;background:#e6f7f4;border-radius:999px;padding:5px 10px;margin-left:auto}
.ue-add{margin:2px 0 14px}
.ue-pv{border:1px solid #c5ece5;border-radius:12px;overflow:hidden}
.ue-pvh{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:9px 12px;background:#f0faf8;border-bottom:1px solid #c5ece5;font-size:12.5px}
.ue-pvh b{display:inline-flex;align-items:center;gap:6px;color:#0f5e57;margin-right:auto}
.ue-segs{display:inline-flex;border:1px solid #c5ece5;border-radius:9px;overflow:hidden}
.ue-seg{border:none;background:#fff;padding:6px 10px;font-size:12px;font-weight:650;color:#3b475c;cursor:pointer;min-height:32px}
.ue-seg+.ue-seg{border-left:1px solid #c5ece5}
.ue-seg.on{background:#0f766e;color:#fff}
.ue-pvh select{border:1px solid #c5ece5;border-radius:9px;padding:6px 8px;font-size:12px;background:#fff;min-height:32px;max-width:170px}
.ue-pvb.dr-read{max-height:none;padding:12px 16px 16px;font-size:13px}
.ue-sendn{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:12.5px;color:#0f5e57;background:#e6f7f4;border-radius:9px;padding:8px 10px}
@media (max-width:900px){
  .ue-t,.ue-b,.ue-r2 select,.ue-pvh select{font-size:16px}
  .ue-aud{margin-left:0}
  .up-stats .up-stat{min-width:0}
}
/* ανάγνωση & προεπισκόπηση στο χρώμα του module (οι Αναφορές είναι μωβ) */
.up-modal .dr-h,.ue-pvb .dr-h{color:#0f5e57;border-color:#c5ece5}
.up-modal .dr-ul li::marker,.ue-pvb .dr-ul li::marker{color:#14b8a6}
.ue-sendn span{min-width:0}
/* ---- God Mode: ποιοι διάβασαν (module 73) ---- */
.ur-card{border-left:4px solid #0f766e;max-width:720px;margin-top:14px}
.ur-card .card-h{display:flex;align-items:center;gap:6px}
.ur-rf{margin-left:auto;width:30px;height:30px;border:1px solid var(--border);background:#fff;border-radius:8px;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.ur-b0{padding:4px 16px 16px}
.ur-help{margin:0 0 10px;font-size:12px;color:var(--muted);line-height:1.5}
.ur-empty{padding:16px 8px;font-size:12.5px}
.ur-row{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:8px;cursor:pointer;font:inherit;color:inherit}
.ur-row:hover{border-color:#99e2d6;box-shadow:0 6px 18px rgba(15,118,110,.1)}
.ur-v{flex:none;width:84px;display:flex;flex-direction:column}
.ur-v b{font-size:14.5px;color:#0f5e57}
.ur-v small{font-size:11px;color:var(--muted)}
.ur-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.ur-bar{display:flex;height:8px;border-radius:99px;background:#e9edf3;overflow:hidden}
.ur-bar i{display:block;height:100%}
.ur-bar i.o,.ur-lg i.o,.ur-sec.o .ur-sh i{background:#0f766e}
.ur-bar i.s,.ur-lg i.s,.ur-sec.s .ur-sh i{background:#7dd3c5}
.ur-lg i.n,.ur-sec.n .ur-sh i{background:#cbd3de}
.ur-lg{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:#46546b}
.ur-lg span{display:inline-flex;align-items:center;gap:5px}
.ur-lg i{width:8px;height:8px;border-radius:50%;display:inline-block}
.ur-tot{flex:none;display:flex;flex-direction:column;align-items:flex-end}
.ur-tot b{font-size:16px;font-variant-numeric:tabular-nums}
.ur-tot small{font-size:10.5px;color:var(--muted)}
.ur-modal{width:560px;max-width:95vw}
.ur-modal .modal-b{max-height:min(66vh,640px);overflow:auto;padding:14px 18px}
.ur-sec+.ur-sec{margin-top:16px}
.ur-sh{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;color:#1c2536;margin-bottom:6px}
.ur-sh i{width:10px;height:10px;border-radius:3px;display:inline-block}
.ur-sh span{margin-left:auto;font-size:11.5px;font-weight:800;color:#46546b;background:#eef1f6;border-radius:999px;padding:1px 9px}
.ur-pl{display:flex;flex-direction:column}
.ur-p{display:flex;align-items:center;gap:10px;padding:6px 2px;border-bottom:1px solid #eef1f5}
.ur-av{width:30px;height:30px;font-size:11px;flex:none}
.ur-pn{flex:1;min-width:0;display:flex;flex-direction:column}
.ur-pn b{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ur-pn small{font-size:11px;color:var(--muted)}
.ur-at{flex:none;font-size:11.5px;color:#46546b;font-variant-numeric:tabular-nums}
.ur-none{font-size:12px;color:var(--muted);padding:4px 2px}
@media (max-width:900px){ .ur-row{flex-wrap:wrap} .ur-mid{flex-basis:100%;order:3} .ur-v{width:auto;flex:1} }

/* ---------- Chip «Updates» στο banner του Dashboard (71 updsChipHTML · hero στο 07b) ----------
   ΠΑΝΤΑ μέσα στη ροή (όχι absolute) → δεν μπορεί να πέσει πάνω σε κείμενο· σε στενό πλάτος
   αναδιπλώνεται ή μικραίνει. Πορτοκαλί = ίδιο με το επιλεγμένο στοιχείο μενού (04-layout). */
.hero .hrow>.hactions.up-hac{margin-left:auto;align-self:center;flex:0 0 auto}
.upc{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px 0 12px;border-radius:999px;
  font:inherit;font-size:12.5px;font-weight:600;letter-spacing:.2px;line-height:1;white-space:nowrap;cursor:pointer;
  color:rgba(255,255,255,.58);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  transition:background .2s,color .2s,box-shadow .2s}
.upc svg{opacity:.8;flex:none}
.upc:hover{color:#fff;background:rgba(255,255,255,.13)}
.upc:focus-visible{outline:2px solid #fff;outline-offset:2px}
.upc.on{color:#fff;font-weight:700;background:linear-gradient(90deg,#e8622d,#ff7a3d);border-color:rgba(255,196,166,.75);
  box-shadow:0 0 0 3px rgba(232,98,45,.24),0 6px 18px rgba(232,98,45,.5)}
.upc.on svg{opacity:1}
.upc.on:hover{filter:brightness(1.06)}
.upc .n{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#fff;color:#e8622d;
  font-weight:800;font-size:11.5px;display:inline-grid;place-items:center;font-variant-numeric:tabular-nums}
.upc.glow{animation:upcGlow 1.5s ease-out 3}
@keyframes upcGlow{
  0%{box-shadow:0 0 0 3px rgba(232,98,45,.24),0 6px 18px rgba(232,98,45,.5)}
  45%{box-shadow:0 0 0 9px rgba(255,122,61,.18),0 6px 26px rgba(255,122,61,.75)}
  100%{box-shadow:0 0 0 3px rgba(232,98,45,.24),0 6px 18px rgba(232,98,45,.5)}}
@media (prefers-reduced-motion:reduce){ .upc.glow{animation:none} }
/* Κινητό: τίτλος & chip στην ΙΔΙΑ γραμμή, το κείμενο στενεύει (δεν καλύπτεται)· αχνό = κρυφό· μόνο ☆ + αριθμός.
   Διπλή κλάση για να νικήσει το «.hero .hactions{width:100%}» του 36-mobile (φορτώνει μετά). */
@media (max-width:600px){
  .hero .hrow{flex-wrap:nowrap}
  .hero .hrow>.htxt{flex:1 1 auto;min-width:0}
  .hero .hrow>.hactions.up-hac{width:auto;margin-left:0;align-self:flex-start}
  .hero .hrow>.hactions.up-hac:not(:has(>.upc.on)):not(:has(>:not(.upc))){display:none}
  .upc:not(.on){display:none}
  .upc{height:30px;padding:0 9px 0 8px;gap:6px}
  .upc .t{display:none}
  .upc.on{box-shadow:0 0 0 2px rgba(232,98,45,.24),0 4px 12px rgba(232,98,45,.45)}
}
/* ===== Εργασίες Manuals (modules 75·76 · shard 37) — κυανό-πετρόλ ===== */
:root{--mn1:#073b52;--mn2:#0891b2;--mn3:#22d3ee;--mns:#e3f6fa;--mnb:#bfe8f1}
.nav-item.ni-mn svg.i{color:#22d3ee}
.notif .ic.manual{background:#e3f6fa;color:#0891b2}
.mn{padding-bottom:120px}
.mn-lock{display:flex;flex-direction:column;align-items:center;gap:6px;padding:60px 20px;color:var(--muted)}

/* hero */
.page-hero.mn-hero{background:linear-gradient(115deg,var(--mn1),var(--mn2) 125%);position:relative;overflow:hidden;flex-wrap:wrap}
.page-hero.mn-hero:after{content:"";position:absolute;right:-60px;top:-80px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(34,211,238,.35),transparent 65%);pointer-events:none}
.mn-hero .hbtn.mn-imp{background:#fff;color:var(--mn1);font-weight:700;border:none;box-shadow:0 4px 14px rgba(0,0,0,.18);position:relative;z-index:1}
.mn-stats{display:flex;gap:10px;margin:14px 0 2px;flex-wrap:wrap;position:relative;z-index:1}
.page-hero.mn-hero>.mn-stats{flex:1 1 100%}  /* νικά το .page-hero>div:not(.hactions){flex:1 1 0} του 36-mobile */
.mn-stat{display:flex;align-items:center;gap:10px;padding:9px 16px 9px 10px;border-radius:12px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);color:#fff;min-width:150px}
.mn-stat .si{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.16);flex:none}
.mn-stat b{font-size:20px;line-height:1;display:block}
.mn-stat small{font-size:11px;opacity:.85}
.mn-stat.warn .si{background:#f59e0b}.mn-stat.bad .si{background:#ef4444}.mn-stat.ok .si{background:#10b981}

/* toolbar */
.mn-bar{display:flex;align-items:center;gap:10px;margin:16px 0 14px;flex-wrap:wrap}
.mn-search{flex:0 1 300px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:0 12px;color:var(--muted)}
.mn-search input{border:none;outline:none;background:transparent;font:inherit;font-size:13px;color:var(--text);padding:9px 0;flex:1;min-width:0}
.mn-search:focus-within{border-color:var(--mn2);box-shadow:0 0 0 3px var(--mns)}
.mn-seg{display:flex;background:#fff;border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px;max-width:100%;overflow-x:auto}
.mn-seg button{border:none;background:transparent;padding:6px 12px;border-radius:7px;font:inherit;font-size:12px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer}
.mn-seg button.on{background:var(--mn1);color:#fff}
.mn-seg i{font-style:normal;font-size:10.5px;padding:1px 6px;border-radius:9px;background:#eef2f7;color:var(--text)}
.mn-seg button.on i{background:rgba(255,255,255,.2);color:#fff}
.mn-seg button.warn:not(.on) i{background:#fdf3df;color:#92400e}
.mn-sort{margin-left:auto;font:inherit;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer}
.mn-sort b{color:var(--text)}
.mn-err{display:flex;gap:8px;align-items:center;padding:10px 14px;border-radius:10px;background:#fde8e7;color:#b42318;font-size:12.5px;margin-bottom:10px}
.mn-load,.mn-none{display:flex;gap:10px;align-items:center;justify-content:center;padding:40px 20px;color:var(--muted);font-size:13px;background:#fff;border:1px dashed var(--border);border-radius:14px}
.mn-more-btn{display:block;margin:10px auto;border:1px solid var(--border);background:#fff;border-radius:10px;padding:9px 18px;font:inherit;font-size:12.5px;font-weight:600;color:var(--mn1);cursor:pointer}
.mn-sec-t{margin:20px 0 10px}

/* ακορντεόν */
.mn-acc{background:#fff;border:1px solid var(--border);border-radius:14px;margin-bottom:10px;box-shadow:var(--shadow);overflow:hidden;position:relative}
.mn-acc:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--mn2);z-index:1}
.mn-acc.st-new:before{background:#f59e0b}.mn-acc.st-late:before{background:#ef4444}.mn-acc.st-done:before{background:#10b981}
.mn-acc-h{display:grid;grid-template-columns:22px minmax(0,1.5fr) 118px 150px minmax(120px,1fr) 104px minmax(0,auto);align-items:center;gap:16px;padding:14px 18px 14px 20px;cursor:pointer}
.mn-acc-h:hover{background:#fbfdfe}
.mn-acc.st-done .mn-acc-h{background:linear-gradient(90deg,#f0fbf4,#fff 60%)}
.mn-chev{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#f1f5f9;color:var(--muted)}
.mn-acc.open .mn-chev{background:var(--mn1);color:#fff;transform:rotate(90deg)}
.mn-pi{min-width:0}
.mn-pi b{font-size:15px;letter-spacing:.2px;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;color:var(--text);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mn-pi small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:6px;align-items:center;color:var(--muted);font-size:11.5px;margin-top:3px}
.mn-pi small .dot{width:3px;height:3px;border-radius:50%;background:#cbd5e1;flex:none}
.mn-meta small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;margin-bottom:3px}
.mn-meta b{font-size:13px;display:flex;align-items:center;gap:5px;white-space:nowrap}
.mn-prog small{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:5px}
.mn-prog small b{color:var(--text);font-size:12px}
.mn-pbar{height:7px;border-radius:9px;background:#eef2f7;overflow:hidden;display:flex}
.mn-pbar i{display:block;height:100%}
.mn-pbar .d{background:#10b981}.mn-pbar .p{background:var(--mn2)}
.mn-stack{display:flex;align-items:center}
.mn-stack .mn-av{margin-left:-4px;box-shadow:0 0 0 2px #fff}
.mn-stack .mn-av:first-child{margin-left:0}
.mn-badges{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.mn-bdg{font-size:11px;font-weight:700;padding:4px 9px;border-radius:20px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.mn-bdg.amb{background:#fdf3df;color:#92400e}.mn-bdg.red{background:#fde8e7;color:#b42318}.mn-bdg.grn{background:#e2f5ea;color:#166534}.mn-bdg.cy{background:var(--mns);color:var(--mn1)}
.mn-bdg.new{background:#fff1e8;color:#c2410c}

/* avatars */
.mn-av{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-size:10.5px;font-weight:700;flex:none;position:relative;letter-spacing:.2px;
  background:linear-gradient(135deg,var(--c,#64748b),color-mix(in srgb,var(--c,#64748b) 55%,#fff));overflow:visible}
.mn-av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.mn-av.sm{width:24px;height:24px;font-size:9.5px}
.mn-av.nobody{background:#fff;border:1.5px dashed #cbd5e1;color:#94a3b8}

/* ανοιχτό σώμα */
.mn-acc-b{border-top:1px solid var(--border);background:#fbfcfe}
.mn-all{display:flex;align-items:center;gap:14px;padding:12px 20px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,var(--mns),#fff 70%);flex-wrap:wrap}
.mn-all .lbl{font-size:12px;font-weight:700;color:var(--mn1);display:flex;align-items:center;gap:7px}
.mn-all .sep{width:1px;height:24px;background:var(--mnb)}
.mn-all .ghost{font:inherit;font-size:12px;font-weight:600;color:var(--mn1);background:#fff;border:1px solid var(--mnb);border-radius:9px;padding:6px 11px;display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.mn-all .ghost:disabled{opacity:.5;cursor:default}
.mn-all .info{margin-left:auto;font-size:11.5px;color:var(--muted)}
.mn-del{margin-left:auto;border:1px solid var(--border);background:#fff;border-radius:9px;padding:6px 11px;display:inline-flex;gap:6px;align-items:center;font:inherit;font-size:12px;font-weight:600;color:#64748b;cursor:pointer;white-space:nowrap}
.mn-del:hover{color:#b42318;border-color:#f7c5c1}
.mn-del.ask{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 6px 4px 10px;color:#b42318;border-color:#f7c5c1;background:#fff5f4;cursor:default;white-space:normal}
.mn-del.ask button{border:none;border-radius:7px;padding:4px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;background:#fff;color:var(--text)}
.mn-del.ask button:first-child{background:#dc2626;color:#fff}
.mn-hint{font-size:11.5px;color:var(--muted)}
.mn-th,.mn-row{display:grid;grid-template-columns:minmax(0,1.5fr) 58px minmax(150px,auto) 150px 124px minmax(260px,1.6fr) 28px;gap:14px;align-items:center;padding:0 20px}
.mn-th{font-size:10px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:var(--muted);padding-top:10px;padding-bottom:8px}
.mn-row{background:#fff;border-top:1px solid #eef2f7;padding-top:11px;padding-bottom:11px;position:relative}
.mn-row.unas{background:linear-gradient(90deg,#fffaf0,#fff 40%)}
.mn-row.unas:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#f59e0b}
.mn-row.done{background:#fbfefc}
.mn-row.canc{opacity:.6}
.mn-row.canc .mn-prod b{text-decoration:line-through}
.mn-prod{display:flex;gap:11px;align-items:center;min-width:0;cursor:pointer}
.mn-pic{width:36px;height:36px;border-radius:9px;background:var(--mns);color:var(--mn2);display:grid;place-items:center;flex:none}
.mn-row.done .mn-pic{background:#e2f5ea;color:#16a34a}
.mn-prod>div{min-width:0}
.mn-prod b{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:12.5px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.mn-prod>div>span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.mn-tag{font-family:inherit;font-size:9.5px;font-weight:800;letter-spacing:.4px;padding:2px 6px;border-radius:5px;text-transform:uppercase}
.mn-tag.NEW{background:#fff1e8;color:#c2410c}.mn-tag.OLD{background:#eef2f7;color:#64748b}.mn-tag.REV{background:#eef0ff;color:#4338ca}.mn-tag.SUP{background:#e7f6f0;color:#0a6d53}
.mn-date{font-size:12.5px;font-weight:600}
.mn-date small{display:block;font-size:10.5px;color:var(--muted);font-weight:500}
.mn-dl{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;padding:7px 12px;border-radius:10px;background:#fff;border:1.5px solid #cbd5e1;white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.06)}
.mn-dl b{font-weight:800}
.mn-dl em{font-style:normal;font-weight:600;font-size:11px;opacity:.85}
.mn-dl[role=button]{cursor:pointer}
.mn-dl[role=button]:hover{border-color:var(--mn2)}
.mn-dl.none{border:1.5px dashed #94a3b8;color:#475569;font-weight:700;background:#f8fafc;box-shadow:none}
.mn-dl.none.need{border:2px dashed #f59e0b;background:#fffbeb;color:#b45309}
.mn-dl.soon{background:#fdf3df;border-color:#f7dfae;color:#92400e}
.mn-dl.late{background:#fde8e7;border-color:#f7c5c1;color:#b42318}
.mn-dl.ok{color:var(--mn1);border-color:var(--mnb);background:#f4fbfd}
.mn-dl.fin{background:#e2f5ea;border-color:#bfe6cf;color:#166534}
.mn-pick{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.mn-pick .mn-av,.mn-all .mn-pick .mn-av{cursor:pointer;transition:transform .12s}
.mn-pick .mn-av:hover{transform:scale(1.12)}
.mn-pick .mn-av.off{background:#e2e8f0;color:#94a3b8;box-shadow:none}
.mn-pick .mn-av.off img{filter:grayscale(1);opacity:.4}
.mn-pick.free .mn-av{background:linear-gradient(135deg,color-mix(in srgb,var(--c,#64748b) 30%,#fff),color-mix(in srgb,var(--c,#64748b) 16%,#fff));color:#fff}
.mn-pick.free .mn-av img{opacity:.45}
.mn-pick .mn-av.off:hover,.mn-pick.free .mn-av:hover{background:linear-gradient(135deg,var(--c,#64748b),color-mix(in srgb,var(--c,#64748b) 55%,#fff));color:#fff}
.mn-pick .mn-av:hover img{filter:none;opacity:1}
.mn-pick .mn-av.on{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--c,#4f46e5)}
.mn-pick .mn-av.on:after{content:"✓";position:absolute;right:-5px;bottom:-4px;width:13px;height:13px;border-radius:50%;background:#10b981;color:#fff;font-size:8px;display:grid;place-items:center;border:1.5px solid #fff}
.mn-times{font-size:11.5px;line-height:1.55;color:var(--muted)}
.mn-times b{color:var(--text);font-weight:600}
.mn-times .k{display:inline-block;width:46px;color:#94a3b8;font-size:10.5px}
.mn-st{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap}
.mn-st:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.mn-st.st-todo{background:#eef2f7;color:#475569}.mn-st.st-prog{background:#e7effc;color:#1d4ed8}.mn-st.st-wait{background:#fdf3df;color:#92400e}.mn-st.st-hold{background:#f3e8ff;color:#7e22ce}.mn-st.st-done{background:#e2f5ea;color:#166534}.mn-st.st-canc{background:#fde8e7;color:#b42318}
.mn-stc{min-width:0}
.mn-stage{display:flex;gap:4px;margin-top:8px;align-items:center}
.mn-stage i{flex:1;height:7px;border-radius:4px;background:#e2e8f0;position:relative;cursor:default}
.mn-stage i.f{background:var(--mn2)}
.mn-stage i.nx{background:repeating-linear-gradient(45deg,#e2e8f0 0 4px,#c9ebf3 4px 8px)}
.mn-row.done .mn-stage i.f{background:#10b981}
.mn-stage-t{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:5px;font-size:11.5px;color:var(--muted)}
.mn-stage-t b{color:var(--text);font-weight:700}
.mn-stage-t em{font-style:normal;font-weight:800;color:var(--mn1);font-size:12px}
.mn-row.done .mn-stage-t em{color:#16a34a}
.mn-more{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:var(--muted);background:#f1f5f9;border:none;cursor:pointer}
.mn-more:hover{background:var(--mns);color:var(--mn1)}
.mn-foot{padding:10px 20px;font-size:11.5px;color:var(--muted);display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid #eef2f7;background:#fff}
.mn-foot b{color:var(--text)}

/* χειριστής */
.mn-hrow{grid-template-columns:minmax(0,1.6fr) 58px 150px minmax(200px,auto) minmax(260px,1.6fr) 28px}
.mn-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mn-btn{border:none;border-radius:9px;padding:8px 13px;font:inherit;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer}
.mn-btn.pri{background:linear-gradient(135deg,var(--mn1),var(--mn2));color:#fff;box-shadow:0 3px 10px rgba(8,145,178,.3)}
.mn-btn.grn{background:linear-gradient(135deg,#0a6d53,#10b981);color:#fff;box-shadow:0 3px 10px rgba(16,185,129,.3)}
.mn-btn.lt{background:#fff;border:1px solid var(--border);color:var(--text);padding:8px 10px}
.mn-note{display:flex;gap:10px;align-items:center;padding:10px 20px;font-size:12px;color:var(--mn1);background:var(--mns);border-bottom:1px solid var(--mnb)}

/* κενή σελίδα */
.mn-empty{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:56px 40px 48px;text-align:center;margin-top:18px;position:relative;overflow:hidden}
.mn-empty:before{content:"";position:absolute;inset:0;background:radial-gradient(600px 240px at 50% -40px,var(--mns),transparent 70%)}
.mn-empty>*{position:relative}
.mn-ill{width:96px;height:96px;margin:0 auto 18px;border-radius:26px;background:linear-gradient(135deg,var(--mn1),var(--mn2));display:grid;place-items:center;color:#fff;box-shadow:0 14px 34px rgba(8,145,178,.35);transform:rotate(-6deg)}
.mn-empty h2{font-size:22px;margin-bottom:8px}
.mn-empty p{color:var(--muted);font-size:14px;max-width:520px;margin:0 auto 26px;line-height:1.55}
.mn-bigbtn{display:inline-flex;align-items:center;gap:9px;border:none;border-radius:12px;padding:13px 22px;font:inherit;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--mn1),var(--mn2));box-shadow:0 8px 22px rgba(8,145,178,.35);cursor:pointer}
.mn-steps{display:flex;justify-content:center;gap:14px;margin-top:38px;flex-wrap:wrap}
.mn-stp{display:flex;align-items:center;gap:12px;text-align:left;padding:14px 18px;border:1px solid var(--border);border-radius:14px;background:#fff;width:250px;max-width:100%}
.mn-stp .n{width:34px;height:34px;border-radius:10px;background:var(--mns);color:var(--mn1);font-weight:800;display:grid;place-items:center;flex:none}
.mn-stp b{font-size:13px;display:block}
.mn-stp small{font-size:11.5px;color:var(--muted)}
.mn-arrow{align-self:center;color:#cbd5e1}

/* παράθυρα */
.mn-modal .modal-h{background:linear-gradient(115deg,var(--mn1),var(--mn2) 130%);color:#fff;border-bottom:none}
.mn-modal .modal-h h2{color:#fff}
.mn-modal .modal-h .sub{color:rgba(255,255,255,.82)}
.mn-modal .modal-h .x{color:rgba(255,255,255,.85)}
.mn-modal .modal-b{padding:18px 22px}
.mn-paste{display:block;position:relative;border:2px dashed var(--mnb);border-radius:16px;background:linear-gradient(180deg,#f6fcfd,#fff);padding:40px 20px;text-align:center;cursor:text}
.mn-paste:focus-within{border-color:var(--mn2);background:#f0fafc}
.mn-paste.err{border-color:#f7c5c1}
.mn-paste textarea{position:absolute;inset:0;width:100%;height:100%;opacity:0;resize:none;border:none;cursor:text}
.mn-paste .pic{width:64px;height:64px;border-radius:18px;margin:0 auto 14px;background:#fff;border:1px solid var(--mnb);display:grid;place-items:center;color:var(--mn2);box-shadow:0 6px 18px rgba(8,145,178,.14)}
.mn-paste b{font-size:16px;display:block;margin-bottom:5px}
.mn-paste small{color:var(--muted);font-size:12.5px;display:block}
.mn-kbd{display:inline-flex;gap:4px;margin-top:14px;align-items:center}
.mn-kbd kbd{font-family:inherit;font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:7px;background:#fff;border:1px solid var(--border);border-bottom-width:3px;color:var(--text)}
.mn-kbd .or{color:#94a3b8;font-size:12px;margin:0 4px}
.mn-req{margin-top:16px}
.mn-req h4{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:8px}
.mn-chips{display:flex;gap:6px;flex-wrap:wrap}
.mn-chip{font:inherit;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:8px;background:#f1f5f9;color:#334155;display:inline-flex;align-items:center;gap:5px;border:none}
button.mn-chip{cursor:pointer}button.mn-chip:hover{background:var(--mns);color:var(--mn1)}
.mn-chip.req{background:var(--mns);color:var(--mn1)}
.mn-ferr{font-size:12px;color:#b42318;margin-top:8px}
.mn-ferr.big{display:flex;gap:8px;align-items:center;padding:10px 12px;border-radius:10px;background:#fde8e7;font-size:12.5px;margin-top:12px}
.mn-mfoot{display:flex;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid var(--border);background:#fff;flex-wrap:wrap}
.mn-mfoot .sp{flex:1;font-size:12px;color:var(--muted);min-width:0}
.mn-cta{border:none;border-radius:10px;padding:10px 18px;font:inherit;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--mn1),var(--mn2));display:inline-flex;gap:8px;align-items:center;box-shadow:0 6px 16px rgba(8,145,178,.3);cursor:pointer}
.mn-cta:disabled{background:#e2e8f0;color:#94a3b8;box-shadow:none;cursor:default}
.mn-cancel{border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px 16px;font:inherit;font-size:13px;font-weight:600;color:var(--text);display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.mn-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.mn-sumc{border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;gap:11px;align-items:center;background:#fff}
.mn-sumc .si{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--mns);color:var(--mn2);flex:none}
.mn-sumc.g .si{background:#e2f5ea;color:#16a34a}.mn-sumc.r .si{background:#fde8e7;color:#d64541}.mn-sumc.a .si{background:#fdf3df;color:#b45309}
.mn-sumc b{font-size:19px;display:block;line-height:1.1}
.mn-sumc small{font-size:11.5px;color:var(--muted)}
.mn-probs{border:1px solid #f7dfae;background:#fffbf2;border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:12.5px;color:#92400e}
.mn-probs summary{cursor:pointer;font-weight:700;display:flex;gap:6px;align-items:center}
.mn-probs ul{margin:8px 0 0 18px;display:flex;flex-direction:column;gap:3px;color:#7c2d12}
.mn-sheet{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:14px;font-size:11px}
.mn-sheet-x{overflow-x:auto}
.mn-sheet .cap{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:11.5px;color:var(--muted)}
.mn-sheet .cap b{color:var(--text)}
.mn-sheet .cap .ok{color:#166534;font-weight:700;display:inline-flex;gap:4px;align-items:center}
.mn-sheet table{border-collapse:collapse;width:100%;min-width:620px;table-layout:fixed}
.mn-sheet th,.mn-sheet td{border-right:1px solid #eef2f7;border-bottom:1px solid #eef2f7;padding:5px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.mn-sheet th{background:#e2f5ea;color:#166534;font-weight:700;font-size:10.5px}
.mn-sheet th.x{background:#f8fafc;color:#94a3b8;font-weight:600}
.mn-sheet td.pi{font-family:ui-monospace,Menlo,monospace;font-weight:700;color:var(--mn1)}
.mn-sheet td.more{text-align:center;color:#94a3b8}
.mn-sheet tr.bad td{background:#fff5f4}
.mn-sheet tr.bad td.pi{color:#b42318}
.mn-olist h4{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:2px 0 8px}
.mn-oi{display:grid;grid-template-columns:36px minmax(0,1fr) 90px 100px auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:12px;margin-bottom:8px;background:#fff}
.mn-oi .si{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--mns);color:var(--mn2)}
.mn-oi .t{min-width:0}
.mn-oi b{font-family:ui-monospace,Menlo,monospace;font-size:13px}
.mn-oi small{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mn-oi .k{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700;letter-spacing:.5px}
.mn-oi .v{font-size:12.5px;font-weight:600}
.mn-oi.bad{border-color:#f7c5c1;background:#fffafa}
.mn-oi.bad .si{background:#fde8e7;color:#d64541}
.mn-alert{display:flex;gap:12px;padding:14px 16px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;margin-bottom:14px}
.mn-alert .ai{width:34px;height:34px;border-radius:10px;background:#f97316;color:#fff;display:grid;place-items:center;flex:none}
.mn-alert>div>b{display:block;font-size:13.5px;color:#9a3412;margin-bottom:3px}
.mn-alert p{font-size:12.5px;color:#7c2d12;line-height:1.5}
.mn-alert code{font-family:ui-monospace,Menlo,monospace;font-weight:700;background:#fff;border:1px solid #fed7aa;padding:1px 6px;border-radius:5px}

/* deadline */
.mn-dlw .lbl{display:block;font-size:12px;font-weight:700;color:var(--text);margin-bottom:6px}
.mn-dlw input[type=date]{width:100%;font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;margin-bottom:12px}
.mn-dlw input[type=date]:focus{outline:none;border-color:var(--mn2);box-shadow:0 0 0 3px var(--mns)}

/* λεπτομέρειες */
.mn-dh{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.mn-dh .mn-pic{width:48px;height:48px;border-radius:13px}
.mn-dh>div{min-width:0}
.mn-dh b{font-family:ui-monospace,Menlo,monospace;font-size:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mn-dh span{font-size:13px;color:var(--muted)}
.mn-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.mn-kpi{border:1px solid var(--border);border-radius:12px;padding:11px 12px;background:#fff;min-width:0}
.mn-kpi.click{cursor:pointer}.mn-kpi.click:hover{border-color:var(--mn2)}
.mn-kpi small{display:flex;gap:4px;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:var(--muted);margin-bottom:6px}
.mn-kpi .ed{color:var(--mn2)}
.mn-kpi .v{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;min-width:0}
.mn-kpi .v>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.mn-kpi .v em{font-style:normal;font-size:10.5px;color:var(--muted);font-weight:500;display:block}
.mn-sec{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;margin:4px 0 10px;display:flex;align-items:center;gap:8px}
.mn-sec:after{content:"";flex:1;height:1px;background:var(--border)}
.mn-flow{display:flex;align-items:flex-start;margin-bottom:18px;padding:14px 10px 12px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,#fbfdfe,#fff)}
.mn-fs{flex:1;text-align:center;position:relative;min-width:0}
.mn-fs:before{content:"";position:absolute;top:14px;left:-50%;right:50%;height:3px;background:#e2e8f0;z-index:0}
.mn-fs:first-child:before{display:none}
.mn-fs.f:before,.mn-fs.c:before{background:var(--mn2)}
.mn-fs .d{width:30px;height:30px;border-radius:50%;margin:0 auto 7px;display:grid;place-items:center;background:#fff;border:2px solid #e2e8f0;color:#94a3b8;font-size:12px;font-weight:800;position:relative;z-index:1}
.mn-fs.f .d{background:var(--mn2);border-color:var(--mn2);color:#fff}
.mn-fs.c .d{background:#fff;border-color:var(--mn2);color:var(--mn2);box-shadow:0 0 0 5px var(--mns)}
.mn-fs small{font-size:10.5px;font-weight:700;color:var(--muted);display:block;line-height:1.3;padding:0 4px}
.mn-fs.c small{color:var(--mn1)}
.mn-fs em{font-style:normal;font-size:9.5px;color:#94a3b8;display:block;margin-top:2px}
.mn-holds{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.mn-hold{font:inherit;font-size:12px;font-weight:700;padding:6px 12px;border-radius:20px;border:1px solid var(--border);background:#fff;color:var(--muted);cursor:pointer}
.mn-hold:disabled{opacity:.4;cursor:default}
.mn-hold.on.h-ok{background:#e7effc;border-color:#c7d7f7;color:#1d4ed8}
.mn-hold.on.h-wait{background:#fdf3df;border-color:#f7dfae;color:#92400e}
.mn-hold.on.h-hold{background:#f3e8ff;border-color:#e0c8fb;color:#7e22ce}
.mn-hold.on.h-cancel{background:#fde8e7;border-color:#f7c5c1;color:#b42318}
.mn-holds input{flex:1 1 220px;min-width:0;font:inherit;font-size:12.5px;padding:7px 10px;border:1px solid var(--border);border-radius:9px}
.mn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px}
.mn-f{padding:10px 14px;border-bottom:1px solid #eef2f7;border-right:1px solid #eef2f7;background:#fff;min-width:0}
.mn-f:nth-child(2n){border-right:none}
.mn-f small{display:block;font-size:10.5px;color:var(--muted);font-weight:600;margin-bottom:3px}
.mn-f b{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;word-break:break-word}
.mn-f b.mono{font-family:ui-monospace,Menlo,monospace}
.mn-f.wide{grid-column:1/-1;border-right:none}
.mn-yes{color:#16a34a}.mn-no{color:#94a3b8}
.mn-hist{display:flex;flex-direction:column;text-align:left}
.mn-he{display:flex;gap:10px;align-items:flex-start;padding:6px 0;font-size:12.5px}
.mn-he>div{flex:1;min-width:0}
.mn-he .dt{width:10px;height:10px;border-radius:50%;background:var(--mn2);margin-top:4px;flex:none;box-shadow:0 0 0 3px var(--mns)}
.mn-he .dt.g{background:#94a3b8;box-shadow:0 0 0 3px #eef2f7}
.mn-he>span:last-child{color:var(--muted);font-size:11.5px;white-space:nowrap}

/* ολοκληρωμένη */
.mn-donebar{display:flex;align-items:center;gap:12px;padding:12px 20px;background:linear-gradient(90deg,#e2f5ea,#fff 80%);border-bottom:1px solid #d5eedf;font-size:12.5px;color:#166534;flex-wrap:wrap}
.mn-donebar .ci{width:30px;height:30px;border-radius:50%;background:#10b981;color:#fff;display:grid;place-items:center;flex:none}
.mn-donebar .r{margin-left:auto;display:flex;gap:18px}
.mn-donebar .r span b{display:block;font-size:14px}

/* ενδιάμεσο πλάτος: στενότερες στήλες */
@media (max-width:1280px) and (min-width:761px){
  .mn-acc-h{grid-template-columns:22px minmax(0,1.5fr) 110px minmax(100px,1fr) 90px minmax(0,auto)}
  .mn-acc-h>.mn-meta.cnt{display:none}
  .mn-th,.mn-row{grid-template-columns:minmax(0,1.3fr) 54px minmax(140px,auto) 140px minmax(220px,1.4fr) 28px}
  .mn-th>span:nth-child(5),.mn-row>.mn-times{display:none}
  .mn-hrow{grid-template-columns:minmax(0,1.4fr) 54px 140px minmax(180px,auto) minmax(220px,1.4fr) 28px}
  .mn-all .info{display:none}
}
/* κινητό */
@media (max-width:760px){
  .mn-hero h1{font-size:20px}
  .mn-stats{gap:8px}
  .mn-stat{min-width:0;flex:1 1 calc(50% - 8px);padding:8px 10px}
  .mn-stat b{font-size:17px}
  .mn-bar{gap:8px;margin:12px 0}
  .mn-search{flex:1 1 100%}
  .mn-sort{display:none}
  .mn-acc-h{grid-template-columns:22px minmax(0,1fr) auto;grid-template-areas:"c pi b" "p p p" "s s m";gap:10px;padding:13px 14px 13px 16px}
  .mn-acc-h>.mn-chev{grid-area:c}.mn-acc-h>.mn-pi{grid-area:pi}.mn-acc-h>.mn-badges{grid-area:b}
  .mn-acc-h>.mn-prog{grid-area:p}
  .mn-acc-h>.mn-meta.ship{grid-area:s;display:flex;align-items:center;gap:8px}.mn-acc-h>.mn-meta.ship small{margin:0}.mn-acc-h>.mn-meta.cnt{display:none}
  .mn-acc-h>.mn-stack{grid-area:m;justify-self:end}
  .mn-badges .mn-bdg .txt{display:none}
  .mn-th{display:none}
  .mn-all{padding:10px 14px;gap:10px}
  .mn-all .info,.mn-all .sep{display:none}
  .mn-row,.mn-hrow{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"p p" "a a" "d s";gap:10px;padding:13px 14px}
  .mn-row>.mn-prod{grid-area:p}
  .mn-row>.mn-date,.mn-row>.mn-times,.mn-row>.mn-more{display:none}
  .mn-row>.mn-dlc{grid-area:d;align-self:center}
  .mn-row>.mn-pickc{grid-area:a;background:#f8fafc;border-radius:10px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px}
  .mn-row>.mn-pickc:before{content:"Χειριστής";font-size:11px;font-weight:700;color:var(--muted)}
  .mn-row>.mn-stc{grid-area:s;justify-self:stretch;text-align:right}
  .mn-row>.mn-act{grid-area:a}
  .mn-row>.mn-act .mn-btn.pri,.mn-row>.mn-act .mn-btn.grn{flex:1;justify-content:center;padding:11px}
  .mn-row>.mn-act .mn-btn.lt{flex:0 0 46px;justify-content:center;padding:11px}
  .mn-row .mn-prod{cursor:pointer}
  .mn-stage{justify-content:flex-end}
  .mn-foot,.mn-note{padding:10px 14px}
  .mn-donebar .r{margin-left:0;width:100%;justify-content:space-between}
  .mn-modal .modal-b{padding:14px}
  .mn-sum{grid-template-columns:1fr}
  .mn-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mn-grid{grid-template-columns:1fr}
  .mn-f{border-right:none}
  .mn-oi{grid-template-columns:36px minmax(0,1fr) auto}
  .mn-oi>div:nth-child(3),.mn-oi>div:nth-child(4){display:none}
  .mn-fs small{font-size:9.5px}
  .mn-empty{padding:36px 18px}
  .mn-arrow{display:none}
}

/* επικόλληση: προβολή όλων & διόρθωση (module 76) */
.mn-edbtn{border:1px solid var(--mnb);background:#fff;color:var(--mn1);border-radius:8px;padding:4px 10px;font:inherit;font-size:11.5px;font-weight:700;display:inline-flex;gap:5px;align-items:center;cursor:pointer}
.mn-edbtn:hover{background:var(--mns)}
.mn-sheet tr.more-r{cursor:pointer}
.mn-sheet tr.more-r td{color:var(--mn2)}
.mn-sheet tr.more-r:hover td{background:var(--mns)}
.mn-ed{padding:14px 18px!important}
.mn-ed-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px;font-size:12.5px}
.mn-ed-only{display:inline-flex;gap:7px;align-items:center;font-weight:600;cursor:pointer}
.mn-ed-only.dis{color:#94a3b8;cursor:default}
.mn-ed-bar .lg{margin-left:auto;display:flex;gap:6px;align-items:center;color:var(--muted);font-size:11.5px}
.mn-ed-bar .lg i{width:12px;height:12px;border-radius:3px;display:inline-block;margin-left:8px}
.mn-ed-bar .lg i.b{background:#fdf3df;border:1px solid #f7dfae}.mn-ed-bar .lg i.s{background:#fde8e7;border:1px solid #f7c5c1}
.mn-ed-x{overflow:auto;max-height:62vh;border:1px solid var(--border);border-radius:12px}
.mn-ed-x table{border-collapse:separate;border-spacing:0;font-size:12px}
.mn-ed-x th,.mn-ed-x td{border-right:1px solid #eef2f7;border-bottom:1px solid #eef2f7;padding:0;background:#fff}
.mn-ed-x tr:first-child th{position:sticky;top:0;z-index:2;background:#f1f5f9}
.mn-ed-x tr:first-child th.k{background:#e2f5ea}
.mn-ed-x th.rn{position:sticky;left:0;z-index:1;background:#f8fafc;color:var(--muted);font-weight:700;font-size:11px;min-width:44px;padding:0 6px;text-align:right;white-space:nowrap}
.mn-ed-x tr:first-child th.rn{z-index:3}
.mn-ed-x input{border:none;background:transparent;font:inherit;font-size:12px;padding:6px 8px;width:150px;min-width:0;color:var(--text)}
.mn-ed-x th input{font-weight:700;color:#166534}
.mn-ed-x th:not(.k) input{color:#64748b}
.mn-ed-x input:focus{outline:2px solid var(--mn2);outline-offset:-2px;background:#fff}
.mn-ed-x tr.bad td,.mn-ed-x tr.bad th.rn{background:#fffbf2}
.mn-ed-x tr.bad th.rn{color:#b45309}
.mn-ed-x tr.skip td,.mn-ed-x tr.skip th.rn{background:#fff5f4}
.mn-ed-x tr.skip th.rn{color:#b42318}
.mn-ed-x td.del{position:sticky;right:0;background:#fff;width:34px;text-align:center;box-shadow:-6px 0 8px -6px rgba(15,23,42,.18)}
.mn-ed-x tr:first-child th:last-child{position:sticky;right:0;z-index:3;min-width:34px}
.mn-ed-x td.del button{border:none;background:none;color:#94a3b8;cursor:pointer;padding:6px}
.mn-ed-x td.del button:hover{color:#b42318}
.mn-ed-x td.none{padding:20px;text-align:center;color:var(--muted)}
@media (max-width:760px){ .mn-ed-x{max-height:60vh} .mn-ed-x input{width:120px} .mn-ed-bar .lg{margin-left:0} }


/* αποστολή στους χειριστές + άμεσο όνομα στο hover (module 75) */
.mn-th .req{font-style:normal;color:#dc2626;font-size:12px}
.mn-pickc{min-width:0}
.mn-snt{display:block;font-size:10.5px;font-weight:600;margin-top:5px;white-space:nowrap}
.mn-snt.ok{color:#16a34a}.mn-snt.dr{color:#b45309}
.mn-send-wrap{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.mn-send{position:relative;border:none;border-radius:10px;padding:9px 16px;font:inherit;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--mn1),var(--mn2));box-shadow:0 6px 16px rgba(8,145,178,.3);display:inline-flex;gap:8px;align-items:center;cursor:pointer}
.mn-send:disabled{background:#e2e8f0;color:#94a3b8;box-shadow:none;cursor:default}
.mn-send-need{color:#b45309;font-weight:700;font-size:12px;display:inline-flex;gap:5px;align-items:center}
.mn-sent-ok{margin-left:auto;font-size:12px;color:#16a34a;font-weight:600;display:inline-flex;gap:5px;align-items:center}
.mn [data-n],.mn-modal [data-n]{position:relative}
.mn [data-n]:hover::before,.mn-modal [data-n]:hover::before{content:attr(data-n);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:#0f172a;color:#fff;font:600 11.5px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:0;text-transform:none;padding:5px 9px;border-radius:7px;
  white-space:nowrap;z-index:60;pointer-events:none;box-shadow:0 6px 16px rgba(15,23,42,.25)}
.mn-stack [data-n]:hover::before{bottom:auto;top:calc(100% + 8px)}
.mn-acc.open .mn-foot{border-radius:0 0 14px 14px}
.mn-acc.open{overflow:visible}
@media (max-width:760px){
  .mn-row>.mn-pickc{flex-wrap:wrap}
  .mn-snt{width:100%;margin-top:2px}
  .mn-send-wrap{margin-left:0;width:100%}
  .mn-send{flex:1;justify-content:center}
  .mn-sent-ok{margin-left:0}
  .mn-stage-t{justify-content:flex-end}
}/* ---------- 77 — Chat: εμφάνιση & επιλογές (God Mode → «Chat») ----------
   Οι κλάσεις μπαίνουν ΠΑΝΩ στο panel (#chatPanel ή .cxp-panel της προεπισκόπησης):
   cx-new (κάθε μη κλασικό) · cx-white · cx-glass · cx-gbg (φόντο) · cx-cmp (νέο πεδίο).
   --cxg = ένταση γυαλιού 0…1. Κλασικό = καμία κλάση = ακριβώς όπως πριν. */

/* ===== Κοινά (ισχύουν σε κάθε στυλ όταν η επιλογή είναι ενεργή) ===== */
.msg>div:not([class]){white-space:pre-wrap;word-break:break-word}
.cx-day{align-self:center;font-size:11px;font-weight:600;color:#64748b;background:#e9edf3;padding:4px 11px;border-radius:10px;margin:12px 0 6px}
.msg.emo,.cx-new .msg.emo{background:none!important;box-shadow:none!important;border:none!important;font-size:34px;line-height:1.1;padding:2px 2px 0}
.msg.emo .mt,.msg.emo .mrow .mt{color:#94a3b8;opacity:1}
.msg.emo .tick:not(.read){color:#94a3b8}
.cx-note{align-self:center;display:flex;align-items:center;gap:5px;font-size:10.5px;color:#94a3b8;margin:2px 0 8px;text-align:center}
.cx-note svg{flex:none}
.cx-ty-slot:empty{display:none}
.cx-typing{align-self:flex-start;display:inline-flex;flex-direction:column;gap:2px;background:#eef0f4;border-radius:16px;border-bottom-left-radius:5px;padding:10px 13px;margin-top:6px}
.cx-dots{display:inline-flex;gap:4px;align-items:center;height:8px}
.cx-dots i{width:6px;height:6px;border-radius:50%;background:#94a3b8;animation:cxDot 1.2s infinite ease-in-out}
.cx-dots i:nth-child(2){animation-delay:.15s}.cx-dots i:nth-child(3){animation-delay:.3s}
@keyframes cxDot{0%,60%,100%{transform:none;opacity:.35}30%{transform:translateY(-3px);opacity:.95}}
@media (prefers-reduced-motion:reduce){.cx-dots i{animation:none;opacity:.6}}
.conv-input{position:relative}
.cx-emo{position:absolute;right:6px;bottom:calc(100% + 8px);width:272px;max-width:calc(100vw - 32px);display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;padding:8px;background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.18);border:1px solid #eef1f5;z-index:8}
.cx-emo[hidden]{display:none}
.cx-emo button{height:32px;border:none;background:none;border-radius:8px;font-size:19px;line-height:1;cursor:pointer;padding:0}
.cx-emo button:hover{background:#f1f5f9;transform:scale(1.12)}
.cx-chips{display:flex;gap:6px;padding:2px 12px 8px;flex-wrap:wrap}
.cx-chip{border:1px solid transparent;font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:14px;background:#f1f3f8;color:#475569;cursor:pointer}
.cx-chip:hover{background:#e7ebf2}
.cx-chip.on{background:#0f172a;color:#fff}
.cx-chip i{font-style:normal;margin-left:3px;opacity:.7}

/* ----- Νέο πεδίο γραφής ----- */
.cx-cmp .conv-input{align-items:flex-end}
.cx-field{flex:1;min-width:0;position:relative;display:flex;align-items:flex-end;background:#f1f3f8;border:1px solid transparent;border-radius:21px;padding:0 3px 0 14px;transition:background .15s,border-color .15s,box-shadow .15s}
.cx-field:focus-within{background:#fff;border-color:#bfd3fb;box-shadow:0 0 0 3px rgba(37,99,235,.10)}
.cx-field textarea{flex:1;min-width:0;border:none;background:none;resize:none;outline:none;font:inherit;font-size:12.5px;line-height:1.45;padding:10px 0;height:38px;max-height:120px;color:inherit;overflow-y:auto}
.cx-field textarea::placeholder{color:#94a3b8}
.cx-field .cx-emo-b{width:34px;height:34px;margin:2px 0}
.cx-cmp .conv-input .btn-primary{transition:background .15s,box-shadow .15s,color .15s,transform .1s}
.cx-cmp .conv-input:not(.has-txt) .btn-primary{background:#e2e8f0;color:#94a3b8;box-shadow:none}
.cx-cmp .conv-input .btn-primary:active{transform:scale(.92)}
@media (max-width:900px){ .cx-field textarea{font-size:16px} }   /* <16px = auto-zoom σε iOS */

/* ===== Μη κλασικά (λευκό + glass): ομαδοποίηση, μπαλόνια, λίστα ===== */
.cx-new .cv-priv{display:none}
.cx-new .conv-msgs{gap:0;padding:14px 14px 10px}
.cx-new .conv-msgs>:first-child{margin-top:auto}
.cx-new .msg{font-size:13px;line-height:1.42;padding:8px 12px;border-radius:18px;margin-top:2px;max-width:78%}
.cx-new .msg.gs{margin-top:10px}
.cx-new .msg.has-rx{margin-bottom:12px}
.cx-new .msg.in{background:#fff;color:#1e293b;box-shadow:0 1px 2px rgba(15,23,42,.07);border-radius:18px}
.cx-new .msg.out{background:#2563eb;border-radius:18px}
.cx-new .msg.in:not(.ge){border-bottom-left-radius:5px}.cx-new .msg.in:not(.gs){border-top-left-radius:5px}.cx-new .msg.in.ge{border-bottom-left-radius:4px}
.cx-new .msg.out:not(.ge){border-bottom-right-radius:5px}.cx-new .msg.out:not(.gs){border-top-right-radius:5px}.cx-new .msg.out.ge{border-bottom-right-radius:4px}
.cx-new .msg:not(.ge)>.mrow,.cx-new .msg:not(.ge)>.mt{display:none}
.cx-new .msg:not(.gs)>.gm-s{display:none}
.cx-new .msg .mrow{margin-top:2px}
.cx-new .msg-file{background:rgba(255,255,255,.14);border-radius:12px;padding:8px 10px}
.cx-new .msg.in .msg-file{background:#f1f5f9}
.cx-new .cx-typing{background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.07);border-radius:18px;border-bottom-left-radius:4px;margin-top:10px}
.cx-new .conv-input{border-top:1px solid #eef1f5;padding:8px 10px 10px}
.cx-new .cv-item{margin:1px 8px;padding:9px 10px}
.cx-new .cv-item.un{background:transparent}
.cx-new .cv-item.un:hover,.cx-new .cv-item:hover{background:#f4f7fb}
.cx-new .cv-item.un .cv-top b{color:#0f172a}
.cx-new .cv-item.un .cv-prev{color:#334155}
.cx-new .cv-item.un .cv-avw .pres{border-color:#fff}
.cx-new .cv-item .ub{box-shadow:none}
.cx-new .chat-priv{background:none;border-bottom:none;text-align:center;color:#94a3b8;padding:6px 14px 0}
.cx-new .gc-newbtn{border:1px solid #e5e9f0;border-style:solid;color:#334155;border-radius:12px}
.cx-new .gc-newbtn:hover{background:#f4f7fb;border-color:#cbd5e1}

/* ===== Λευκό ===== */
.cx-white .conv-msgs{background:#f3f5f9}
:is(#chatPanel,.cxp-panel).cx-white .chat-head{background:#fff;color:#0f172a;border-bottom:1px solid #eceff4}
.cx-white .chat-head button{color:#334155}
.cx-white .chat-head [style*="--muted"]{color:#64748b!important}
.cx-white .chat-head .avatar{color:#fff}
.cx-white .chat-head .cs-tb,.cx-white .chat-head [class^="cs-"],.cx-white .chat-head .ch-help{background:#f1f5f9!important;color:#334155!important}

/* ===== Liquid Glass ===== */
:is(#chatPanel,.cxp-panel).cx-glass{--cxg:.6;
  background:rgba(246,248,252,calc(.92 - .5*var(--cxg)));
  -webkit-backdrop-filter:blur(calc(12px + 28px*var(--cxg))) saturate(calc(140% + 60%*var(--cxg)));
  backdrop-filter:blur(calc(12px + 28px*var(--cxg))) saturate(calc(140% + 60%*var(--cxg)));
  box-shadow:0 24px 60px rgba(15,23,42,.22),inset 0 1px 0 rgba(255,255,255,.9),inset 0 0 0 1px rgba(255,255,255,.35)}
:is(#chatPanel,.cxp-panel).cx-glass.cx-gbg{background:
  radial-gradient(60% 45% at 15% 20%,rgba(147,197,253,.55),transparent 70%),
  radial-gradient(55% 40% at 90% 35%,rgba(196,181,253,.45),transparent 70%),
  radial-gradient(60% 45% at 30% 85%,rgba(253,186,116,.35),transparent 70%),
  radial-gradient(50% 40% at 85% 90%,rgba(110,231,183,.30),transparent 70%),
  rgba(246,248,252,calc(.9 - .2*var(--cxg)))}
@media (min-width:901px){
  #chatPanel.cx-glass{right:12px;bottom:12px;margin-top:10px;border-radius:24px;border:1px solid rgba(255,255,255,.65)}
  #chatPanel.cx-glass:not(.open){transform:translateX(calc(100% + 30px))}
}
.cx-glass .chat-head{position:absolute;top:10px;left:10px;right:10px;z-index:6;border-radius:22px;padding:8px 10px;color:#0f172a;
  background:linear-gradient(180deg,rgba(255,255,255,calc(.9 - .3*var(--cxg))),rgba(255,255,255,calc(.72 - .35*var(--cxg))));
  -webkit-backdrop-filter:blur(calc(10px + 16px*var(--cxg))) saturate(200%);backdrop-filter:blur(calc(10px + 16px*var(--cxg))) saturate(200%);
  border:1px solid rgba(255,255,255,.78);box-shadow:0 8px 24px rgba(15,23,42,.12),inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(255,255,255,.3)}
.cx-glass .chat-head button{color:#1e293b}
.cx-glass .chat-head [style*="--muted"]{color:#475569!important}
.cx-glass .chat-head .avatar{color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.9)}
.cx-glass .chat-head>button:last-child,.cx-glass .chat-head>button:first-child,.cx-glass .chat-head .ch-help,.cx-glass .chat-head [class^="cs-"]{
  width:32px;height:32px;border-radius:50%!important;display:grid;place-items:center;flex:none;
  background:rgba(255,255,255,.6)!important;border:1px solid rgba(255,255,255,.85)!important;color:#1e293b!important;box-shadow:0 2px 6px rgba(15,23,42,.08),inset 0 1px 0 #fff}
.cx-glass .chat-head+.chat-priv{margin-top:70px}
.cx-glass .chat-head+.gc-form{margin-top:66px}
.cx-glass .chat-priv,.cx-glass .chat-search{background:transparent}
.cx-glass .cs-sbar{position:absolute;top:70px;left:10px;right:10px;z-index:6;border-radius:16px;border:1px solid rgba(255,255,255,.78);
  background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.cx-glass .conv-msgs{background:transparent;padding:78px 14px 88px;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%)}
.cx-glass .conv-input{position:absolute;left:10px;right:10px;bottom:10px;z-index:6;border:none;background:none;padding:0;gap:8px}
.cx-glass .conv-input>.cv-att,.cx-glass .conv-input>input,.cx-glass .cx-field{
  background:linear-gradient(180deg,rgba(255,255,255,calc(.9 - .25*var(--cxg))),rgba(255,255,255,calc(.72 - .3*var(--cxg))));
  -webkit-backdrop-filter:blur(calc(10px + 14px*var(--cxg))) saturate(200%);backdrop-filter:blur(calc(10px + 14px*var(--cxg))) saturate(200%);
  border:1px solid rgba(255,255,255,.82);box-shadow:0 8px 24px rgba(15,23,42,.12),inset 0 1px 0 #fff}
.cx-glass .conv-input>.cv-att{width:42px;height:42px}
.cx-glass .conv-input>input{padding:12px 16px}
.cx-glass .cx-field:focus-within,.cx-glass .conv-input>input:focus{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.95);box-shadow:0 8px 24px rgba(37,99,235,.18),inset 0 1px 0 #fff}
.cx-glass .conv-input .btn-primary{width:44px;height:44px;background:linear-gradient(180deg,#4f8ff7,#1d5fe0);
  box-shadow:0 8px 20px rgba(37,99,235,.4),inset 0 1px 0 rgba(255,255,255,.45),inset 0 -2px 4px rgba(0,0,0,.12)}
.cx-glass.cx-cmp .conv-input:not(.has-txt) .btn-primary{background:rgba(255,255,255,.6);color:#64748b;border:1px solid rgba(255,255,255,.85);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 24px rgba(15,23,42,.1),inset 0 1px 0 #fff}
.cx-glass .msg.in{background:rgba(255,255,255,calc(.92 - .25*var(--cxg)));border:1px solid rgba(255,255,255,.85);
  -webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%);box-shadow:0 2px 10px rgba(15,23,42,.06),inset 0 1px 0 #fff}
.cx-glass .msg.out{background:linear-gradient(180deg,#4b8cf6 0%,#2563eb 60%,#1f56d6 100%);border:1px solid rgba(255,255,255,.18);
  box-shadow:0 4px 14px rgba(37,99,235,.25),inset 0 1px 0 rgba(255,255,255,.35)}
.cx-glass .msg.emo{-webkit-backdrop-filter:none;backdrop-filter:none}
.cx-glass .msg-file{border:1px solid rgba(255,255,255,.22)}
.cx-glass .cx-day,.cx-glass .cx-note{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);color:#475569;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 #fff}
.cx-glass .cx-note{padding:4px 10px;border-radius:10px}
.cx-glass .cx-typing{background:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.85)}
.cx-glass .chat-search input,.cx-glass .cx-chip{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 0 #fff}
.cx-glass .cx-chip.on{background:#0f172a;border-color:#0f172a;box-shadow:none}
.cx-glass .gc-newbtn{background:rgba(255,255,255,.5);border-color:rgba(255,255,255,.8)}
.cx-glass .cv-item:hover,.cx-glass .cv-item.un:hover{background:rgba(255,255,255,.5)}
.cx-glass .cv-avw .pres{border-color:rgba(255,255,255,.9)}
.cx-glass .cx-emo{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
/* Χωρίς υποστήριξη θολώματος ή «μείωση διαφάνειας» → αδιαφανές, ευανάγνωστο */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  :is(#chatPanel,.cxp-panel).cx-glass{--cxg:0!important}
}
@media (prefers-reduced-transparency:reduce){
  :is(#chatPanel,.cxp-panel).cx-glass{--cxg:0!important}
}

/* ===== God Mode → tab «Chat» ===== */
.cx-set{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:16px;align-items:start}
@media (max-width:1100px){ .cx-set{grid-template-columns:minmax(0,1fr)} }
.cx-opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 8px}
@media (max-width:520px){ .cx-opts{grid-template-columns:minmax(0,1fr)} }
.cx-opt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1.5px solid var(--border);background:#fff;border-radius:14px;padding:10px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.cx-opt:hover{border-color:#93c5fd}
.cx-opt.on{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.cx-opt b{font-size:13px}
.cx-opt small{font-size:11px;color:var(--muted);line-height:1.35}
.cx-sw{display:flex;flex-direction:column;gap:4px;width:100%;height:62px;border-radius:10px;padding:8px;margin-bottom:6px;box-sizing:border-box;overflow:hidden}
.cx-sw i{display:block;height:9px;border-radius:6px}
.cx-sw i:nth-child(1){width:100%;height:12px}
.cx-sw i:nth-child(2){width:62%}
.cx-sw i:nth-child(3){width:48%;align-self:flex-end}
.sw-classic{background:#fff;border:1px solid #eef1f5}
.sw-classic i:nth-child(1){background:linear-gradient(120deg,#1e3a8a,#3b82f6)}
.sw-classic i:nth-child(2){background:#eef0f4}.sw-classic i:nth-child(3){background:#3b82f6}
.sw-white{background:#f3f5f9;border:1px solid #eef1f5}
.sw-white i:nth-child(1){background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.1)}
.sw-white i:nth-child(2){background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.1)}.sw-white i:nth-child(3){background:#2563eb}
.sw-glass{background:radial-gradient(60% 60% at 20% 20%,#bfdbfe,transparent 70%),radial-gradient(60% 60% at 90% 70%,#ddd6fe,transparent 70%),radial-gradient(60% 60% at 30% 100%,#fed7aa,transparent 70%),#f1f5f9}
.sw-glass i:nth-child(1){background:rgba(255,255,255,.7);border:1px solid #fff}
.sw-glass i:nth-child(2){background:rgba(255,255,255,.75);border:1px solid #fff}.sw-glass i:nth-child(3){background:linear-gradient(180deg,#4b8cf6,#1f56d6)}
.cx-savebar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--border);background:#fafbfd}
.cx-savebar.dirty{background:#fffbeb}
.cx-savebar .cx-dirty,.cx-savebar .cx-undo{display:none}
.cx-savebar.dirty .cx-dirty{display:inline;font-size:11.5px;font-weight:700;color:#b45309}
.cx-savebar.dirty .cx-undo{display:inline-flex}
.cx-pvcard .card-h{display:flex;align-items:center;gap:8px}
.cx-seg{margin-left:auto;display:inline-flex;background:#f1f3f8;border-radius:10px;padding:3px}
.cx-seg button{border:none;background:none;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:8px;color:#475569;cursor:pointer}
.cx-seg button.on{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.cx-stage{position:relative;height:640px;border-radius:16px;overflow:hidden;margin:4px 12px 8px;background:#eef2f7;display:grid;place-items:center}
.cx-fake{position:absolute;inset:0;padding:16px;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:110px;gap:12px}
.cx-fake i{border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.06)}
.cx-fake i:nth-child(1){grid-column:1/3;background:linear-gradient(120deg,#15233a,#334a73)}
.cx-fake i:nth-child(2){background:linear-gradient(135deg,#f97316,#fdba74)}
.cx-fake i:nth-child(3){background:linear-gradient(135deg,#6366f1,#a5b4fc)}
.cx-fake i:nth-child(4){background:linear-gradient(135deg,#10b981,#6ee7b7)}
.cx-fake i:nth-child(5){background:#fff}
.cxp-panel{position:relative;width:min(380px,calc(100% - 24px));height:calc(100% - 24px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 16px 40px rgba(15,23,42,.18);pointer-events:none;user-select:none}
.cxp-panel .chat-body{flex:1;overflow:hidden}
.cxp-panel .conv{flex:1;min-height:0}
.cxp-panel .conv-msgs{overflow:hidden;justify-content:flex-end}
.cxp-panel.cx-glass{border:1px solid rgba(255,255,255,.65);border-radius:24px}
@media (max-width:600px){ .cx-stage{height:560px;margin:4px 8px 8px} }
/* ---------- 78 — Πλαϊνό μενού: εμφάνιση (God Mode → «Μενού») ----------
   Κλάσεις στο <body>: sd-glass + sd-light | sd-navy | sd-rail · --sdg = ένταση 0…1.
   Η προεπισκόπηση (.sdp μέσα σε .sd-stage) παίρνει ΤΙΣ ΙΔΙΕΣ κλάσεις → ίδιοι κανόνες.
   Κλασικό = καμία κλάση = ακριβώς όπως πριν. ΚΑΜΙΑ animation εδώ (re-render του #sidebar). */

/* ===== Φόντο εφαρμογής (χωρίς αυτό το γυαλί θα έμοιαζε γκρι) ===== */
body.sd-glass,.sd-stage.sd-glass{background:
  radial-gradient(38% 48% at 0% 5%,rgba(147,197,253,.55),transparent 70%),
  radial-gradient(34% 44% at 2% 100%,rgba(253,186,116,.5),transparent 70%),
  radial-gradient(40% 40% at 100% 0%,rgba(196,181,253,.32),transparent 70%),
  radial-gradient(30% 40% at 60% 100%,rgba(110,231,183,.22),transparent 70%),#eef2f8}
body.sd-glass{background-attachment:fixed}

/* ===== Κοινό σχήμα: κάρτα που αιωρείται ===== */
@media (min-width:901px){
  body.sd-glass aside.sidebar-wrap{margin:12px 0 12px 12px;top:12px;height:calc(100vh / var(--zf,1) - 24px);height:calc(100dvh / var(--zf,1) - 24px);border-radius:26px;overflow:hidden}
  body.sd-glass.has-upd aside.sidebar-wrap{top:calc(var(--updh,40px) + 12px);height:calc(100dvh / var(--zf,1) - var(--updh,40px) - 24px)}
  body.sd-rail .side-fold{display:none}
  :is(body.sd-light) .side-fold{color:#475569;background:rgba(255,255,255,.6)}
}
@media (max-width:900px){
  body.sd-glass aside.sidebar-wrap{top:10px;left:10px;height:calc(100dvh / var(--zf,1) - 20px);border-radius:26px;overflow:hidden}
  body.sd-glass:not(.mnav-open) aside.sidebar-wrap{transform:translateX(calc(-100% - 24px))}
  body.sd-glass .m-nav-ov{background:rgba(15,23,42,.14);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
}
.sdp{position:relative;display:flex;flex-direction:column;width:240px;flex:none;border-radius:0;overflow:hidden;
  background:linear-gradient(180deg,var(--sb1,#15243b),var(--sb2,#182a47));color:#dde3ee}
.sdp.sd-glass{border-radius:22px;margin:12px}

/* ===== Λευκό γυαλί (και μπάρα εικονιδίων) ===== */
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap,.sdp:is(.sd-light,.sd-rail){
  background:linear-gradient(180deg,rgba(255,255,255,calc(.9 - .3*var(--sdg))),rgba(255,255,255,calc(.76 - .38*var(--sdg))));
  -webkit-backdrop-filter:blur(calc(12px + 24px*var(--sdg))) saturate(190%);backdrop-filter:blur(calc(12px + 24px*var(--sdg))) saturate(190%);
  border:1px solid rgba(255,255,255,.75);color:#1e293b;
  box-shadow:0 20px 50px rgba(15,23,42,.14),inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(255,255,255,.3)}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap :is(.nav-item,.nav-sub),.sdp:is(.sd-light,.sd-rail) .nav-item{color:#1e293b}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-item svg,.sdp:is(.sd-light,.sd-rail) .nav-item svg{filter:saturate(1.15) brightness(.82)}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap :is(.nav-item,.nav-sub):hover{background:rgba(255,255,255,.62)}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-item.active,.sdp:is(.sd-light,.sd-rail) .nav-item.active{
  background:linear-gradient(180deg,#ff8a4c,#e8622d);color:#fff;border:1px solid rgba(255,255,255,.35);
  box-shadow:0 8px 18px rgba(232,98,45,.33),inset 0 1px 0 rgba(255,255,255,.5)}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-item.active svg,.sdp:is(.sd-light,.sd-rail) .nav-item.active svg{filter:none;color:#fff}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-sub.active{color:#fff}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-sub svg.i{color:#0e7490}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-subwrap{border-left-color:rgba(15,23,42,.12)}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-title,.sdp:is(.sd-light,.sd-rail) .nav-title{color:#64748b}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .side-brand small,.sdp:is(.sd-light,.sd-rail) .side-brand small{color:#64748b}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .priv-note{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);color:#475569;box-shadow:inset 0 1px 0 #fff}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .priv-note b{color:#0f172a}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-sep.line{background:rgba(15,23,42,.1)}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-grp{background:rgba(255,255,255,.4);border-color:rgba(255,255,255,.7)}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .m-logout{background:rgba(255,255,255,.6);color:#b91c1c;border:1px solid rgba(255,255,255,.85)}
:is(body.sd-light,body.sd-rail) aside.sidebar-wrap .nav-item .cnt{box-shadow:0 0 0 2px rgba(255,255,255,.9)}

/* ===== Σκούρο γυαλί (κρατά το χρώμα τμήματος) ===== */
body.sd-navy aside.sidebar-wrap,.sdp.sd-navy{
  background:linear-gradient(180deg,color-mix(in srgb,var(--sb1,#111d32) calc(97% - 22%*var(--sdg)),transparent),
                                   color-mix(in srgb,var(--sb2,#162642) calc(94% - 24%*var(--sdg)),transparent));
  -webkit-backdrop-filter:blur(calc(12px + 24px*var(--sdg))) saturate(170%);backdrop-filter:blur(calc(12px + 24px*var(--sdg))) saturate(170%);
  border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 50px rgba(15,23,42,.28),inset 0 1px 0 rgba(255,255,255,.18)}
body.sd-navy aside.sidebar-wrap::before,.sdp.sd-navy::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:radial-gradient(60% 30% at 20% 0%,rgba(255,138,76,.28),transparent 70%),radial-gradient(60% 30% at 80% 100%,rgba(96,165,250,.28),transparent 70%)}
body.sd-navy aside.sidebar-wrap>*,.sdp.sd-navy>*{position:relative}
body.sd-navy aside.sidebar-wrap .nav-item:hover{background:rgba(255,255,255,.08)}
body.sd-navy aside.sidebar-wrap .nav-item.active,.sdp.sd-navy .nav-item.active{
  background:linear-gradient(180deg,rgba(255,138,76,.92),rgba(232,98,45,.92));border:1px solid rgba(255,255,255,.28);
  box-shadow:0 8px 20px rgba(232,98,45,.4),inset 0 1px 0 rgba(255,255,255,.45)}
body.sd-navy aside.sidebar-wrap .priv-note{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}

/* ===== Μπάρα εικονιδίων (μόνο υπολογιστής· στο κινητό = λευκό γυαλί συρτάρι) =====
   Κλειστή 72px· στο hover ανοίγει στα 240px ΠΑΝΩ από τη σελίδα (αρνητικό margin → το
   περιεχόμενο δεν μετακινείται) και το γυαλί θολώνει ό,τι βρίσκεται από κάτω. */
@media (min-width:901px){
  body.sd-rail aside.sidebar-wrap{width:72px;border-radius:28px;z-index:60;
    transition:width .22s ease,margin-right .22s ease,box-shadow .22s ease}
  body.sd-rail aside.sidebar-wrap:hover{width:240px;margin-right:-168px;box-shadow:0 24px 60px rgba(15,23,42,.24),inset 0 1px 0 #fff}
  body.sd-rail aside.sidebar-wrap #sidebar{overflow-x:hidden}
}
@media (min-width:901px){
  body.sd-rail aside.sidebar-wrap:not(:hover) .side-brand,.sdp.sd-rail:not(:hover) .side-brand{justify-content:center;padding:16px 0 12px}
  body.sd-rail aside.sidebar-wrap:not(:hover) .brandtxt,.sdp.sd-rail:not(:hover) .brandtxt{display:none}
  body.sd-rail aside.sidebar-wrap:not(:hover) .nav-title,.sdp.sd-rail:not(:hover) .nav-title{visibility:hidden;height:4px;padding:0;overflow:hidden}
  body.sd-rail aside.sidebar-wrap:not(:hover) :is(.priv-note,.nav-subwrap,.nav-caret),.sdp.sd-rail:not(:hover) .priv-note{display:none}
  body.sd-rail aside.sidebar-wrap .nav-item,.sdp.sd-rail .nav-item{transition:font-size .22s ease,padding .22s ease;border-radius:14px}
  body.sd-rail aside.sidebar-wrap:not(:hover) .nav-item,.sdp.sd-rail:not(:hover) .nav-item{font-size:0;position:relative;padding:11px 0 11px 16px;white-space:nowrap}
  body.sd-rail aside.sidebar-wrap:not(:hover) .nav-item .cnt,.sdp.sd-rail:not(:hover) .nav-item .cnt{position:absolute;top:2px;left:36px;transform:translateX(-50%);
    margin:0;font-size:9.5px;line-height:1.65;padding:0 4px;min-width:16px;text-align:center;white-space:nowrap}
  body.sd-rail aside.sidebar-wrap:not(:hover) .m-logout{font-size:0;gap:0;padding:11px 0}
}
.sdp.sd-rail{width:72px;transition:width .22s ease,margin-right .22s ease;z-index:2}
.sdp.sd-rail:hover{width:240px;margin-right:-168px}
@media (prefers-reduced-motion:reduce){ body.sd-rail aside.sidebar-wrap,.sdp.sd-rail,body.sd-rail aside.sidebar-wrap .nav-item{transition:none} }
body.tr-off.sd-rail aside.sidebar-wrap,body.tr-off.sd-rail aside.sidebar-wrap .nav-item{transition:none}

/* Χωρίς θόλωμα ή «μείωση διαφάνειας» → συμπαγές */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ body.sd-glass,.sd-stage.sd-glass{--sdg:0!important} }
@media (prefers-reduced-transparency:reduce){ body.sd-glass,.sd-stage.sd-glass{--sdg:0!important} }

/* ===== Tab «Μενού» → κάρτα εμφάνισης ===== */
.sd-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:16px;padding:12px 14px 14px;align-items:start}
@media (max-width:1100px){ .sd-grid{grid-template-columns:minmax(0,1fr)} }
.sd-opts{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1500px){ .sd-opts{grid-template-columns:repeat(4,minmax(0,1fr))} }
.sd-sw{display:flex;flex-direction:column;gap:4px;width:100%;height:62px;border-radius:10px;padding:7px;margin-bottom:6px;box-sizing:border-box;overflow:hidden;position:relative;
  background:radial-gradient(60% 70% at 10% 10%,#bfdbfe,transparent 70%),radial-gradient(60% 70% at 20% 100%,#fed7aa,transparent 70%),#eef2f7}
.sd-sw i{display:block;height:8px;border-radius:5px;width:34%}
.sd-sw i:first-child{background:#e8622d!important}
.sdw-classic{background:#eef2f7}
.sdw-classic::before,.sdw-navy::before,.sdw-light::before,.sdw-rail::before{content:"";position:absolute;left:0;top:0;bottom:0;width:44%}
.sdw-classic::before{background:linear-gradient(180deg,#15243b,#182a47)}
.sdw-light::before{left:5px;top:5px;bottom:5px;border-radius:8px;background:rgba(255,255,255,.72);border:1px solid #fff}
.sdw-navy::before{left:5px;top:5px;bottom:5px;border-radius:8px;background:rgba(21,36,59,.85)}
.sdw-rail::before{left:5px;top:5px;bottom:5px;width:14%;border-radius:8px;background:rgba(255,255,255,.75);border:1px solid #fff}
.sd-sw i{position:relative;z-index:1;margin-left:6px;width:26%}
.sdw-classic i,.sdw-navy i{background:rgba(255,255,255,.3)}
.sdw-light i{background:rgba(15,23,42,.15)}
.sdw-rail i{width:6%;margin-left:7px;background:rgba(15,23,42,.18)}
.sd-stage{position:relative;height:460px;border-radius:16px;overflow:hidden;display:flex;align-items:stretch;background:#f4f6fa;border:1px solid var(--border)}
.sd-stage .sdp{height:auto}
.sd-stage .sdp:not(.sd-glass){margin:0}
.sd-stage .sdp.sd-glass{height:calc(100% - 24px)}
.sdp .side-brand{display:flex;align-items:center;gap:9px;padding:14px 14px 10px;flex:none}
.sdp-mark{width:30px;height:30px;border-radius:9px;flex:none;background:linear-gradient(135deg,#e8622d,#ffb37a);box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.sdp .bname{font-weight:800;color:#e8622d;letter-spacing:.5px}
.sdp .brandtxt small{display:block;font-size:10px;opacity:.75}
.sdp-nav{padding:2px 10px 12px;overflow:hidden}
.sdp .nav-item{pointer-events:auto;font-size:13px;padding:9px 11px}
.sd-fakepage{flex:1;min-width:0;padding:14px;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:90px;gap:12px}
.sd-fakepage i{border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.06)}
.sd-fakepage i:nth-child(1){grid-column:1/3;background:linear-gradient(120deg,#15233a,#334a73)}
.sd-fakepage i:nth-child(2){background:linear-gradient(135deg,#f97316,#fdba74)}
.sd-fakepage i:nth-child(3){background:linear-gradient(135deg,#6366f1,#a5b4fc)}
@media (max-width:600px){ .sd-fakepage{display:none} .sd-stage{justify-content:center} }
/* ---------- 79 — Ξενάγηση νέου χρήστη ----------
   Όλα μέσα στο #obRoot (δικό του επίπεδο, δεν ξαναχτίζεται από renderMain) → τα εφέ
   δεν ξαναπαίζουν σε re-render. Σεβασμός στο prefers-reduced-motion στο τέλος. */
.ob-root{position:fixed;inset:0;z-index:9000;pointer-events:none;font-family:inherit}
.ob-root>*{pointer-events:auto}
.ob-root.ob-leave{animation:obFadeOut .38s ease forwards}
@keyframes obFadeOut{to{opacity:0;filter:blur(6px)}}
.ob-btn{border:none;border-radius:12px;padding:12px 22px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:transform .15s ease,box-shadow .2s ease,background .2s ease}
.ob-btn:active{transform:scale(.96)}
.ob-pri{background:linear-gradient(180deg,#ff8a4c,#e8622d);color:#fff;box-shadow:0 10px 24px rgba(232,98,45,.4),inset 0 1px 0 rgba(255,255,255,.4)}
.ob-pri:hover{box-shadow:0 14px 30px rgba(232,98,45,.5),inset 0 1px 0 rgba(255,255,255,.4);transform:translateY(-1px)}
.ob-gh{background:transparent;color:#475569}
.ob-gh:hover{background:rgba(15,23,42,.06)}
.ob-shine{position:relative;overflow:hidden}
.ob-shine::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);animation:obShine 2.8s ease-in-out 1.6s infinite}
@keyframes obShine{0%{left:-60%}45%,100%{left:130%}}

/* ===== Οθόνες (καλωσόρισμα, μπάνερ, τέλος) ===== */
.ob-screen{position:fixed;inset:0}
.ob-screen.ob-in{animation:obScrIn .6s cubic-bezier(.2,.8,.2,1) both}
.ob-screen.ob-out{animation:obScrOut .42s cubic-bezier(.6,0,.8,.4) both}
@keyframes obScrIn{from{opacity:0}to{opacity:1}}
@keyframes obScrOut{to{opacity:0;transform:scale(1.06);filter:blur(10px)}}

/* Καλωσόρισμα «Aurora» */
.ob-w{position:absolute;inset:0;background:#0a1224;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center}
.ob-au{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;will-change:transform}
.ob-au.a1{width:70vmax;height:70vmax;background:#e8622d;left:-22vmax;top:-32vmax;animation:obAu1 14s ease-in-out infinite alternate}
.ob-au.a2{width:75vmax;height:75vmax;background:#6d28d9;right:-28vmax;bottom:-38vmax;animation:obAu2 16s ease-in-out infinite alternate}
.ob-au.a3{width:42vmax;height:42vmax;background:#2563eb;right:8vmax;top:-14vmax;opacity:.38;animation:obAu3 12s ease-in-out infinite alternate}
@keyframes obAu1{to{transform:translate(12vmax,10vmax) scale(1.1)}}
@keyframes obAu2{to{transform:translate(-10vmax,-8vmax) scale(1.08)}}
@keyframes obAu3{to{transform:translate(-14vmax,12vmax) scale(.9)}}
.ob-spk{position:absolute;inset:0}
.ob-spk i{position:absolute;border-radius:50%;background:#fff;opacity:0;animation:obTw 3s ease-in-out infinite}
@keyframes obTw{0%,100%{opacity:0;transform:scale(.6)}50%{opacity:.85;transform:scale(1)}}
.ob-w-in{position:relative;max-width:760px;padding:24px}
.ob-logo{width:100px;height:100px;border-radius:28px;box-shadow:0 22px 60px rgba(232,98,45,.5);margin-bottom:28px;
  animation:obLogo 1s cubic-bezier(.2,1.4,.3,1) .15s both}
@keyframes obLogo{from{opacity:0;transform:scale(.3) rotate(-25deg)}to{opacity:1;transform:none}}
.ob-kick{font-size:16px;letter-spacing:.34em;text-transform:uppercase;opacity:.7;margin-bottom:10px;animation:obUp .7s ease .55s both}
.ob-w h1{font-size:clamp(34px,6vw,66px);line-height:1.06;margin:0 0 18px;font-weight:800}
.ob-w h1 span{display:block}
.ob-l1{animation:obUp .8s cubic-bezier(.2,.8,.2,1) .75s both}
.ob-l2{animation:obUp .8s cubic-bezier(.2,.8,.2,1) .95s both}
.ob-w h1 b{background:linear-gradient(90deg,#ff8a4c,#ffc38a,#ff8a4c);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:obGrad 4s linear infinite}
@keyframes obGrad{to{background-position:200% 0}}
.ob-w p{font-size:clamp(15px,1.6vw,18px);opacity:.8;margin:0 0 34px;line-height:1.55;animation:obUp .8s ease 1.2s both}
.ob-w .ob-btn{padding:14px 30px;font-size:15px;animation:obPop .7s cubic-bezier(.2,1.4,.3,1) 1.45s both}
@keyframes obUp{from{opacity:0;transform:translateY(22px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes obPop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}

/* Μπάνερ / τέλος */
.ob-iov{position:absolute;inset:0;background:rgba(10,18,36,.5);-webkit-backdrop-filter:blur(6px) saturate(140%);backdrop-filter:blur(6px) saturate(140%);
  display:grid;place-items:center;padding:16px}
.ob-card{width:min(620px,100%);background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 40px 100px rgba(10,18,36,.45);
  animation:obCard .7s cubic-bezier(.2,1.2,.3,1) .05s both}
@keyframes obCard{from{opacity:0;transform:translateY(30px) scale(.92);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.ob-map{height:190px;background:linear-gradient(135deg,#15233a,#334a73);display:grid;place-items:center;position:relative;overflow:hidden}
.ob-map::before{content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:#e8622d;filter:blur(70px);opacity:.35;left:-80px;top:-120px}
.ob-mp{position:relative;width:min(330px,80%);height:140px;border-radius:14px;background:#f4f6fa;display:grid;grid-template-columns:70px 1fr;
  grid-template-rows:22px 1fr 26px;gap:6px;padding:8px;box-shadow:0 20px 40px rgba(0,0,0,.35);animation:obPop .6s cubic-bezier(.2,1.3,.3,1) .35s both}
.ob-mp i{border-radius:6px;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:800;color:#fff;animation:obUp .5s ease both}
.ob-mp .m1{grid-row:1/4;background:#15243b;animation-delay:.55s}
.ob-mp .m2{background:#cbd5e1;color:#334155;animation-delay:.65s}
.ob-mp .m3{background:#e8622d;animation-delay:.75s}
.ob-mp .m4{background:#7c3aed;width:60%;justify-self:center;animation-delay:.85s}
.ob-cb{padding:26px 30px 24px}
.ob-cb h2{margin:0 0 8px;font-size:24px;color:#0f172a}
.ob-cb p{margin:0 0 16px;color:#475569;line-height:1.55}
.ob-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.ob-chips span{font-size:12.5px;font-weight:700;padding:6px 11px;border-radius:20px;background:#f1f5f9;color:#334155;animation:obPop .45s cubic-bezier(.2,1.4,.3,1) both}
.ob-cf{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ob-time{margin-right:auto;color:#64748b;font-size:13px}
@media (max-width:600px){ .ob-cf{justify-content:flex-end} .ob-time{width:100%;margin-bottom:4px} .ob-cb{padding:22px 20px 20px} .ob-map{height:150px} }
.ob-fin canvas{position:absolute;inset:0;pointer-events:none}
.ob-done{text-align:center;padding:34px 30px 28px;width:min(460px,100%)}
.ob-done h2{margin:14px 0 8px;font-size:28px;color:#0f172a}
.ob-done p{color:#475569;line-height:1.55;margin:0 0 22px}
.ob-badge{width:78px;height:78px;margin:0 auto;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 14px 34px rgba(16,185,129,.45);animation:obLogo .8s cubic-bezier(.2,1.5,.3,1) .2s both}

/* ===== Βήματα: προβολέας + συννεφάκι ===== */
.ob-shield{position:fixed;inset:0;background:transparent}
.ob-hole{position:fixed;border-radius:16px;pointer-events:none;box-shadow:0 0 0 9999px rgba(8,15,30,.66);
  transition:left .55s cubic-bezier(.65,0,.35,1),top .55s cubic-bezier(.65,0,.35,1),width .55s cubic-bezier(.65,0,.35,1),height .55s cubic-bezier(.65,0,.35,1);
  animation:obShade .5s ease both}
@keyframes obShade{from{box-shadow:0 0 0 9999px rgba(8,15,30,0)}to{box-shadow:0 0 0 9999px rgba(8,15,30,.66)}}
.ob-ring{position:fixed;border-radius:16px;pointer-events:none;box-shadow:0 0 0 2px rgba(255,138,76,.9),0 0 22px 4px rgba(255,138,76,.35);
  transition:left .55s cubic-bezier(.65,0,.35,1),top .55s cubic-bezier(.65,0,.35,1),width .55s cubic-bezier(.65,0,.35,1),height .55s cubic-bezier(.65,0,.35,1)}
.ob-ring.ob-act{animation:obPulse 1.6s ease-in-out infinite}
@keyframes obPulse{0%,100%{box-shadow:0 0 0 2px rgba(255,138,76,.95),0 0 0 0 rgba(255,138,76,.45)}60%{box-shadow:0 0 0 2px rgba(255,138,76,.95),0 0 0 14px rgba(255,138,76,0)}}
.ob-tip{position:fixed;background:#fff;color:#0f172a;border-radius:20px;padding:16px 18px 14px;box-shadow:0 30px 70px rgba(0,0,0,.35);z-index:2;
  transition:left .5s cubic-bezier(.65,0,.35,1),top .5s cubic-bezier(.65,0,.35,1),opacity .2s ease,transform .2s ease,filter .2s ease}
.ob-tip.ob-tip-out{opacity:0;transform:translateY(8px) scale(.97);filter:blur(4px)}
.ob-tip.ob-tip-in .ob-tc{animation:obUp .45s cubic-bezier(.2,.8,.2,1) .12s both}
.ob-tip.ob-tip-in .ob-tc li{animation:obUp .45s cubic-bezier(.2,.8,.2,1) both}
.ob-tip.ob-tip-in .ob-tf{animation:obUp .4s ease .3s both}
.ob-ar{position:absolute;width:18px;height:18px;background:#fff;border-radius:3px;transform:rotate(45deg);transition:top .5s ease,left .5s ease}
.ob-s-right .ob-ar{left:-8px}
.ob-s-left .ob-ar{right:-8px}
.ob-s-bottom .ob-ar{top:-8px}
.ob-s-top .ob-ar{bottom:-8px}
.ob-s-stop .ob-ar,.ob-s-sbot .ob-ar{display:none}
.ob-th{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ob-st{font-size:11.5px;font-weight:800;letter-spacing:.12em;color:#e8622d;text-transform:uppercase}
.ob-x{margin-left:auto;border:none;background:#f1f5f9;color:#475569;border-radius:8px;padding:4px 9px;font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.ob-x:hover{background:#e2e8f0}
.ob-prog{height:4px;border-radius:3px;background:#eef1f5;overflow:hidden;margin-bottom:12px}
.ob-prog span{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#ff8a4c,#e8622d);transition:width .55s cubic-bezier(.65,0,.35,1)}
.ob-tc h3{margin:0 0 6px;font-size:18px}
.ob-tc p{margin:0 0 10px;line-height:1.5;font-size:14px;color:#475569}
.ob-tc ul{margin:0 0 10px;padding-left:18px;font-size:13.5px;line-height:1.6;color:#334155}
.ob-okc h3{color:#047857}
.ob-must{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#b45309;background:#fef3c7;border-radius:8px;padding:5px 9px;margin-bottom:10px}
.ob-tf{display:flex;align-items:center;gap:6px;margin-top:4px}
.ob-tf .ob-btn{padding:9px 14px;font-size:13px;border-radius:10px}
.ob-sp{flex:1}
.ob-wait{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:#e8622d;margin-right:auto}
.ob-wait i{width:8px;height:8px;border-radius:50%;background:#e8622d;animation:obBlink 1.2s ease-in-out infinite}
@keyframes obBlink{0%,100%{box-shadow:0 0 0 0 rgba(232,98,45,.45)}50%{box-shadow:0 0 0 6px rgba(232,98,45,0)}}
@media (max-width:600px){ .ob-tip{padding:14px 14px 12px} .ob-tc h3{font-size:16px} .ob-tc p,.ob-tc ul{font-size:13px} }

@media (prefers-reduced-motion:reduce){
  .ob-root *,.ob-root *::before,.ob-root *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important}
}
/* λίστα σταδίων αλλαγής κωδικού */
.ob-chk{list-style:none;margin:2px 0 10px;padding:0;display:grid;gap:4px}
.ob-chk li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#94a3b8;padding:3px 6px;border-radius:8px}
.ob-chk li i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10.5px;font-weight:800;background:#eef1f5;color:#64748b;flex:none}
.ob-chk li.done{color:#047857}
.ob-chk li.done i{background:#10b981;color:#fff}
.ob-chk li.now{color:#0f172a;font-weight:700;background:#fff7ed}
.ob-chk li.now i{background:#e8622d;color:#fff;box-shadow:0 0 0 3px rgba(232,98,45,.2)}
.ob-must{display:flex}

/* ===== Γιορτή τέλους + μεγάλη αποκάλυψη ===== */
.ob-fin{background:radial-gradient(120% 90% at 50% 110%,rgba(232,98,45,.3),transparent 60%),radial-gradient(80% 60% at 50% -10%,rgba(124,58,237,.22),transparent 60%),rgba(5,9,20,.86)}
.ob-fx{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:1;transition:opacity .8s ease}
.ob-finwrap{position:fixed;inset:0;display:grid;place-items:center;padding:16px;z-index:2;pointer-events:none}
.ob-finwrap .ob-card{pointer-events:auto}
.ob-fx.ob-fx-out{opacity:0}
.ob-done{position:relative;box-shadow:0 40px 120px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.6),0 0 80px rgba(255,138,76,.25)}
.ob-go{padding:14px 34px;font-size:15px;animation:obGoPulse 2.2s ease-in-out 1s infinite}
@keyframes obGoPulse{0%,100%{box-shadow:0 10px 24px rgba(232,98,45,.4),0 0 0 0 rgba(255,138,76,.55)}50%{box-shadow:0 10px 24px rgba(232,98,45,.4),0 0 0 14px rgba(255,138,76,0)}}
.ob-done.ob-away{animation:obAway .85s cubic-bezier(.6,-.2,.7,.4) forwards}
@keyframes obAway{to{opacity:0;transform:translateY(-40px) scale(.72);filter:blur(10px)}}
@property --obr{syntax:"<length>";inherits:false;initial-value:0px}
.ob-fin.ob-iris{-webkit-mask:radial-gradient(circle at var(--ox,50%) var(--oy,50%),transparent var(--obr),#000 calc(var(--obr) + 60px));
  mask:radial-gradient(circle at var(--ox,50%) var(--oy,50%),transparent var(--obr),#000 calc(var(--obr) + 60px));
  animation:obIris 2.4s cubic-bezier(.65,0,.25,1) forwards}
@keyframes obIris{0%{--obr:0px}88%{opacity:1}100%{--obr:170vmax;opacity:0}}
.ob-shock{position:fixed;left:var(--ox,50%);top:var(--oy,50%);width:0;height:0;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;z-index:4;
  box-shadow:0 0 0 3px rgba(255,255,255,.95),0 0 40px 14px rgba(255,138,76,.75),inset 0 0 40px 8px rgba(255,209,102,.6)}
.ob-shock.go{animation:obShock 2.3s cubic-bezier(.25,.7,.25,1) forwards}
@keyframes obShock{0%{width:0;height:0;opacity:1}100%{width:280vmax;height:280vmax;opacity:0}}
.ob-flash{position:fixed;inset:0;pointer-events:none;opacity:0;z-index:4;
  background:radial-gradient(circle at var(--ox,50%) var(--oy,50%),rgba(255,255,255,.95),rgba(255,209,102,.55) 14%,rgba(255,138,76,.18) 32%,transparent 55%)}
.ob-flash.go{animation:obFlash 1.6s ease-out forwards}
@keyframes obFlash{0%{opacity:0}14%{opacity:1}100%{opacity:0}}
/* η εφαρμογή «χτίζεται» (individual transforms — δεν πειράζουν τα υπάρχοντα transform) */
body.ob-reveal aside.sidebar-wrap{animation:obInL 1.8s cubic-bezier(.2,.9,.2,1) .6s both}
body.ob-reveal #topbar{animation:obInT 1.6s cubic-bezier(.2,.9,.2,1) .85s both}
body.ob-reveal #main>*{animation:obRise 1.7s cubic-bezier(.2,.9,.2,1) both}
body.ob-reveal #main>*:nth-child(1){animation-delay:1s}
body.ob-reveal #main>*:nth-child(2){animation-delay:1.2s}
body.ob-reveal #main>*:nth-child(3){animation-delay:1.4s}
body.ob-reveal #main>*:nth-child(4){animation-delay:1.6s}
body.ob-reveal #main>*:nth-child(n+5){animation-delay:1.75s}
body.ob-reveal #dock{animation:obDock 1.4s cubic-bezier(.2,1.4,.3,1) 2.1s both}
@keyframes obInL{from{translate:-60px 0;opacity:0;filter:blur(10px)}to{translate:0 0;opacity:1;filter:none}}
@keyframes obInT{from{translate:0 -30px;opacity:0;filter:blur(8px)}to{translate:0 0;opacity:1;filter:none}}
@keyframes obRise{from{translate:0 46px;scale:.96;opacity:0;filter:blur(10px)}to{translate:0 0;scale:1;opacity:1;filter:none}}
@keyframes obDock{from{translate:0 90px;scale:.8;opacity:0}to{translate:0 0;scale:1;opacity:1}}
@media (prefers-reduced-motion:reduce){ body.ob-reveal *{animation:none!important} }
/* ============================================================
   ΥΠΕΝΘΥΜΙΣΕΙΣ — macOS Big Sur (module 80). Χρώματα Apple ανά πλακίδιο.
   Desktop: δύο στήλες. ≤900px: πλακίδια πάνω, λίστα από κάτω, popover = φύλλο κάτω.
   ============================================================ */
  .rm-win{max-width:900px;height:min(600px,86vh);background:#fff}
  .rm-h{background:#ebebed;border-bottom:1px solid #dcdce0;align-items:center;padding:11px 16px}
  .rm-h h2{font-size:15px}
  .rm-h .sub{font-size:11.5px;color:#8a8a8e}
  .rm-h .mh-ic{color:#fff;width:32px;height:32px;border-radius:9px}
  .rm-h .mh-help{background:rgba(0,0,0,.06);color:#6b6b70}
  .rm-h .mh-help:hover{background:rgba(0,0,0,.11)}

  .rm-body{flex:1 1 auto;min-height:0;display:flex}
  .rm-side{width:290px;flex:none;background:#ebebed;border-right:1px solid #dcdce0;padding:12px;display:flex;flex-direction:column;gap:12px}
  .rm-srch{display:flex;align-items:center;gap:6px;background:rgba(0,0,0,.06);border-radius:8px;padding:0 9px;color:#8a8a8e;cursor:text}
  .rm-srch input{border:none;background:none;outline:none;padding:7px 0;font-size:13px;flex:1;min-width:0;color:#1d1d1f;box-shadow:none}
  .rm-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .rm-tile{border:none;background:rgba(0,0,0,.055);border-radius:11px;padding:9px 10px 8px;display:grid;
    grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:8px 4px;text-align:left;cursor:pointer;transition:background .15s,transform .1s;min-width:0}
  .rm-tile:hover{background:rgba(0,0,0,.09)}
  .rm-tile:active{transform:scale(.97)}
  .rm-ti{width:26px;height:26px;border-radius:50%;background:var(--rmc);color:#fff;display:grid;place-items:center}
  .rm-tile b{justify-self:end;font-size:21px;font-weight:700;line-height:1;color:#1d1d1f}
  .rm-tl{grid-column:1/-1;font-size:12px;font-weight:600;color:#8a8a8e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rm-tile.on{background:var(--rmc)}
  .rm-tile.on b,.rm-tile.on .rm-tl{color:#fff}
  .rm-tile.on .rm-ti{background:#fff;color:var(--rmc)}
  .rm-sidenew{margin-top:auto;border:none;background:none;display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:#8a8a8e;padding:4px;cursor:pointer;text-align:left}
  .rm-sidenew:hover{color:#1d1d1f}

  .rm-pane{flex:1;min-width:0;position:relative;overflow-y:auto;padding-bottom:24px}
  .rm-bar{display:flex;justify-content:flex-end;padding:10px 14px 0}
  .rm-plus{border:none;background:none;color:#8a8a8e;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;cursor:pointer}
  .rm-plus:hover{background:rgba(0,0,0,.06);color:#1d1d1f}
  .rm-ttl{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 26px 8px}
  .rm-ttl h1{font-size:30px;font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.15;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rm-ttl span{font-size:30px;font-weight:600;color:#8a8a8e;flex:none}
  .rm-sec{font-size:13px;font-weight:700;color:#8a8a8e;padding:16px 26px 4px}
  .rm-row{display:flex;gap:12px;padding:0 16px 0 26px;align-items:flex-start;cursor:pointer;position:relative}
  .rm-row:hover{background:rgba(0,0,0,.025)}
  .rm-c{width:20px;height:20px;border-radius:50%;border:1.6px solid #c7c7cc;background:#fff;flex:none;margin-top:10px;padding:0;cursor:pointer;position:relative;transition:border-color .15s}
  .rm-c:hover{border-color:#007aff}
  .rm-c.on{border-color:#007aff}
  .rm-c.on:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#007aff;animation:rmPop .25s ease}
  @keyframes rmPop{from{transform:scale(0)}to{transform:scale(1)}}
  .rm-tx{flex:1;min-width:0;padding:9px 0 10px;border-bottom:1px solid #e6e6ea}
  .rm-t{font-size:14px;font-weight:500;color:#1d1d1f;overflow-wrap:anywhere}
  .rm-tx small{display:flex;align-items:center;gap:4px;font-size:12px;color:#8a8a8e;margin-top:2px}
  .rm-tx small.late{color:#ff3b30;font-weight:600}
  .rm-row.is-done .rm-t{color:#8a8a8e}
  .rm-i{color:#007aff;margin-top:10px;opacity:0;flex:none;transition:opacity .15s}
  .rm-row:hover .rm-i,.rm-row.sel .rm-i{opacity:1}
  .rm-row.sel{background:rgba(0,0,0,.055);border-radius:9px;margin:0 10px;padding-left:16px;padding-right:6px}
  .rm-row.sel .rm-tx{border-bottom-color:transparent}
  .rm-newbtn,.rm-new{display:flex;align-items:center;gap:12px;padding:0 26px;width:100%;border:none;background:none;font-size:14px;color:#8a8a8e;cursor:pointer;text-align:left;min-height:42px}
  .rm-newbtn .rm-c,.rm-new .rm-c{margin-top:0;border-style:dashed;cursor:default;pointer-events:none}
  .rm-newbtn:hover{color:#1d1d1f}
  .rm-new input{flex:1;border:none;outline:none;background:none;font-size:14px;font-weight:500;padding:10px 0;border-bottom:1px solid #e6e6ea;box-shadow:none;border-radius:0}
  .rm-empty{padding:40px 26px;color:#8a8a8e;font-size:14px;text-align:center}

  /* popover επεξεργασίας (desktop: δίπλα στη γραμμή) */
  .rm-pop{position:absolute;right:14px;top:120px;width:290px;background:#f6f6f7;border-radius:12px;padding:14px 16px;z-index:5;
    box-shadow:0 18px 50px rgba(0,0,0,.25),0 0 0 .5px rgba(0,0,0,.2);animation:rmIn .16s ease}
  @keyframes rmIn{from{opacity:0;translate:0 -4px}to{opacity:1;translate:0 0}}
  .rm-pt{width:100%;border:none;background:none;font-size:15px;font-weight:700;padding:2px 0 8px;resize:none;font-family:inherit;line-height:1.3;border-bottom:1px solid #e6e6ea;border-radius:0;outline:none;box-shadow:none}
  .rm-pr{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;padding:6px 0;border-bottom:1px solid #e6e6ea}
  .rm-pr span{color:#8a8a8e}
  .rm-pr input{border:none;background:none;color:#aeaeb2;font-weight:600;font-size:13px;text-align:right;padding:4px 0;box-shadow:none;width:auto;min-width:0}
  .rm-pr input.set{color:#007aff}
  .rm-hint{font-size:11px;color:#8a8a8e;padding-top:8px}
  .rm-pop .err,.rm-cardb .err{margin-top:6px}
  .rm-pf{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
  .rm-del{border:none;background:none;color:#ff3b30;font-weight:600;font-size:13px;padding:5px 4px;border-radius:7px;cursor:pointer}
  .rm-del.sure{background:#ff3b30;color:#fff;padding:5px 12px}
  .rm-ok{border:none;background:#007aff;color:#fff;font-weight:600;font-size:13px;padding:6px 18px;border-radius:7px;cursor:pointer}
  .rm-ok:hover{background:#0068d9}

  /* κάρτα επεξεργασίας από dashboard/ημερολόγιο/αναζήτηση */
  .rm-card{max-width:380px;background:#f6f6f7}
  .rm-cardrow{display:flex;align-items:center;gap:10px;padding:12px 18px 0;font-size:13px;color:#8a8a8e}
  .rm-cardrow .rm-c{margin-top:0}
  .rm-cardb{padding:8px 18px 16px}

/* «Νέα υπενθύμιση» (dock / κινητό / ημερολόγιο) */
  .rm-newcard{max-width:420px}
  .rm-newt{display:flex;gap:12px;align-items:flex-start;padding:6px 0 2px;border-bottom:1px solid #e6e6ea}
  .rm-newt .rm-c{margin-top:3px;border-style:dashed;pointer-events:none}
  .rm-newt .rm-pt{border-bottom:none;padding-bottom:6px}
  .rm-pr span svg{vertical-align:-2px;margin-right:4px;opacity:.75}
  .rm-cancel{border:none;background:none;color:#8a8a8e;font-weight:600;font-size:13px;padding:6px 8px;border-radius:7px;cursor:pointer}
  .rm-cancel:hover{background:rgba(0,0,0,.06);color:#1d1d1f}

/* ≤900px: πλακίδια πάνω (Σήμερα προεπιλεγμένο), λίστα από κάτω, popover = φύλλο στο κάτω μέρος */
@media (max-width:900px){
  .rm-win{height:90vh;height:90dvh}
  .rm-h .sub{display:none}
  .rm-body{flex-direction:column;overflow-y:auto}
  .rm-side{width:auto;border-right:none;border-bottom:1px solid #dcdce0;padding:12px 14px 14px;gap:10px}
  .rm-sidenew{display:none}
  .rm-tile{padding:10px 12px 9px}
  .rm-tile b{font-size:23px}
  .rm-pane{flex:none;overflow:visible;position:static}
  .rm-bar{padding:8px 10px 0}
  .rm-ttl{padding:0 18px 6px}
  .rm-ttl h1,.rm-ttl span{font-size:26px}
  .rm-sec{padding:14px 18px 4px}
  .rm-row{padding:0 10px 0 18px}
  .rm-row.sel{margin:0 6px;padding-left:12px}
  .rm-newbtn,.rm-new{padding:0 18px}
  .rm-i{display:none}
  .rm-pop{position:fixed;left:10px;right:10px;bottom:10px;top:auto!important;width:auto;z-index:30;padding:16px 18px}
  .rm-pr input{font-size:15px}
}
/* ============================================================
   ΠΛΑΪΝΟ ΜΕΝΟΥ: κάψουλα που γλιστράει στο νέο στοιχείο (module 81).
   Ίδια καμπύλη με το .ctx-thumb των υποτμημάτων (35e). Το στυλ της κάψουλας
   (χρώμα, σκιά, περίγραμμα) έρχεται από το .nav-item.active κάθε θέματος.
   ΜΟΝΟ transitions — καμία animation.
   ============================================================ */
@media (min-width:901px){
  #sidebar{position:relative}
  #sidebar .nav-item{position:relative;z-index:1}
  #sidebar .nav-item.sb-ghost{position:absolute;left:0;top:0;z-index:0;margin:0;padding:0;pointer-events:none;
    transform-origin:0 0;will-change:transform,width,height}
  #sidebar .nav-item.sb-ghost.go{
    transition:transform .36s cubic-bezier(.32,1.28,.5,1),width .36s cubic-bezier(.32,1.28,.5,1),
               height .36s cubic-bezier(.32,1.28,.5,1)}
  /* το νέο στοιχείο: κανονική όψη μέχρι να φτάσει η κάψουλα (ΚΑΝΕΝΑ transition εδώ: το
     #sidebar .nav-item θα νικούσε με το id τα transitions του 41-sidebar-fold/35u) */
  #sidebar .nav-item.sb-pend{background:transparent}
}
body.tr-off #sidebar .nav-item.sb-ghost{display:none}
@media (prefers-reduced-motion:reduce){ #sidebar .nav-item.sb-ghost{display:none} }
/* Πρόχειρα tasks (module 84 · shard 15) — διακεκομμένο/γκρι: «δεν είναι ακόμα δουλειά κανενός» */
.hbtn.dft-new{background:rgba(255,255,255,.14)}
.tk-card.dft-card{background:#fafbfd;border-style:dashed;border-color:#c3ccda;border-width:1.5px 1.5px 1.5px 3px}
.tk-card.dft-card.p-high{border-left-color:#d43a1e}
.tk-card.dft-card.p-med{border-left-color:#e09c1a}
.tk-card.dft-card.p-low{border-left-color:#1e9e5a}
.tk-card.dft-card:hover{border-top-color:#e8a27e;border-right-color:#e8a27e;border-bottom-color:#e8a27e;box-shadow:0 6px 22px rgba(15,23,42,.08)}
.tk-ic.dft-ic{background:linear-gradient(135deg,#64748b,#94a3b8)}
.dft-tag{flex:none;font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 9px;background:#eef1f6;color:#5b6a80;border:1px dashed #b8c3d4}
.dft-desc{font-size:12px;color:var(--muted);margin:-4px 0 10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dft-card .tk-foot{gap:8px;flex-wrap:wrap}
.dft-age{order:3;flex-basis:100%;font-size:10.5px}
.dft-card .tk-del{margin-left:0;flex:none}
.btn.dft-go{flex:none;margin-left:auto;background:#e8622d;color:#fff;border:none}
.btn.dft-go:hover{background:#d1531f}
.dft-ask{flex:1;min-width:0;font-weight:700;color:var(--red)}
.btn.dft-yes{flex:none;background:var(--red);color:#fff;border:none}
.dft-note{display:flex;align-items:center;gap:7px;font-size:12px;color:#5b6a80;background:#f3f5f9;border:1px dashed #c9d2df;border-radius:10px;padding:8px 12px;margin:6px 2px 12px}

/* Παράθυρο νέου/επεξεργασίας πρόχειρου (id #ntWin → χρώματα task από το 32-projects) */
.modal-h.dft-h{background:linear-gradient(115deg,#475569,#e8622d 160%);color:#fff;border-bottom:none}
.dft-h h2{color:#fff}
.dft-h .sub{color:rgba(255,255,255,.82)}
.dft-h .x{color:rgba(255,255,255,.85)}
.dft-seg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.dft-seg button{display:block;text-align:left;padding:10px 12px;border:1.5px solid var(--border);border-radius:11px;background:#fff;
  font:inherit;font-weight:700;font-size:13px;color:var(--text);cursor:pointer}
.dft-seg button svg{vertical-align:-2px;margin-right:3px}
.dft-seg button small{display:block;font-weight:500;font-size:11px;color:var(--muted);margin-top:3px}
.dft-seg button.on{border-color:var(--prj);background:var(--prj-soft);color:var(--prj-d)}

@media (max-width:600px){
  .dft-seg button{padding:10px}
}
/* Avatar → καρτέλα (module 85, shard 32) */
.avatar[data-uid]{cursor:pointer}
.avatar[data-uid="admin"],.avatar.pf-hav{cursor:default}
.avatar.pf-hav.has-ph{cursor:zoom-in}
@media (hover:hover){
  .avatar[data-uid]:not([data-uid="admin"]):not(.pf-hav):hover,
  .avatar.pf-hav.has-ph:hover{box-shadow:0 0 0 2px rgba(59,130,246,.55);transition:box-shadow .12s}
}
/* Προβολή φωτογραφίας: πάνω από την καρτέλα, στο φυσικό της μέγεθος (όριο το .ql-media) */
.avp-ov{padding-top:var(--sat,0px)}
.avp-img{max-height:76vh}
/* =====================================================================
   ΠΑΡΟΥΣΙΑΣΗ (modules 86/87, shard 43)
   Η διαφάνεια μετριέται σε cqw (1cqw = 10 «μονάδες» της γεωμετρίας του 87).
   ΚΑΝΕΝΑ χρώμα μέσα στη διαφάνεια εδώ — μόνο var(--sl-*) από inline style. Πρόθεμα --sl- ΕΠΙΤΗΔΕΣ:
   το darkgen φτιάχνει --x-dkf για κοινά ονόματα (το --tx υπάρχει στις Σημειώσεις) → κείμενο
   ανοιχτό πάνω σε λευκό. Ούτε λέξεις ρόλου (bg/text/muted) στο όνομα.
===================================================================== */
/* aspect-ratio / --slh / --sl-ry έρχονται inline ανά μέγεθος (prsFmtVars). «Λάμψη» = κύκλος 38% του πλάτους, όπως στο canvas του PDF */
.prs-sl{position:relative;display:block;width:100%;aspect-ratio:16/9;container-type:inline-size;overflow:hidden;color:var(--sl-tx);
  background:radial-gradient(38% var(--sl-ry,67.56%) at 85% 12%,var(--sl-bl) 0,transparent 100%),linear-gradient(135deg,var(--sl-g1),var(--sl-g2));
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;line-height:1.2;text-align:left}
.prs-in{position:absolute;left:7cqw;right:7cqw;top:6.4cqw;bottom:6.6cqw;display:flex;flex-direction:column;min-height:0}
.prs-sl :where(h1,h2,h3,p){margin:0;color:inherit}  /* :where → οι κλάσεις παρακάτω νικούν */
.prs-bar{display:block;flex:none;width:6cqw;height:.6cqw;border-radius:.3cqw;background:var(--sl-ac);margin-bottom:1.8cqw}
.prs-t1{font-size:calc(6.4cqw*var(--fs,1));font-weight:800;letter-spacing:-.02em;line-height:1.08}
.prs-sub{font-size:calc(2.6cqw*var(--fs,1));color:var(--sl-mu);margin-top:1.4cqw;line-height:1.35}
.prs-k-title{justify-content:flex-end;padding-bottom:calc(var(--slh,562) * .008cqw)}
.prs-k-section{justify-content:center}
.prs-no{font-size:3.4cqw;font-weight:800;color:var(--sl-ac);margin-bottom:1cqw}
.prs-t2s{font-size:calc(5.6cqw*var(--fs,1));font-weight:800;letter-spacing:-.02em;line-height:1.1}
.prs-t2{flex:none;font-size:calc(4.2cqw*var(--fs,1));font-weight:800;letter-spacing:-.015em;line-height:1.15;margin-bottom:3cqw}
.prs-ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(1.3cqw*var(--fs,1));font-size:calc(2.4cqw*var(--fs,1));line-height:1.32;min-height:0}
.prs-ul li{position:relative;padding-left:3.1cqw}
.prs-ul li:before{content:"";position:absolute;left:.4cqw;top:.5em;width:.95cqw;height:.95cqw;border-radius:50%;background:var(--sl-ac)}
.prs-k-two .prs-t2{font-size:calc(3.8cqw*var(--fs,1));margin-bottom:2.4cqw}
.prs-cols{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3cqw;align-content:start}
.prs-sparse{justify-content:center}
.prs-tall .prs-cols{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:minmax(min-content,auto);gap:2.4cqw}
.prs-pn{background:var(--sl-pn);border-radius:1.6cqw;padding:2.2cqw 2.4cqw;overflow:hidden;min-width:0}
.prs-h3{font-size:calc(2.4cqw*var(--fs,1));font-weight:800;color:var(--sl-ac);margin-bottom:1.6cqw}
.prs-pn .prs-ul{font-size:calc(2cqw*var(--fs,1))}
.prs-k-big{justify-content:center;align-items:center;text-align:center}
.prs-big{font-size:calc(var(--bs,110)*.1cqw*var(--fs,1));font-weight:800;letter-spacing:-.03em;line-height:1;max-width:100%}
.prs-cap{font-size:calc(2.6cqw*var(--fs,1));color:var(--sl-mu);max-width:80%;margin-top:3.4cqw;line-height:1.35}
.prs-k-big .prs-cap:before{content:"";display:block;width:6cqw;height:.6cqw;border-radius:.3cqw;background:var(--sl-ac);margin:0 auto 2.4cqw}
.prs-k-end{justify-content:center;align-items:center;text-align:center}
.prs-k-end .prs-t1{font-size:calc(6cqw*var(--fs,1))}
.prs-ft{position:absolute;left:7cqw;right:7cqw;bottom:2.2cqw;display:flex;justify-content:space-between;gap:2cqw;font-size:1.3cqw;color:var(--sl-mu)}
.prs-ft span:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* επεξεργασία επί τόπου */
.prs-sl [contenteditable]{outline:none;border-radius:.6cqw;cursor:text;min-width:4cqw}
.prs-stage .prs-sl [contenteditable]:hover{outline:.18cqw dashed var(--sl-mu);outline-offset:.5cqw}
.prs-stage .prs-sl [contenteditable]:focus{outline:.22cqw solid var(--sl-ac);outline-offset:.5cqw}
.prs-sl [contenteditable]:empty:before{content:attr(data-ph);opacity:.45}
.prs-sl .prs-ul[contenteditable] li:only-child:empty:before{content:"Κουκκίδες — Enter για νέα";opacity:.45}

/* ---------- Παράθυρο ---------- */
/* ύψος: να μην πέφτει πάνω στο dock (~90px κάτω) */
.modal.prs-modal{width:min(1180px,96vw);max-width:none;height:min(780px,calc(100vh / var(--zf,1) - 180px));max-height:none;position:relative}
.prs-h{align-items:center}
.prs-hm{flex:1;min-width:0}
.prs-tt{display:block;width:100%;border:none;background:transparent;font-size:16px;font-weight:700;color:var(--text);padding:2px 0;border-bottom:1.5px solid transparent;border-radius:0}
.prs-tt:hover{border-bottom-color:var(--border)}
.prs-tt:focus{outline:none;border-bottom-color:#7c3aed}
.prs-lab{flex:none;font-size:10.5px;font-weight:700;color:#6d28d9;background:#ede9fe;border-radius:999px;padding:3px 9px;margin-left:auto}
.prs-modal .modal-b{flex:1 1 auto;min-height:0}
/* βήμα 1 */
.prs-setup{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start}
.prs-col{display:flex;flex-direction:column;min-width:0;min-height:0}
.prs-col>label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin:0 0 7px}
.prs-side>label:not(:first-child){margin-top:18px}
#prsText{width:100%;min-height:420px;resize:vertical;border:1px solid var(--border);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.6;background:var(--card);color:var(--text)}
#prsText:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.14)}
.prs-cnt{font-size:11px;color:var(--muted);text-align:right;margin-top:5px}
.prs-cnt.over{color:var(--red);font-weight:700}
.prs-tpls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.prs-tc{display:flex;flex-direction:column;gap:6px;border:1.5px solid var(--border);border-radius:12px;padding:6px;background:var(--card);text-align:left;cursor:pointer}
.prs-tc:hover{border-color:#c4b5fd}
.prs-tc.on{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.prs-tcv{position:relative;display:block;aspect-ratio:16/9;border-radius:8px;overflow:hidden;color:var(--sl-tx);
  background:radial-gradient(38% 67.56% at 85% 12%,var(--sl-bl) 0,transparent 100%),linear-gradient(135deg,var(--sl-g1),var(--sl-g2));box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}
.prs-tcv b{position:absolute;left:10%;top:20%;font-size:19px;font-weight:800}
.prs-tcv i{position:absolute;left:10%;top:62%;width:22%;height:6%;border-radius:3px;background:var(--sl-ac)}
.prs-tcn{font-size:12px;font-weight:600;color:var(--text);padding:0 3px 2px}
.prs-fmts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.prs-fc{display:flex;flex-direction:column;align-items:center;gap:6px;padding:9px 6px;border:1.5px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);font-size:11.5px;font-weight:600;cursor:pointer}
.prs-fc:hover{border-color:#c4b5fd}
.prs-fcb{display:grid;place-items:center;width:40px;height:28px}
.prs-fcb i{display:block;border:2px solid currentColor;border-radius:3px;opacity:.45}
.prs-fc.on{border-color:#7c3aed;color:#6d28d9;background:#f5f3ff}
.prs-fc.on .prs-fcb i{opacity:1}
.prs-fsel{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}
.prs-fsel select{padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:12.5px}
.prs-modes{display:flex;flex-direction:column;gap:8px}
.prs-mode{display:flex;gap:10px;align-items:flex-start;text-align:left;border:1.5px solid var(--border);border-radius:12px;padding:11px 12px;background:var(--card);color:var(--text);cursor:pointer}
.prs-mode:hover{border-color:#c4b5fd}
.prs-mode.on{border-color:#7c3aed;background:#f5f3ff}
.prs-mode b{display:block;font-size:13px}
.prs-mode small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.prs-rad{flex:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--border);margin-top:2px;background:var(--card)}
.prs-mode.on .prs-rad{border:5px solid #7c3aed}
.prs-side select{width:100%;padding:9px 10px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:13px}
.prs-err{margin-top:14px;background:#fdecec;color:#b42318;border-radius:10px;padding:10px 12px;font-size:12.5px;font-weight:600;line-height:1.45}
.prs-busy{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(255,255,255,.88);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);color:var(--text);text-align:center;padding:20px}
.prs-busy b{font-size:15px}
.prs-busy small{font-size:12px;color:var(--muted)}
.prs-spin{width:34px;height:34px;border-radius:50%;border:3px solid #ddd6fe;border-top-color:#7c3aed;animation:prsSpin .8s linear infinite}
.prs-spin.sm{display:inline-block;width:12px;height:12px;border-width:2px;vertical-align:-2px}
@keyframes prsSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.prs-spin{animation-duration:2.4s}}
/* βήμα 2 */
.prs-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 20px;border-bottom:1px solid var(--border)}
.prs-tools .spacer{flex:1}
.prs-dots{display:flex;gap:7px;margin-right:6px}
.prs-dot{width:24px;height:24px;padding:0;border-radius:50%;border:2px solid var(--card);box-shadow:0 0 0 1px var(--border);background:linear-gradient(135deg,var(--sl-g1),var(--sl-g2));cursor:pointer}
.prs-dot.on{box-shadow:0 0 0 2.5px #7c3aed}
.modal-b.prs-ed{display:grid;grid-template-columns:200px minmax(0,1fr);padding:0;overflow:hidden}
.prs-rail{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:14px 12px;border-right:1px solid var(--border);background:var(--bg);min-height:0}
.prs-th{display:flex;align-items:flex-start;gap:6px;flex:none;cursor:pointer}
.prs-thn{flex:none;width:16px;padding-top:2px;text-align:right;font-size:11px;font-weight:700;color:var(--muted)}
.prs-thv{flex:1;min-width:0;border-radius:7px;overflow:hidden;box-shadow:0 0 0 1px var(--border)}
.prs-th.on .prs-thv{box-shadow:0 0 0 2.5px #7c3aed}
.prs-th.on .prs-thn{color:#7c3aed}
.prs-th .prs-sl{pointer-events:none}
.prs-add{flex:none;margin-left:22px;display:flex;align-items:center;justify-content:center;gap:5px;padding:9px;border:1.5px dashed var(--border);border-radius:8px;background:transparent;font-size:12px;color:var(--muted)}
.prs-add:hover{border-color:#7c3aed;color:#7c3aed}
.prs-main{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;overflow:auto;padding:18px 22px;background:var(--bg)}
/* η σκηνή χωράει ΚΑΙ σε ύψος: πλάτος = διαθέσιμο ύψος × αναλογία (--ar στο #prsWin) */
.prs-stage{--avh:calc(min(780px,calc(100vh / var(--zf,1) - 180px)) - 250px);width:min(100%,calc(var(--avh) * var(--ar,1.7778)));margin:0 auto;flex:none}
.prs-ctl{width:100%;max-width:820px;margin:0 auto}
.prs-stage .prs-sl{border-radius:12px;box-shadow:0 10px 30px rgba(15,23,42,.18)}
.prs-ctl{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.prs-lay{font-size:12px;font-weight:600;color:var(--muted)}
.prs-lay select{margin-left:6px;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:12.5px}
.prs-nav{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--muted)}
.prs-acts{display:flex;gap:6px}
.prs-ib{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text)}
.prs-ib:hover:not(:disabled){border-color:#7c3aed;color:#7c3aed}
.prs-ib:disabled{opacity:.4;cursor:default}
.prs-del:hover:not(:disabled){border-color:var(--red);color:var(--red)}
.prs-undo{flex-basis:100%;justify-content:center}
/* ερώτηση κλεισίματος — μέσα στο ίδιο παράθυρο */
.prs-ask{position:absolute;inset:0;z-index:6;display:grid;place-items:center;padding:16px;background:rgba(15,23,42,.45)}
.prs-askc{max-width:430px;background:var(--card);color:var(--text);border-radius:14px;padding:20px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.prs-askc b{display:block;font-size:15px}
.prs-askc small{display:block;font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.5}
.prs-askb{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}
/* Έγγραφα: εικονίδιο παρουσίασης */
.fd-ic.doc.prs{background:#ede9fe;color:#7c3aed}

/* ---------- Πλήρης οθόνη ---------- */
.prs-show{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#000;cursor:pointer}
.prs-show-st{width:min(calc(100vw / var(--zf,1)),calc(100vh / var(--zf,1) * var(--ar,1.7778)))}
.prs-show-ui{position:fixed;bottom:18px;left:50%;translate:-50% 0;display:flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;opacity:.2;transition:opacity .2s;cursor:default}
.prs-show:hover .prs-show-ui,.prs-show-ui:focus-within{opacity:1}
.prs-show-ui button{display:grid;place-items:center;width:34px;height:34px;border:none;border-radius:50%;background:transparent;color:#fff}
.prs-show-ui button:hover{background:rgba(255,255,255,.15)}
.prs-show-ui span{font-size:12px;font-weight:600;padding:0 4px;min-width:52px;text-align:center}
@media (hover:none){.prs-show-ui{opacity:.85}}

/* ---------- God Mode → Πειραματικά ---------- */
.prs-gp{font-size:12.5px;color:var(--muted);line-height:1.55;margin:10px 0 12px}
.prs-gbar{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.prs-gbar input{flex:1;min-width:0;padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text)}
.prs-gn{font-size:12px;font-weight:700;color:#6d28d9;white-space:nowrap}
.prs-glist{max-height:420px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;padding:2px 12px}
.prs-gr{padding:8px 0;justify-content:space-between}
.prs-glist .prs-gr:first-child{border-top:none}
.prs-gw{flex:1;display:flex;align-items:center;gap:10px;min-width:0}
.prs-gw span{min-width:0}
.prs-gw b{display:block;font-size:13px}
.prs-gw small{display:block;font-size:11px;color:var(--muted)}
.prs-gf{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}

/* ---------- Κινητό / στενό ---------- */
@media (max-width:760px){
  .modal.prs-modal{width:100%;height:90vh;height:90dvh}
  .prs-setup{grid-template-columns:minmax(0,1fr);gap:16px}
  #prsText{min-height:220px}
  .prs-tools{padding:8px 12px;gap:6px}
  .prs-tools .spacer{display:none}
  .modal-b.prs-ed{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}
  .prs-rail{order:2;flex-direction:row;overflow-x:auto;overflow-y:hidden;border-right:none;border-top:1px solid var(--border);padding:10px}
  .prs-th{width:auto}
  .prs-thv{flex:none;width:calc(78px * var(--ar,1.7778))}
  .prs-add{width:104px;margin-left:0}
  .prs-main{padding:12px}
  .prs-stage{--avh:calc(90vh - 360px)}
  .prs-fmts{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ---------- Διακοσμητικά σχήματα (87: prsDecoSVG) — κάτω από το κείμενο ---------- */
.prs-deco{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
/* κενός τίτλος (π.χ. «δύο στήλες» από εξισορρόπηση) δεν πιάνει χώρο εκτός επεξεργασίας */
.prs-sl:not(.prs-edit) .prs-t2:empty,.prs-sl:not(.prs-edit) .prs-h3:empty{display:none}
.prs-decos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.prs-dc{display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 12px;border:1.5px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);cursor:pointer}
.prs-dc b{font-size:12.5px}
.prs-dc small{font-size:11px;color:var(--muted)}
.prs-dc:hover{border-color:#c4b5fd}
.prs-dc.on{border-color:#7c3aed;background:#f5f3ff}
.prs-dc.on b{color:#6d28d9}
.prs-tg{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer}
.prs-tg.on{border-color:#7c3aed;color:#6d28d9;background:#f5f3ff}
/* πρόοδος εργασίας στο παρασκήνιο */
.prs-pbar{width:min(320px,80%);height:8px;border-radius:99px;background:#ede9fe;overflow:hidden;margin-top:4px}
.prs-pbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#a855f7,#6d28d9);transition:width .4s ease}
.prs-bgn{max-width:360px;line-height:1.5;margin-top:6px}
.notif .ic.pres{background:#ede9fe;color:#7c3aed}
/* ---------- 88–90 · BRAND BOOK (shard 44) ----------
   Χρώμα brand = --bbp / --bbd / --bbs (μοναδικό πρόθεμα: το darkgen ΔΕΝ τα αλλάζει — shard 40).
   Ίδιο σώμα για σελίδα OMNIK (.bb-staff) και εξωτερικό λογαριασμό (#bbExt .bbx). */
.bb-staff{margin:-4px 0 0}
.bb-loading,.bb-err,.bb-none,.bb-gone{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:var(--muted);font-size:13px;flex-wrap:wrap}
.bb-none,.bb-gone{flex-direction:column;text-align:center}
.bb-none b,.bb-gone b{font-size:17px;color:var(--text)}
.bb-gone{min-height:100vh;background:var(--bg)}
.bb-spin{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--border);border-top-color:#e8622d;animation:bbSpin .8s linear infinite}
@keyframes bbSpin{to{transform:rotate(360deg)}}
.bb-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:60px 20px}
.bb-empty b{font-size:15px;color:var(--text)}

/* κουμπιά */
.bb-btn{display:inline-flex;align-items:center;gap:7px;font-weight:650;font-size:13px;border-radius:11px;padding:9px 14px;border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;white-space:nowrap;text-decoration:none;font-family:inherit}
.bb-btn:hover{border-color:#c3cbd8}
.bb-btn.sm{padding:6px 11px;font-size:12px;border-radius:9px}
.bb-btn.ghost{background:transparent}
.bb-btn.pr{background:var(--bbp,#e8622d);border-color:var(--bbp,#e8622d);color:#fff;box-shadow:0 8px 18px -8px var(--bbp,#e8622d)}
.bb-btn.wh{background:#fff;border-color:#fff;color:var(--bbd,#15243b)}
.bb-btn.gl{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff;backdrop-filter:blur(6px)}
.bb-btn.gl:hover{background:rgba(255,255,255,.22)}
.bb-btn em{font-style:normal;opacity:.75;font-weight:600}
.bb-chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:650;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.26);color:#fff}

/* ---------- HUB ---------- */
.bb-hub{padding:6px 0 20px}
.bb-hh h1{font-size:38px;font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--text)}
.bb-hh h1 span{background:linear-gradient(90deg,#e8622d,#dc8033);-webkit-background-clip:text;background-clip:text;color:transparent}
.bb-hh p{font-size:14.5px;color:var(--muted);margin-top:8px}
/* auto-fit (όχι auto-fill): οι κάρτες μοιράζονται ΟΛΟ το πλάτος — 1 brand = όσο το «What's new», 2 = μισό-μισό, 3 = τρίτα */
.bb-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin-top:24px}
.bb-card{position:relative;overflow:hidden;border:0;border-radius:22px;min-height:330px;padding:0;color:#fff;display:flex;flex-direction:column;text-align:left;cursor:pointer;font-family:inherit;
  background:radial-gradient(120% 120% at 0% 0%,color-mix(in srgb,var(--bbp) 82%,#fff) 0%,var(--bbp) 40%,var(--bbd) 100%);
  box-shadow:0 22px 46px -24px rgba(21,36,59,.6);transition:transform .18s,box-shadow .18s}
.bb-card:hover{transform:translateY(-3px);box-shadow:0 30px 56px -24px rgba(21,36,59,.7)}
.bb-card::before,.bb-hero::before,.bb-pl-h::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px);pointer-events:none}
.bb-card-top{position:relative;display:flex;justify-content:space-between;padding:20px 20px 0}
.bb-card-logo{position:relative;display:flex;align-items:center;min-height:96px;padding:24px 22px 4px}
.bb-card-logo img{max-width:82%;max-height:70px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.25))}
.bb-card-logo b{font-size:30px;font-weight:900;letter-spacing:.02em}
.bb-card-tag{position:relative;padding:0 22px;font-size:13px;color:rgba(255,255,255,.82);font-weight:600}
.bb-card-badge{position:absolute;right:18px;bottom:96px;width:92px;border-radius:8px;background:#fff;padding:4px;box-shadow:0 10px 24px rgba(0,0,0,.3);transform:rotate(-4deg)}
.bb-card-bot{position:relative;margin-top:auto;display:flex;align-items:center;gap:12px;padding:16px 18px;background:rgba(10,14,24,.28);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.14)}
.bb-card-st{display:flex;gap:18px;flex:1}
.bb-card-st span{display:flex;flex-direction:column;font-size:10.5px;font-weight:650;letter-spacing:.06em;opacity:.8}
.bb-card-st b{font-size:18px;font-weight:800;letter-spacing:0;opacity:1}
.bb-go{width:42px;height:42px;border-radius:13px;background:#fff;color:var(--bbp);display:grid;place-items:center;flex:none}

/* feed */
.bb-feed{margin-top:22px;overflow:hidden;padding:0}
.bb-feed-h{padding:14px 18px;border-bottom:1px solid var(--border);font-size:14px}
.bb-feed-it{display:flex;align-items:center;gap:13px;width:100%;padding:12px 18px;border:0;border-top:1px solid var(--border);background:transparent;text-align:left;cursor:pointer;font-family:inherit;color:var(--text)}
.bb-feed-it:first-of-type{border-top:0}
.bb-feed-it:hover{background:#f8fafc}
.bb-feed-it>span:nth-child(2){flex:1;min-width:0}
.bb-feed-it b{display:block;font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-feed-it span span{font-size:11.5px;color:var(--muted)}
.bb-feed-ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none;background:var(--bbs);color:var(--bbp)}

/* ---------- BRAND: πλαϊνή πλοήγηση + σελίδα ---------- */
.bb-wrap{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}
.bb-side{position:sticky;top:8px;background:linear-gradient(180deg,#15243b,#182a47);border-radius:18px;padding:12px;color:#cfd8e6;max-height:calc(100vh / var(--zf,1) - 24px);overflow:auto}
.bb-sw{position:relative;display:flex;align-items:center;gap:10px;padding:9px;border-radius:13px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);margin-bottom:8px}
.bb-sw-back{border:0;background:rgba(255,255,255,.08);color:#cfd8e6;border-radius:8px;width:26px;height:26px;display:grid;place-items:center;cursor:pointer;flex:none;position:relative;z-index:2}
.bb-sw-lg{width:40px;height:40px;border-radius:10px;background:var(--bbp);display:grid;place-items:center;overflow:hidden;flex:none;box-shadow:0 4px 12px rgba(0,0,0,.25);color:#fff}
.bb-sw-lg img{width:34px;max-height:30px;object-fit:contain}
.bb-sw-t{flex:1;min-width:0}
.bb-sw-t b{display:block;color:#fff;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-sw-t span{font-size:11px;color:#8ea0bb}
.bb-sw>.i{color:#8ea0bb;flex:none}
.bb-sw-sel{position:absolute;inset:0 0 0 42px;opacity:0;cursor:pointer;width:calc(100% - 42px)}
.bb-g{font-size:10px;letter-spacing:.14em;font-weight:700;color:#6f819e;margin:12px 9px 5px}
.bb-ni{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#cfd8e6;font-size:13px;font-weight:500;cursor:pointer;text-align:left;font-family:inherit}
.bb-ni:hover{background:rgba(255,255,255,.06)}
.bb-ni .i{color:#8ea0bb;flex:none}
.bb-ni span{flex:1;min-width:0}
.bb-ni em{font-style:normal;font-size:10.5px;font-weight:700;background:rgba(255,255,255,.1);padding:1px 7px;border-radius:999px}
.bb-ni.on{background:linear-gradient(135deg,var(--bbd),var(--bbp));color:#fff;font-weight:650;box-shadow:0 6px 16px -6px var(--bbp)}
.bb-ni.on .i{color:#fff}
.bb-main{min-width:0}
.bb-staff .bb-side{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text)}
.bb-staff .bb-sw{background:#f6f8fb;border-color:var(--border)}
.bb-staff .bb-sw-t b{color:var(--text)}
.bb-staff .bb-sw-t span,.bb-staff .bb-sw>.i,.bb-staff .bb-g{color:var(--muted)}
.bb-staff .bb-sw-back{background:#e9edf3;color:#475569}
.bb-staff .bb-ni{color:#334155}
.bb-staff .bb-ni:hover{background:#f4f6fa}
.bb-staff .bb-ni .i{color:#94a3b8}
.bb-staff .bb-ni em{background:#eef1f6;color:#475569}
.bb-staff .bb-ni.on{color:#fff}
.bb-staff .bb-ni.on .i{color:#fff}
.bb-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.bb-crumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-weight:500;flex:1;min-width:0}
.bb-crumb a{cursor:pointer;color:var(--muted)}
.bb-crumb a:hover{color:var(--text)}
.bb-crumb b{color:var(--text)}
.bb-top-act{display:flex;gap:7px}
.bb-page{padding-bottom:30px}

/* hero */
.bb-hero{position:relative;overflow:hidden;border-radius:22px;min-height:340px;padding:36px 40px;color:#fff;display:flex;align-items:center;
  background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--bbp) 82%,#fff) 0%,var(--bbp) 38%,var(--bbd) 100%)}
.bb-hero-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32;mix-blend-mode:luminosity;pointer-events:none}
.bb-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--bbd) 70%,transparent),transparent 75%);pointer-events:none}
.bb-hero-c{position:relative;z-index:1;max-width:620px}
.bb-hero-eyb{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.bb-hero-logo{display:block;max-width:min(420px,100%);max-height:110px;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.28));margin-bottom:14px}
.bb-hero-name{font-size:44px;font-weight:900;letter-spacing:-.02em;margin-bottom:10px;color:#fff}
.bb-hero-tag{font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.9);margin-bottom:10px}
.bb-hero p{font-size:15px;line-height:1.6;color:rgba(255,255,255,.88);margin-bottom:22px}
.bb-hero-act{display:flex;gap:9px;flex-wrap:wrap}
.bb-hero-badge{position:absolute;right:36px;top:34px;z-index:1;width:120px;border-radius:12px;background:#fff;padding:5px;box-shadow:0 14px 30px rgba(0,0,0,.35);transform:rotate(-5deg)}

/* headings */
.bb-dh{padding:4px 0 2px}
.bb-k{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:750;letter-spacing:.14em;color:var(--bbp)}
.bb-dh h1{font-size:34px;font-weight:800;letter-spacing:-.025em;margin:6px 0 8px;color:var(--text)}
.bb-dh p{font-size:15px;line-height:1.6;color:#475569;max-width:760px}
.bb-sec{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.12em;font-weight:750;color:var(--muted);text-transform:uppercase;margin:26px 0 12px}
.bb-sec span{flex:1;height:1px;background:var(--border)}
.bb-soon{display:flex;flex-direction:column;align-items:center;gap:6px;padding:42px 20px;margin-top:18px;border:1.5px dashed var(--border);border-radius:16px;color:var(--muted);font-size:13px;text-align:center}
.bb-soon b{color:var(--text);font-size:15px}

/* blocks */
.bb-text{padding:20px 22px;font-size:14px;line-height:1.7;color:#334155}
.bb-ul{padding:16px 20px 16px 38px;font-size:14px;line-height:1.75;color:#334155}
.bb-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.bb-stats .card{padding:18px 20px}
.bb-stats b{display:block;font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--bbp)}
.bb-stats span{font-size:12.5px;color:var(--muted);font-weight:600}
.bb-traits{display:flex;flex-wrap:wrap;gap:9px}
.bb-traits span{font-size:13.5px;font-weight:650;padding:9px 14px;border-radius:11px;background:#fff;border:1px solid var(--border);color:var(--text)}
.bb-traits b{color:var(--bbp);margin-right:6px}
.bb-dd{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.bb-dd .card{display:flex;align-items:center;gap:10px;padding:14px 16px;font-size:13.5px;font-weight:600;color:var(--text)}
.bb-dd-x{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none}
.bb-dd.do .bb-dd-x{background:#dcfce7;color:#15803d}
.bb-dd.dont .bb-dd-x{background:#fee2e2;color:#b91c1c}
.bb-colors{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.bb-sw-c{overflow:hidden;padding:0}
.bb-sq{height:150px;padding:16px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:var(--bbsw)}
.bb-sq.lt{color:#1c2536;border-bottom:1px solid var(--border)}
.bb-sq-n{font-size:19px;font-weight:800}
.bb-use{align-self:flex-start;font-size:11.5px;font-weight:650;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.2)}
.bb-sq.lt .bb-use{background:rgba(0,0,0,.06)}
.bb-vals{padding:6px}
.bb-val{display:flex;align-items:center;width:100%;padding:7px 10px;border:0;border-radius:9px;background:transparent;cursor:pointer;font-family:inherit;text-align:left;color:var(--text)}
.bb-val:hover{background:#f4f6fa}
.bb-val span{width:74px;color:var(--muted);font-weight:700;font-size:10.5px;letter-spacing:.06em}
.bb-val b{flex:1;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-val .i{color:#9aa3b0;flex:none}
.bb-val.cp{background:#ecfdf3}
.bb-val.cp .i{color:#16a34a}
.bb-fonts{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.bb-font{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:18px 20px}
.bb-font-aa{font-size:46px;font-weight:800;letter-spacing:-.03em;color:var(--bbp);line-height:1}
.bb-font b{display:block;font-size:16px;color:var(--text)}
.bb-font span{font-size:12.5px;color:var(--muted)}
.bb-font em{display:block;font-style:normal;font-size:11.5px;color:var(--muted);margin-top:2px}
.bb-font p{grid-column:1/-1;font-size:20px;font-weight:700;color:var(--text);border-top:1px solid var(--border);padding-top:12px}

/* chapters */
.bb-chaps{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.bb-chap{display:flex;flex-direction:column;padding:0;border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden;cursor:pointer;text-align:left;font-family:inherit;box-shadow:var(--shadow);transition:transform .14s,box-shadow .14s}
.bb-chap:hover{transform:translateY(-2px);box-shadow:0 10px 26px -12px rgba(21,36,59,.3)}
.bb-chap-pv{height:118px;display:grid;place-items:center;background:var(--bbs);border-bottom:1px solid var(--border);overflow:hidden}
.bb-chap-pv img{max-width:80%;max-height:84px;object-fit:contain}
.bb-chap-ic{color:var(--bbp);opacity:.75}
.bb-chap-img{display:grid;place-items:center;width:100%;height:100%}
.bb-chap-img.bg-brand{background:radial-gradient(120% 140% at 0% 0%,var(--bbp),var(--bbd))}
.bb-chap-img.bg-dark{background:#111}
.bb-chap-img img{max-width:80%;max-height:84px;object-fit:contain}
.bb-chap-b{padding:12px 14px 14px}
.bb-chap-b b{display:block;font-size:14px;color:var(--text)}
.bb-chap-b b em{font-style:normal;font-size:11px;color:var(--muted);margin-right:7px}
.bb-chap-b span{display:block;font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-sw3{display:flex;border-radius:10px;overflow:hidden;box-shadow:0 6px 14px rgba(0,0,0,.12)}
.bb-sw3 i{width:36px;height:56px;display:block;background:var(--bbsw)}
.bb-aa{font-size:46px;font-weight:800;letter-spacing:-.03em;color:var(--text)}
.bb-aa small{font-size:16px;font-weight:500;color:var(--muted);margin-left:6px;letter-spacing:0}

/* assets */
.bb-agrid,.bb-vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.bb-vgrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.bb-as{overflow:hidden;padding:0;display:flex;flex-direction:column}
.bb-as-th{position:relative;height:150px;display:grid;place-items:center;border:0;background:#f1f4f9;cursor:pointer;overflow:hidden;padding:0;border-bottom:1px solid var(--border)}
.bb-vgrid .bb-as-th{height:auto;aspect-ratio:16/9}
.bb-as-th img{max-width:78%;max-height:76%;object-fit:contain}
.bb-as.vid .bb-as-th img{max-width:none;max-height:none;width:100%;height:100%;object-fit:cover}
.bb-as-th.bg-dark{background:#111}
.bb-as-th.bg-brand{background:radial-gradient(120% 140% at 0% 0%,var(--bbp),var(--bbd))}
.bb-as-th.bg-light{background:#fff}
.bb-as-ic{color:#9aa3b0}
.bb-ty{position:absolute;right:9px;bottom:9px;font-size:10px;font-weight:750;padding:3px 7px;border-radius:6px;background:rgba(15,23,42,.78);color:#fff;letter-spacing:.04em}
.bb-play{position:absolute;inset:0;margin:auto;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);color:var(--bbp);box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .15s}
.bb-play .i{margin-left:3px}
.bb-as-th:hover .bb-play{transform:scale(1.08)}
.bb-as-in{display:flex;align-items:center;gap:8px;padding:11px 12px}
.bb-as-in>div{flex:1;min-width:0}
.bb-as-in b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.bb-as-in span{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-dlb{position:relative;width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;color:#475569;cursor:pointer;flex:none;overflow:hidden}
.bb-dlb:hover{border-color:var(--bbp);color:var(--bbp)}
.bb-dlb.busy::after,.bb-btn.busy::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:var(--p,0%);background:var(--bbp,#e8622d);transition:width .2s}
.bb-btn.busy{position:relative;overflow:hidden}
.bb-libbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0 14px}
.bb-srch{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:11px;padding:8px 12px;color:#9aa3b0;min-width:240px}
.bb-srch input{border:0;outline:0;background:transparent;font-size:13px;flex:1;color:var(--text);font-family:inherit}
.bb-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:4px;overflow-x:auto;max-width:100%}
.bb-tabs button{border:0;background:transparent;font-size:12.5px;font-weight:650;padding:6px 11px;border-radius:9px;color:#475569;cursor:pointer;white-space:nowrap;font-family:inherit}
.bb-tabs button.on{background:#15243b;color:#fff}
.bb-tabs em{font-style:normal;font-size:10.5px;margin-left:5px;opacity:.65}

/* ---------- player (ΕΝΑ παράθυρο) ---------- */
.bb-ov .bb-modal.bb-plm{padding:0;overflow:hidden;background:#0b0f19;border:0}
.bb-pl-h{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;color:#fff;background:linear-gradient(135deg,#15243b,#1d3050)}
.bb-pl-h>div{flex:1;min-width:0;position:relative}
.bb-pl-h b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-pl-h span{font-size:12px;color:#8ea0bb}
.bb-pl-h .bb-btn{position:relative}
.bb-x{position:relative;width:36px;height:36px;border-radius:10px;border:0;background:rgba(255,255,255,.1);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.bb-pl,.bb-pl-yt{position:relative;background:#000;aspect-ratio:16/9;width:100%;max-height:calc(100vh / var(--zf,1) - 140px)}
.bb-pl-yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.bb-pl{outline:none}
.bb-pl video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.bb-pl-big{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;
  background:var(--bbp,#e8622d);color:#fff;box-shadow:0 14px 40px rgba(0,0,0,.5);transition:opacity .2s,transform .2s}
.bb-pl-big .i{margin-left:5px}
.bb-pl.playing .bb-pl-big{opacity:0;transform:scale(.8);pointer-events:none}
.bb-pl-c{position:absolute;left:12px;right:12px;bottom:12px;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:14px;color:#fff;
  background:rgba(10,14,24,.62);backdrop-filter:blur(12px);transition:opacity .25s}
.bb-pl.playing:not(.hot) .bb-pl-c{opacity:0}
.bb-pl-c button{border:0;background:transparent;color:#fff;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;cursor:pointer;flex:none;font-family:inherit}
.bb-pl-c button:hover{background:rgba(255,255,255,.12)}
.bb-pl-rate{font-size:12px;font-weight:750}
.bb-pl-t{font-size:12px;font-variant-numeric:tabular-nums;color:#cfd8e6;flex:none;min-width:34px;text-align:center}
.bb-pl-bar{position:relative;flex:1;height:22px;cursor:pointer;touch-action:none}
.bb-pl-bar::before,.bb-pl-bar i{content:"";position:absolute;left:0;top:9px;height:4px;border-radius:4px}
.bb-pl-bar::before{right:0;background:rgba(255,255,255,.2)}
#bbPlBuf{background:rgba(255,255,255,.35);width:0}
#bbPlFill{background:var(--bbp,#e8622d);width:0}
.bb-pl-bar b{position:absolute;top:5px;left:0;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.bb-pl:fullscreen{aspect-ratio:auto;max-height:none}

/* ---------- επεξεργαστής (89) ---------- */
.bbe label{display:block;font-size:12px;font-weight:700;color:#334155;margin:12px 0 5px}
.bbe label .opt{font-weight:500;color:var(--muted);margin-left:4px}
.bbe input,.bbe textarea,.bbe select{width:100%;border:1px solid #d5dce7;border-radius:9px;padding:9px 11px;font-size:13px;font-family:inherit;background:#fff;color:var(--text)}
.bbe textarea{resize:vertical;line-height:1.5}
.bbe-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bbe-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.bbe-col{display:flex;gap:6px}
.bbe-col input[type=color],.bbe-row input[type=color]{width:38px;min-width:38px;padding:2px;height:36px;cursor:pointer}
.bbe-block{border:1px solid var(--border);border-radius:12px;padding:12px;margin-top:12px;background:#fafbfd;display:flex;flex-direction:column;gap:8px}
.bbe-bh{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}
.bbe-tools{display:flex;gap:4px}
.bbe-tools button,.bbe-row>button{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;cursor:pointer;color:#475569;flex:none}
.bbe-tools button:disabled{opacity:.35;cursor:default}
.bbe-tools .del:hover,.bbe-row>button:hover{color:#b91c1c;border-color:#fecaca}
.bbe-rows{display:flex;flex-direction:column;gap:6px}
.bbe-row{display:flex;gap:6px;align-items:center}
.bbe-row input{min-width:0;padding:7px 8px;font-size:12px}
.bbe-add{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--muted)}
.bbe-hint{font-size:12px;color:var(--muted);margin-top:5px;min-height:16px}
.bbe-hint .ok{color:#15803d;font-weight:700}
.bbe-hint .bad{color:#b91c1c;font-weight:700}
.bbe-hint .warn{color:#b45309;font-weight:700}
.bb-modal:not(.bb-plm) .modal-b{max-height:min(70vh,calc(100vh / var(--zf,1) - 260px));overflow-y:auto}
.bbe-err{color:#b91c1c;font-size:12.5px;font-weight:600;padding:0 20px;min-height:0}
.bbe-err:not(:empty){padding:8px 20px 0}
.bbe-delb{color:#b91c1c;margin-right:auto}

/* ---------- πρόσβαση (90) — Ρυθμίσεις ---------- */
.bba-tabs{display:flex;gap:6px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.bba-tabs>button:not(.bb-btn){border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 13px;font-size:13px;font-weight:650;display:flex;align-items:center;gap:7px;cursor:pointer;color:#475569;font-family:inherit}
.bba-tabs>button.on{background:#15243b;border-color:#15243b;color:#fff}
.bba-note{display:flex;gap:9px;align-items:flex-start;background:#f0f6ff;border:1px solid #d6e4fb;color:#1e3a8a;border-radius:12px;padding:11px 14px;font-size:12.5px;line-height:1.55;margin-bottom:14px}
.bba-note.sm{margin:10px 0 0;font-size:12px;padding:8px 11px}
.bba-row{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--border)}
.bba-p{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.bba-p b{display:block;font-size:13.5px}
.bba-p span span{font-size:11.5px;color:var(--muted)}
.bba-seg{display:flex;background:#f1f4f9;border-radius:10px;padding:3px;gap:2px;flex:none}
.bba-seg button{border:0;background:transparent;font-size:12px;font-weight:650;padding:6px 11px;border-radius:8px;color:#64748b;cursor:pointer;font-family:inherit}
.bba-seg button.on{background:#fff;color:#15243b;box-shadow:0 1px 3px rgba(21,36,59,.15)}
.bba-seg button.on.read{color:#1d4ed8}
.bba-seg button.on.full{color:#15803d}
.bba-q{margin-left:auto;border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:12px;outline:none;width:180px}
.bba-list{max-height:460px;overflow-y:auto}
.bba-empty{padding:22px 18px;text-align:center;color:var(--muted);font-size:12.5px;line-height:1.6}
.bba-ext{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,470px);gap:16px;align-items:start}
.bba-acc{display:flex;align-items:center;gap:11px;width:100%;padding:11px 16px;border:0;border-top:1px solid var(--border);background:transparent;cursor:pointer;text-align:left;font-family:inherit;color:var(--text)}
.bba-acc:hover{background:#f8fafc}
.bba-acc.on{background:#fff7f2;box-shadow:inset 3px 0 0 #e8622d}
.bb-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:12px;font-weight:700;color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7)}
.bba-acc-n{flex:1;min-width:0}
.bba-acc-n b{display:block;font-size:13.5px}
.bba-acc-n span{font-size:11.5px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bba-acc-b{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;max-width:46%}
.bba-bdg{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:7px;background:var(--bbs);color:var(--bbd);white-space:nowrap}
.bba-st{font-size:11.5px;font-weight:700;white-space:nowrap}
.bba-st.on{color:#15803d}.bba-st.warn{color:#b45309}.bba-st.off{color:#94a3b8}
.bba-form{padding:0;position:sticky;top:8px}
.bba-form>.bba-empty{padding:50px 20px}
.bba-fh{padding:16px 20px;border-bottom:1px solid var(--border)}
.bba-fh b{display:block;font-size:15px}
.bba-fh span{font-size:12px;color:var(--muted)}
.bba-form .frm{padding:4px 20px 14px}
.bba-tg{display:flex;align-items:flex-end}
.bba-tg label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;margin:0 0 9px;cursor:pointer}
.bba-tg input{width:auto}
.bba-mx{display:grid;align-items:center;border:1px solid var(--border);border-radius:12px;overflow:hidden;font-size:12.5px}
.bba-mx>span{padding:7px 10px;border-top:1px solid var(--border);display:flex;justify-content:center}
.bba-mx>span.h{border-top:0;justify-content:flex-start;font-size:10.5px;font-weight:750;letter-spacing:.06em;color:var(--muted);background:#f8fafc}
.bba-mx>span.n{justify-content:flex-start}
.bba-mx>span.g{background:#fbfcfe;font-size:10px;font-weight:750;letter-spacing:.1em;color:var(--muted);justify-content:flex-start}
.bba-colh{border:0;background:#f8fafc;color:var(--bbp);font-size:11px;font-weight:800;padding:8px 4px;cursor:pointer;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bba-cb{width:20px;height:20px;border-radius:6px;border:1.5px solid #c3cbd8;background:#fff;display:grid;place-items:center;cursor:pointer;color:#fff;padding:0}
.bba-cb.on{background:var(--bbp);border-color:var(--bbp)}
.bba-f{flex-wrap:wrap}

/* ---------- εξωτερικός λογαριασμός: δικό του κέλυφος ---------- */
/* Πάνω από την (κρυφή, body.boot) .layout του OMNIK — που κρατά ακόμη τον χώρο της */
html.bb-ext-on,html.bb-ext-on body{background:var(--bg)}
html.bb-ext-on body{overflow:hidden}
html.bb-ext-on body>*:not(#bbExt):not(#modalRoot):not(#modalRoot2):not(#toast):not(#loginRoot):not(script){display:none!important}
#bbExt{position:fixed;inset:0;z-index:40;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.bbx{min-height:100vh;background:radial-gradient(80% 60% at 85% -10%,rgba(232,98,45,.14),transparent 60%),radial-gradient(60% 50% at 0% 0%,rgba(46,111,216,.09),transparent 60%),var(--bg)}
.bbx-h{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:12px;padding:14px max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left));padding-top:calc(14px + env(safe-area-inset-top));background:rgba(244,246,250,.86);backdrop-filter:blur(10px);border-bottom:1px solid rgba(227,232,240,.7)}
.bbx-h img{width:36px;height:36px;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.bbx-home{display:flex;align-items:center;gap:12px;border:0;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;border-radius:12px}
.bbx-home:focus-visible{outline:2px solid #dc8033;outline-offset:4px}
.bbx-wm{font-family:"Quebra Expa",system-ui,sans-serif;font-weight:700;color:#dc8033;letter-spacing:.05em;font-size:17px}
.bbx-sep{width:1px;height:24px;background:#cfd6e2}
.bbx-t{font-weight:700;font-size:14.5px;color:var(--text)}
.bbx-me{margin-left:auto;display:flex;align-items:center;gap:10px}
.bbx-me-n b{display:block;font-size:13px;color:var(--text)}
.bbx-me-n span{font-size:11px;color:var(--muted)}
.bbx-main{padding:22px max(16px,3vw) 40px;max-width:1500px;margin:0 auto}
.bbx .bb-side{top:76px;max-height:calc(100vh - 96px)}
.bbx .bb-wrap{align-items:start}

/* ---------- κινητό ---------- */
@media (max-width:900px){
  .bb-wrap{grid-template-columns:minmax(0,1fr);gap:12px}
  .bb-side{position:static;max-height:none;padding:8px;border-radius:16px}
  .bb-nav{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 4px;scrollbar-width:none}
  .bb-nav::-webkit-scrollbar{display:none}
  .bb-g{display:none}
  .bb-ni{width:auto;flex:none;padding:8px 12px;background:rgba(255,255,255,.06)}
  .bb-staff .bb-ni{background:#f4f6fa}
  .bb-ni em{display:none}
  .bb-hero{padding:24px 20px;min-height:0;border-radius:18px}
  .bb-hero-badge{width:74px;right:14px;top:16px}
  .bb-hero-logo{max-width:72%;max-height:70px}
  .bb-dh h1{font-size:27px}
  .bb-hh h1{font-size:28px}
  .bba-ext{grid-template-columns:1fr}
  .bba-form{position:static}
  .bba-acc-b{display:none}
  .bbx-me-n,.bbx-lo,.bbx-sep,.bbx-t{display:none}
  .bb-pl-c{left:6px;right:6px;bottom:6px;gap:4px;padding:6px}
  .bb-pl-rate{display:none!important}
}
@media (max-width:560px){
  .bb-agrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .bb-as-th{height:120px}
  .bb-cards,.bb-vgrid{grid-template-columns:1fr}
  .bbe-2,.bbe-3{grid-template-columns:1fr}
  .bba-row{flex-wrap:wrap}
  .bba-seg{width:100%}
  .bba-seg button{flex:1}
  .bba-q{width:120px}
  .bb-libbar{flex-direction:column;align-items:stretch}
  .bb-srch{min-width:0}
}

/* ---------- Ανέβασμα αρχείων (89/92) ---------- */
.bbe-seg{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:#eef1f6;margin:4px 0 2px}
.bbe-seg button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:7px 14px;border-radius:9px;font:inherit;font-size:13px;font-weight:600;color:#475569;cursor:pointer}
.bbe-seg button.on{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(15,23,42,.12)}
.bbe-drop{display:flex!important;align-items:center;gap:14px;margin:12px 0 0!important;padding:18px;min-height:96px;border:1.5px dashed #c5cfdd;border-radius:14px;background:#f8fafc;cursor:pointer;transition:border-color .15s,background .15s}
.bbe-drop:hover,.bbe-drop.over{border-color:var(--bbp,#e8622d);background:color-mix(in srgb,var(--bbp,#e8622d) 6%,#fff)}
.bbe-drop-in{display:flex;align-items:center;gap:14px;width:100%;min-width:0;pointer-events:none}
.bbe-drop-ic{flex:none;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#fff;color:var(--bbp,#e8622d);box-shadow:0 2px 8px rgba(15,23,42,.08)}
.bbe-drop-img{flex:none;width:64px;height:64px;object-fit:contain;padding:4px;border-radius:10px;background:repeating-conic-gradient(#cbd5e1 0 25%,#94a3b8 0 50%) 0 0/12px 12px;box-shadow:0 2px 8px rgba(15,23,42,.12)}
.bbe-drop-ty{flex:none;width:64px;height:64px;border-radius:10px;display:grid;place-items:center;background:#1d2a44;color:#fff;font-size:12px;font-weight:800;letter-spacing:.04em}
.bbe-drop-t{display:flex;flex-direction:column;gap:3px;min-width:0;font-weight:400}
.bbe-drop-t b{font-size:13.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bbe-drop-t span{font-size:12px;color:var(--muted)}
.bbe-drop-t u{color:var(--bbp,#e8622d);text-decoration:none;font-weight:600}
.bbe-prog{position:relative;height:8px;margin:12px 0 34px;border-radius:99px;background:#e2e8f0}
.bbe-prog i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:99px;background:linear-gradient(90deg,#c2410c,#e8622d);transition:width .2s}
.bbe-prog span{position:absolute;left:0;top:13px;font-size:12px;font-weight:700;color:#334155;white-space:nowrap}
/* ---------- Προεπισκόπηση φωτογραφίας (88 bbImgView) ---------- */
.bb-iv{position:relative;display:grid;place-items:center;min-height:320px;max-height:calc(100vh / var(--zf,1) - 140px);background:#0b0f19;overflow:hidden}
.bb-iv-im{position:relative;display:block;max-width:100%;max-height:calc(100vh / var(--zf,1) - 140px);object-fit:contain;opacity:0;transition:opacity .25s}
.bb-iv-ph{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:blur(6px);opacity:.9;transition:opacity .25s}
.bb-iv.ok .bb-iv-im{opacity:1}
.bb-iv.ok .bb-iv-ph{opacity:0}
.bb-iv.bg-light{background-color:#f4f6fa}
.bb-iv.bg-dark{background-color:#0f172a}
/* Καρτέλα εξωτερικού: tabs «Στοιχεία / Είσοδοι» + ιστορικό εισόδων (90, sql 100) */
.bba-ftabs{display:flex;gap:4px;padding:10px 20px 0;border-bottom:1px solid var(--border)}
.bba-ftabs button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:8px 12px;font:inherit;font-size:13px;font-weight:650;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.bba-ftabs button.on{color:var(--text);border-bottom-color:#e8622d}
.bba-log{padding:14px 20px 6px;display:flex;flex-direction:column;gap:12px}
.bba-log-s{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--muted);padding:10px 12px;background:#f8fafc;border:1px solid var(--border);border-radius:12px}
.bba-log-s b{color:var(--text)}
.bba-log-l{max-height:min(440px,calc(100vh / var(--zf,1) - 360px));overflow:auto;border:1px solid var(--border);border-radius:12px}
.bba-log-m{position:sticky;top:0;background:#f1f5f9;font-size:12px;font-weight:750;color:#475569;padding:6px 12px}
.bba-log-r{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-top:1px solid var(--border);font-size:13px}
.bba-log-m+.bba-log-r{border-top:0}
.bba-log-d{color:#334155;text-transform:capitalize}
.bba-log-r b{font-variant-numeric:tabular-nums}
/* =====================================================================
   35zr — Brand Book: τα 3 templates του εξωτερικού (module 91 · God Mode)
   .bbx.bbl-a «Ναυαρχίδα» · .bbx.bbl-b «Χρώμα brand» · .bbx.bbl-c «Πάνω πλοήγηση»
   ΜΟΝΟ desktop (>900px): στο κινητό ισχύει η κινητή διάταξη του 35zq και στα τρία.
   Οι υπάλληλοι (.bb-staff μέσα στο OMNIK) δεν επηρεάζονται — δεν έχουν .bbx.
   ===================================================================== */

/* Βελάκια της πάνω μπάρας (C): στο κινητό το κέλυφος «εξαφανίζεται» → η μπάρα δουλεύει όπως πριν (swipe) */
.bb-navw{display:contents}
.bb-nava{display:none}

/* ---------- Μικρογραφίες στην κάρτα του God Mode ---------- */
.bbl-sw{position:relative;display:block;width:100%;height:72px;margin-bottom:6px;border-radius:10px;overflow:hidden;background:#eef1f6;border:1px solid var(--border)}
.bbl-sw i{position:absolute;display:block;border-radius:3px}
.bbl-sw i:nth-child(1){left:0;top:0;right:0;height:10px;border-radius:0;background:#fff;border-bottom:1px solid #e2e8f0}
.bbl-sw-a i:nth-child(2),.bbl-sw-b i:nth-child(2){left:0;top:10px;bottom:0;width:30%;border-radius:0}
.bbl-sw-a i:nth-child(2){background:linear-gradient(180deg,#0f1a2c,#182a47);box-shadow:inset 0 9px 0 -2px #D71921}
.bbl-sw-b i:nth-child(2){background:linear-gradient(160deg,#e8414a,#8F0F15)}
.bbl-sw-a i:nth-child(3),.bbl-sw-b i:nth-child(3){left:calc(30% + 8px);top:18px;right:8px;height:24px;background:#D71921}
.bbl-sw-a i:nth-child(4),.bbl-sw-b i:nth-child(4){left:calc(30% + 8px);top:48px;right:8px;height:14px;background:#fff}
.bbl-sw-c i:nth-child(2){left:0;top:10px;right:0;height:14px;border-radius:0;background:linear-gradient(90deg,#D71921 0 26%,#fff 26%);border-bottom:1px solid #e2e8f0}
.bbl-sw-c i:nth-child(3){left:10px;top:31px;right:10px;height:22px;background:#D71921}
.bbl-sw-c i:nth-child(4){left:10px;top:58px;right:10px;height:8px;background:#fff}

@media (min-width:901px){
  /* ---------- κοινά: το μενού πιάνει όλο το ύψος/πλάτος, το περιεχόμενο είναι φαρδύ «κουτί» ---------- */
  .bbx.bbl-a .bbx-main:has(.bb-wrap),.bbx.bbl-b .bbx-main:has(.bb-wrap),.bbx.bbl-c .bbx-main:has(.bb-wrap){max-width:none;padding:0}
  .bbx.bbl-a .bb-main,.bbx.bbl-b .bb-main{padding:30px 52px 40px}
  .bbx.bbl-a .bb-top,.bbx.bbl-a .bb-page,.bbx.bbl-b .bb-top,.bbx.bbl-b .bb-page{max-width:1360px;margin-left:auto;margin-right:auto}
  .bbx.bbl-a .bb-hero,.bbx.bbl-b .bb-hero{min-height:420px;padding:56px 60px}

  /* ================= A — Ναυαρχίδα ================= */
  .bbx.bbl-a .bb-wrap{grid-template-columns:330px minmax(0,1fr);gap:0}
  .bbx.bbl-a .bb-side{position:sticky;top:65px;height:calc(100vh - 65px);max-height:none;overflow-y:auto;scrollbar-width:thin;border-radius:0;padding:22px 18px 30px;
    background:radial-gradient(90% 40% at 0% 0%,color-mix(in srgb,var(--bbp) 38%,transparent),transparent 70%),linear-gradient(180deg,#0f1a2c,#15243b 55%,#182a47)}
  .bbx.bbl-a .bb-sw{flex-wrap:wrap;padding:20px 18px 18px;border:0;border-radius:20px;background:radial-gradient(120% 140% at 0 0,color-mix(in srgb,var(--bbp) 80%,#fff),var(--bbp) 40%,var(--bbd));box-shadow:0 18px 36px -14px var(--bbp)}
  .bbx.bbl-a .bb-sw-lg{order:3;display:flex;justify-content:flex-start;width:100%;height:auto;margin-top:4px;background:none;box-shadow:none}
  .bbx.bbl-a .bb-sw-lg img{width:230px;max-height:60px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}
  .bbx.bbl-a .bb-sw-t{order:2}
  .bbx.bbl-a .bb-sw-t b{font-size:16px}
  .bbx.bbl-a .bb-sw-t span{color:rgba(255,255,255,.8)}
  .bbx.bbl-a .bb-sw>.i{order:2;color:#fff}
  .bbx.bbl-a .bb-sw-back{order:1;background:rgba(255,255,255,.18);color:#fff}
  .bbx.bbl-a .bb-g{margin:24px 12px 10px;font-size:11.5px;letter-spacing:.16em;color:#7d8fae}
  .bbx.bbl-a .bb-ni{margin:2px 0;padding:9px 12px;gap:14px;border-radius:14px;font-size:15.5px}
  .bbx.bbl-a .bb-ni>svg{flex:none;width:38px;height:38px;padding:9px;border-radius:11px;background:rgba(255,255,255,.08);color:#dbe4f2}
  .bbx.bbl-a .bb-ni:hover>svg{background:rgba(255,255,255,.14);color:#fff}
  .bbx.bbl-a .bb-ni.on{background:rgba(255,255,255,.07);box-shadow:inset 3px 0 0 var(--bbp);color:#fff}
  .bbx.bbl-a .bb-ni.on>svg{background:linear-gradient(135deg,var(--bbd),var(--bbp));color:#fff;box-shadow:0 8px 18px -6px var(--bbp)}
  .bbx.bbl-a .bb-ni em{padding:2px 9px;font-size:12px}

  /* ================= B — Χρώμα brand ================= */
  .bbx.bbl-b .bb-wrap{grid-template-columns:340px minmax(0,1fr);gap:0}
  .bbx.bbl-b .bb-side{position:sticky;top:65px;height:calc(100vh - 65px);max-height:none;overflow-y:auto;scrollbar-width:thin;border-radius:0;padding:26px 20px 30px;color:#fff;
    background:radial-gradient(140% 60% at 0% 0%,var(--bbp) 0%,color-mix(in srgb,var(--bbp) 55%,var(--bbd)) 40%,var(--bbd) 100%)}
  .bbx.bbl-b .bb-side::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.04) 0 2px,transparent 2px 22px);pointer-events:none}
  .bbx.bbl-b .bb-sw{position:relative;flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:6px;padding:46px 6px 22px;border:0;border-bottom:1px solid rgba(255,255,255,.22);border-radius:0;background:none}
  .bbx.bbl-b .bb-sw-lg{width:auto;height:auto;background:none;box-shadow:none}
  .bbx.bbl-b .bb-sw-lg img{width:250px;max-height:64px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.3))}
  .bbx.bbl-b .bb-sw-t b{color:#fff;font-size:13px;letter-spacing:.1em;text-transform:uppercase;opacity:.9}
  .bbx.bbl-b .bb-sw-t span{color:rgba(255,255,255,.75)}
  .bbx.bbl-b .bb-sw>.i{position:absolute;right:8px;top:12px;color:#fff}
  .bbx.bbl-b .bb-sw-back{position:absolute;left:6px;top:6px;background:rgba(255,255,255,.18);color:#fff}
  .bbx.bbl-b .bb-g{position:relative;margin:22px 10px 8px;font-size:11.5px;letter-spacing:.18em;color:rgba(255,255,255,.7)}
  .bbx.bbl-b .bb-ni{position:relative;padding:7px 12px;gap:12px;border-radius:14px;font-size:16px;font-weight:550;color:#fff}
  .bbx.bbl-b .bb-ni>svg{flex:none;width:34px;height:34px;padding:8px;border-radius:10px;background:rgba(0,0,0,.22);color:#fff}
  .bbx.bbl-b .bb-ni:hover{background:rgba(255,255,255,.12)}
  .bbx.bbl-b .bb-ni.on{background:#fff;color:var(--bbd);box-shadow:0 14px 30px -12px rgba(0,0,0,.45)}
  .bbx.bbl-b .bb-ni.on>svg{background:var(--bbd);color:#fff}
  .bbx.bbl-b .bb-ni em{background:rgba(255,255,255,.2);color:#fff;font-size:12px}
  .bbx.bbl-b .bb-ni.on em{background:var(--bbs);color:var(--bbd)}

  /* ================= C — Πάνω πλοήγηση ================= */
  .bbx.bbl-c .bb-wrap{display:block}
  .bbx.bbl-c .bb-side{position:sticky;top:65px;z-index:3;display:flex;align-items:stretch;max-height:none;padding:0;border-radius:0;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 10px 30px -18px rgba(21,36,59,.35)}
  .bbx.bbl-c .bb-sw{flex:none;min-width:300px;margin:0;padding:14px 22px;border:0;border-radius:0;background:radial-gradient(120% 160% at 0 0,color-mix(in srgb,var(--bbp) 80%,#fff),var(--bbp) 40%,var(--bbd))}
  .bbx.bbl-c .bb-sw-lg{width:auto;height:auto;background:none;box-shadow:none}
  .bbx.bbl-c .bb-sw-lg img{width:180px;max-height:42px}
  .bbx.bbl-c .bb-sw-t{display:none}
  .bbx.bbl-c .bb-sw>.i{margin-left:auto;color:#fff}
  .bbx.bbl-c .bb-sw-back{background:rgba(255,255,255,.2);color:#fff}
  .bbx.bbl-c .bb-navw{position:relative;display:flex;flex:1;min-width:0}
  .bbx.bbl-c .bb-nav{flex:1;display:flex;align-items:center;gap:2px;min-width:0;padding:0 14px;overflow-x:auto;scrollbar-width:none}
  .bbx.bbl-c .bb-nav::-webkit-scrollbar{display:none}
  .bbx.bbl-c .bb-navw.can-r .bb-nav{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 96px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 96px),transparent)}
  .bbx.bbl-c .bb-navw.can-l .bb-nav{-webkit-mask-image:linear-gradient(90deg,transparent,#000 96px);mask-image:linear-gradient(90deg,transparent,#000 96px)}
  .bbx.bbl-c .bb-navw.can-l.can-r .bb-nav{-webkit-mask-image:linear-gradient(90deg,transparent,#000 96px,#000 calc(100% - 96px),transparent);mask-image:linear-gradient(90deg,transparent,#000 96px,#000 calc(100% - 96px),transparent)}
  .bbx.bbl-c .bb-nava{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:40px;height:40px;padding:0;border-radius:50%;cursor:pointer;
    border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);
    color:var(--bbd);box-shadow:0 8px 22px -8px rgba(15,23,42,.35),0 1px 2px rgba(15,23,42,.08);
    opacity:0;pointer-events:none;transform:translateY(-50%) scale(.85);transition:opacity .2s ease,transform .2s ease,background .15s ease,color .15s ease}
  .bbx.bbl-c .bb-nava.l{left:10px}
  .bbx.bbl-c .bb-nava.r{right:10px}
  .bbx.bbl-c .bb-navw.can-l .bb-nava.l,.bbx.bbl-c .bb-navw.can-r .bb-nava.r{opacity:1;pointer-events:auto;transform:translateY(-50%) scale(1)}
  .bbx.bbl-c .bb-nava:hover{background:rgba(255,255,255,.95);color:var(--bbp);transform:translateY(-50%) scale(1.08)}
  .bbx.bbl-c .bb-nava:active{transform:translateY(-50%) scale(.96)}
  .bbx.bbl-c .bb-nava:focus-visible{outline:2px solid var(--bbp);outline-offset:2px}
  @media (prefers-reduced-motion:reduce){ .bbx.bbl-c .bb-nava{transition:none} }
  .bbx.bbl-c .bb-g{display:none}
  .bbx.bbl-c .bb-ni{position:relative;flex:none;flex-direction:column;width:auto;gap:6px;padding:12px 14px 10px;border-radius:0;border-bottom:3px solid transparent;background:none;box-shadow:none;color:#334155;font-size:13.5px;font-weight:600}
  .bbx.bbl-c .bb-ni span{flex:none}
  .bbx.bbl-c .bb-ni>svg{width:22px;height:22px;color:#5b6b82}
  .bbx.bbl-c .bb-ni:hover{color:var(--bbd)}
  .bbx.bbl-c .bb-ni.on{color:var(--bbd);border-bottom-color:var(--bbp)}
  .bbx.bbl-c .bb-ni.on>svg{color:var(--bbd)}
  .bbx.bbl-c .bb-ni em{position:absolute;top:6px;left:calc(50% + 8px);background:var(--bbp);color:#fff;font-size:10px}
  .bbx.bbl-c .bb-main{max-width:1440px;margin:0 auto;padding:28px 48px 40px}
  .bbx.bbl-c .bb-hero{min-height:440px;padding:60px 64px}
}
/* 35zs — Brand Book · Support / Tickets (modules 93/94 · shard 44 §Tickets)
   Λίστα + συζήτηση δίπλα-δίπλα (<div>, ΠΟΤΕ <aside>)· ≤900px μία στήλη (.has-sel → συζήτηση).
   Κατάσταση = μεταβλητές --st/--st-bg/--st-tx από την κλάση s-* (ίδιο χρώμα παντού για το ίδιο αίτημα). */
.bbt{display:flex;flex-direction:column;gap:14px;min-width:0}
.bbt .s-new{--st:#64748b;--st-bg:#f1f5f9;--st-tx:#334155}
.bbt .s-prog{--st:#2563eb;--st-bg:#eff6ff;--st-tx:#1d4ed8}
.bbt .s-wait{--st:#d97706;--st-bg:#fff7ed;--st-tx:#b45309}
.bbt .s-done{--st:#16a34a;--st-bg:#f0fdf4;--st-tx:#15803d}
.bbt-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.bbt-h :where(h1,p){margin:0}
.bbt-h h1{font-size:30px;font-weight:800;letter-spacing:-.025em;margin:6px 0 6px;color:var(--text)}
.bbt-h p{font-size:14px;line-height:1.55;color:#475569;max-width:640px}
.bbt-cols{display:flex;gap:14px;height:max(440px,calc(100vh / var(--zf,1) - 300px));min-width:0}
/* back office: + φίλτρα πάνω και dock κάτω (shard 02: popup πάνω στο dock) */
.bbt.staff .bbt-cols{height:max(420px,calc(100vh / var(--zf,1) - 400px))}
.bbt-list{width:340px;flex:none;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:2px}
.bbt-pane{flex:1;min-width:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden}
.bbt-it{display:flex;flex-direction:column;gap:5px;text-align:left;width:100%;padding:11px 12px 11px 15px;border:1px solid var(--border);border-radius:13px;
  background:#fff;cursor:pointer;font-family:inherit;color:var(--text);position:relative;overflow:hidden}
.bbt-it::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--st)}
.bbt-it:hover{border-color:color-mix(in srgb,var(--st) 45%,var(--border))}
.bbt-it.on{border-color:var(--st);box-shadow:0 0 0 2px color-mix(in srgb,var(--st) 22%,transparent)}
.bbt-it-t{display:flex;align-items:baseline;gap:8px}
.bbt-it-t b{flex:1;min-width:0;font-size:13.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bbt-it.unread .bbt-it-t b{font-weight:800}
.bbt-it.unread .bbt-it-t b::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bbp,#e8622d);margin-right:7px;vertical-align:1px}
.bbt-when{font-size:11px;color:var(--muted);flex:none}
.bbt-it-m{display:flex;flex-direction:column;gap:1px;font-size:12px;color:#64748b;min-width:0}
.bbt-it-m span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Brand: γεμάτη ετικέτα στα χρώματα του brand, λευκά γράμματα — διαβάζεται και στο σκοτεινό (μοναδικό πρόθεμα --bbt-b*, το darkgen δεν τα αγγίζει) */
.bbt-brand{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:750;letter-spacing:.01em;padding:3px 10px 3px 8px;border-radius:999px;color:#fff;
  white-space:nowrap;flex:none;background:linear-gradient(135deg,var(--bbt-bp),var(--bbt-bd));box-shadow:0 2px 6px -2px var(--bbt-bp),inset 0 1px 0 rgba(255,255,255,.18)}
.bbt-brand::before{content:"";width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.85)}
.bbt-it-b{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.bbt-th-m{display:flex;align-items:center;gap:8px;min-width:0}
.bbt-th-m>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bbt-chip{align-self:flex-start;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--st-bg);color:var(--st-tx);white-space:nowrap;flex:none}
.bbt-none,.bbt-pick{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--muted);padding:40px 18px;flex:1}
.bbt-none b{color:var(--text);font-size:15px}
.bbt-none span{font-size:13px;max-width:260px;line-height:1.5}
.bbt-th-h{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}
.bbt-th-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.bbt-th-t b{font-size:16px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bbt-th-t>span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bbt-back{display:none;border:0;background:#f1f5f9;border-radius:9px;width:32px;height:32px;place-items:center;cursor:pointer;color:var(--text);flex:none}
.bbt-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:8px 16px;border-bottom:1px solid var(--border);background:#fafbfc}
.bbt-bar.staff{justify-content:space-between}
/* «Mark as resolved»: γεμάτο πράσινο (= χρώμα του «Closed»), να ξεχωρίζει (απαίτηση χρήστη) */
.bbt-resolve{display:inline-flex;align-items:center;gap:9px;padding:9px 16px 9px 9px;border:0;border-radius:12px;cursor:pointer;font-family:inherit;
  font-size:13.5px;font-weight:750;color:#fff;background:linear-gradient(135deg,#22c55e,#15803d);
  box-shadow:0 10px 22px -10px rgba(22,163,74,.85),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .15s,box-shadow .15s,filter .15s}
.bbt-resolve:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 14px 26px -10px rgba(22,163,74,.95),inset 0 1px 0 rgba(255,255,255,.25)}
.bbt-resolve:active{transform:translateY(0)}
.bbt-resolve-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.22)}
.bbt-cust{font-size:12.5px;color:#475569;display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.bbt-cust a{color:inherit}
.bbt-seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;flex-wrap:wrap}
.bbt-seg button{border:0;background:#fff;padding:6px 10px;font-size:12px;font-weight:650;cursor:pointer;color:#475569;font-family:inherit}
.bbt-seg button+button{border-left:1px solid var(--border)}
.bbt-seg button.on{background:var(--st);color:#fff}
.bbt-msgs{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:#f8fafc}
.bbt-m{max-width:min(78%,620px);display:flex;flex-direction:column;gap:5px;align-self:flex-start}
.bbt-m.me{align-self:flex-end;align-items:flex-end}
.bbt-m-h{display:flex;gap:8px;align-items:baseline;font-size:11.5px;color:var(--muted)}
.bbt-m-h b{color:#334155;font-weight:700}
.bbt-m-b{background:#fff;border:1px solid var(--border);border-radius:4px 14px 14px 14px;padding:10px 13px;font-size:13.5px;line-height:1.55;
  white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)}
.bbt-m.me .bbt-m-b{background:var(--bbp,#e8622d);border-color:var(--bbp,#e8622d);color:#fff;border-radius:14px 4px 14px 14px}
.bbt-m.me .bbt-m-b .lk{color:#fff;text-decoration:underline}
.bbt-files{display:flex;flex-wrap:wrap;gap:8px}
.bbt-f{display:flex;align-items:center;gap:9px;padding:7px 10px 7px 7px;border:1px solid var(--border);border-radius:11px;background:#fff;cursor:pointer;
  font-family:inherit;color:var(--text);max-width:280px;text-align:left}
.bbt-f img{width:48px;height:48px;object-fit:cover;border-radius:8px;flex:none;background:#eef1f6}
.bbt-f-ic{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:#eef1f6;color:#475569;flex:none}
.bbt-f-n{display:flex;flex-direction:column;min-width:0;flex:1}
.bbt-f-n b{font-size:12.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bbt-f-n span{font-size:11px;color:var(--muted)}
.bbt-closed{display:flex;align-items:center;gap:7px;padding:8px 16px;font-size:12.5px;color:#15803d;background:#f0fdf4;border-top:1px solid var(--border)}
.bbt-comp{border-top:1px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:9px;background:#fff}
.bbt-comp.new{border-top:0;padding:4px 0 0}
.bbt-comp textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:58px;max-height:240px;border:1px solid var(--border);border-radius:11px;
  padding:10px 12px;font:inherit;font-size:13.5px;color:var(--text);background:#fff}
.bbt-comp-a{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bbt-comp-a .bb-btn.pr{margin-left:auto}
.bbt-clip{cursor:pointer}
.bbt-hint{font-size:11.5px;color:var(--muted)}
.bbt-att{display:flex;flex-wrap:wrap;gap:7px}
.bbt-att:empty{display:none}
.bbt-a{display:inline-flex;align-items:center;gap:7px;padding:5px 6px 5px 10px;border-radius:9px;background:#f1f5f9;font-size:12px;max-width:100%}
.bbt-a b{font-weight:650;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bbt-a span{color:var(--muted)}
.bbt-a.err{background:#fef2f2;color:#b91c1c}
.bbt-a.err span{color:#b91c1c}
.bbt-a button{border:0;background:transparent;cursor:pointer;color:inherit;display:grid;place-items:center;padding:2px}
.bbt-a .bb-spin{width:12px;height:12px}
.bbt-ferr{font-size:12.5px;color:#b91c1c}
.bbt-new{display:flex;flex-direction:column;min-height:0;flex:1;overflow:auto}
.bbt-form{display:flex;flex-direction:column;gap:14px;padding:16px}
.bbt-fl{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:650;color:#334155}
.bbt-fl :where(input,select,textarea){border:1px solid var(--border);border-radius:11px;padding:10px 12px;font:inherit;font-size:14px;font-weight:400;color:var(--text);background:#fff;width:100%;box-sizing:border-box}
.bbt-fl textarea{resize:vertical;min-height:120px}
.bbt-fl .bad{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.bbt-fl em{font-style:normal;font-weight:500;color:#b91c1c;font-size:12px}
.bbt-fbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bbt-chips{display:flex;gap:6px;flex-wrap:wrap}
.bbt-fc{border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:650;cursor:pointer;color:#475569;font-family:inherit}
.bbt-fc em{font-style:normal;font-size:11px;background:#eef1f6;border-radius:999px;padding:1px 6px;margin-left:3px}
.bbt-fc.on{background:#0f172a;border-color:#0f172a;color:#fff}
.bbt-fc.on em{background:rgba(255,255,255,.18)}
.bbt-fc.hot em{background:var(--bbp,#e8622d);color:#fff}
.bbt-q{margin-left:auto;min-width:220px;flex:1;max-width:360px;border:1px solid var(--border);border-radius:10px;padding:8px 11px;font:inherit;font-size:13px;background:#fff;color:var(--text)}
.bbt-cnt{font-style:normal}
.bbt-cnt.hot{background:var(--bbp,#e8622d)!important;color:#fff!important}
.bb-hh{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap}
.bb-hh-t{flex:1;min-width:0}
.bbt-hubbtn{margin-left:auto;align-self:flex-start;margin-top:4px;display:flex;align-items:center;gap:12px;padding:12px 16px 12px 12px;border:0;border-radius:16px;cursor:pointer;font-family:inherit;
  color:#fff;text-align:left;background:linear-gradient(135deg,#0f172a,#1e293b);box-shadow:0 12px 26px -12px rgba(15,23,42,.6);transition:transform .15s,box-shadow .15s}
.bbt-hubbtn:hover{transform:translateY(-1px);box-shadow:0 16px 30px -12px rgba(15,23,42,.7)}
.bbt-hubbtn-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#e8622d,#dc8033);flex:none}
.bbt-hubbtn-t{display:flex;flex-direction:column;line-height:1.2;flex:1;min-width:0}
.bbt-hubbtn-t b{font-size:16px;font-weight:800}
.bbt-hubbtn-t span{font-size:12px;color:#cbd5e1}
.bbt-hubbtn .bbt-cnt{font-size:12px;font-weight:800;padding:2px 8px;border-radius:999px}
.bbt-hubpage{display:flex;flex-direction:column;gap:12px}
.bbt-hubpage>.bb-crumb a{cursor:pointer}
.bbt-hb{position:relative}
.bbt-hb.on{background:var(--bbp,#e8622d);border-color:var(--bbp,#e8622d);color:#fff}
.bbt-hb .bbt-cnt{font-size:10.5px;font-weight:800;padding:1px 6px;border-radius:999px;margin-left:2px}
.bbt-view{display:flex;flex-direction:column;gap:10px;padding:14px}
.bbt-view img{max-width:100%;max-height:72vh;object-fit:contain;border-radius:10px;align-self:center;background:#f1f5f9}
.bbt-view-a{display:flex;align-items:center;gap:8px}
.bbt-view-a b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
@media (max-width:900px){
  .bbt-hubbtn{margin-left:0;width:100%}
  .bbt-h h1{font-size:24px}
  .bbt-cols{flex-direction:column;height:auto;min-height:0}
  .bbt-list{width:auto;overflow:visible}
  .bbt.has-sel .bbt-list,.bbt.has-sel .bbt-h,.bbt.has-sel .bbt-fbar{display:none}
  .bbt:not(.has-sel) .bbt-pane{display:none}
  .bbt-pane{min-height:calc(100vh / var(--zf,1) - 190px)}
  .bbt-back{display:grid}
  .bbt-m{max-width:88%}
  .bbt-q{margin-left:0;max-width:none;min-width:0}
  .bbt-hint{display:none}
}
/* ============================================================
   MOBILE / TABLET (≤900px) — drawer + «+» sheet + PWA chrome
   Όλα κλεισμένα σε @media: το desktop (>900px) μένει ΑΘΙΚΤΟ.
   Τα mobile-only στοιχεία είναι display:none by default.
   ============================================================ */
.m-hamb,.m-brand,.m-fab,.m-nav-ov,.m-sheet-root,.m-logout{display:none}

/* Κουμπί «Έξοδος» μέσα στο πλαϊνό μενού: τα ΟΠΤΙΚΑ ορίζονται εδώ μία φορά
   (εκτός @media) γιατί το χρησιμοποιούν ΔΥΟ εύρη — mobile (≤900) και
   διπλωμένο μενού tablet/laptop (901–1400, 41-sidebar-fold.css).
   Κάθε εύρος αλλάζει ΜΟΝΟ το `display` και τα περιθώρια. */
.m-logout{align-items:center;justify-content:center;gap:10px;flex:none;padding:12px;
  border:none;border-top:1px solid rgba(255,255,255,.1);border-radius:10px;
  background:rgba(255,90,71,.12);color:#ffb3a3;font-size:15px;font-weight:600;
  font-family:inherit;cursor:pointer}
.m-logout svg{width:19px;height:19px;flex:none}
.m-logout:active{background:rgba(255,90,71,.28);color:#fff}

@media (max-width:900px){

  /* ---------- Off-canvas drawer (το υπάρχον aside) ---------- */
  aside.sidebar-wrap{position:fixed;top:0;left:0;height:calc(100vh / var(--zf,1));height:calc(100dvh / var(--zf,1));width:min(82vw,300px);
    z-index:120;transform:translateX(-100%);transition:transform .28s ease;
    box-shadow:0 0 44px rgba(0,0,0,.42);will-change:transform}
  body.mnav-open aside.sidebar-wrap{transform:none}
  body.has-preview aside.sidebar-wrap{top:0}

  .m-nav-ov{display:block;position:fixed;inset:0;background:rgba(11,21,36,.5);z-index:110;
    opacity:0;pointer-events:none;transition:opacity .28s ease}
  body.mnav-open .m-nav-ov{opacity:1;pointer-events:auto}

  /* Έξοδος: κάτω-κάτω στο drawer (το #sidebar είναι flex:1 → το σπρώχνει κάτω).
     Τα οπτικά είναι στο base block παραπάνω — εδώ μόνο εμφάνιση + safe-area. */
  .m-logout{display:flex;margin:6px 10px calc(12px + env(safe-area-inset-bottom))}

  /* ---------- Topbar mobile: [☰] [καρτέλα χρήστη] [🔍] ... [notif][chat] ---------- */
  #topbar{justify-content:flex-start;flex-wrap:wrap;gap:8px;padding:9px 12px 6px}
  /* Hamburger = pill στο στιλ του topbar· μεταμορφώνεται σε «X» + navy όταν ανοίγει το μενού */
  .m-hamb{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;order:0;cursor:pointer;
    background:linear-gradient(135deg,#ff9d5c,#e8622d 55%,#c2410c);border:none;border-radius:13px;color:#fff;
    box-shadow:0 5px 16px rgba(232,98,45,.5),inset 0 1.5px 0 rgba(255,255,255,.4);
    transition:transform .1s ease}
  .m-hamb:active{transform:scale(.94)}
  .m-hamb .mh-box{position:relative;width:20px;height:14px}
  .m-hamb .mh-box i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:#fff;
    transition:transform .28s cubic-bezier(.4,.2,.2,1),opacity .18s ease}
  .m-hamb .mh-box i:nth-child(1){top:0}
  .m-hamb .mh-box i:nth-child(2){top:6px}
  .m-hamb .mh-box i:nth-child(3){top:12px}
  body.mnav-open .m-hamb .mh-box i:nth-child(1){transform:translateY(6px) rotate(45deg)}
  body.mnav-open .m-hamb .mh-box i:nth-child(2){opacity:0}
  body.mnav-open .m-hamb .mh-box i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .m-brand{display:none}                                  /* αντικαθίσταται από την καρτέλα χρήστη */
  /* Καρτέλα χρήστη: ελαστική + truncation → ΠΟΤΕ δεν σπρώχνει τα εικονίδια σε 2η γραμμή.
     flex-basis:0% (ΟΧΙ auto) ώστε στο line-break να «μετράει» ως μηδέν → όλα μένουν σε μία γραμμή. */
  #topbar .user-chip{order:1;flex:1 1 0%;min-width:0;overflow:hidden}
  #topbar .user-chip>div:last-child{min-width:0}
  #topbar .user-chip .nm,#topbar .user-chip .rl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  #topbar .toolbar{order:3;flex:none}                     /* notif/chat στη δεξιά άκρη, σταθερά */
  #topbar #logoutBtn{display:none}
  #topbar #roleWrap,#topbar #deptWrap,#topbar .tb-sep,#topbar .zoom-ctrl{display:none}
  #topbar #helpNavBtn{display:none}                       /* Βοήθεια: μόνο στο πλαϊνό μενού */

  /* Αναζήτηση = μεγεθυντικός φακός (κλειστό), δεξιά από την καρτέλα, σταθερό πλάτος */
  #topbar .search{order:2;flex:none;min-width:0;width:44px;height:46px}
  #topbar .search .sic{left:0;right:0;justify-content:center;pointer-events:auto;cursor:pointer;color:#1c2e4a}
  #topbar .search input{display:none}
  /* Ανοιχτό = δική του πλήρης γραμμή με το πεδίο */
  #topbar .search.m-open{order:5;flex:0 0 100%;width:100%;margin-right:0;height:auto;margin-top:2px}
  #topbar .search.m-open input{display:block;width:100%}
  #topbar .search.m-open .sic{left:15px;right:auto;justify-content:flex-start;pointer-events:none;color:#98a0ad}
  #topbar .search.m-open .search-drop{max-width:100%}

  main{padding:12px 14px 96px}

  /* ---------- Dock → αόρατο, κρατάμε ΜΟΝΟ τα banners ---------- */
  .dock{background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;
    padding:0;gap:0}
  .dock .dock-item{display:none}
  .dock.glow{box-shadow:none}

  /* ---------- «+» FAB κάτω δεξιά ---------- */
  .m-fab{display:flex;align-items:center;justify-content:center;position:fixed;
    right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:18px;
    color:#fff;border:none;cursor:pointer;z-index:95;
    background:linear-gradient(135deg,#ff9d5c,#e8622d 55%,#c2410c);
    box-shadow:0 6px 20px rgba(232,98,45,.5),inset 0 1.5px 0 rgba(255,255,255,.4)}
  .m-fab:active{transform:scale(.96)}

  /* Το bubble μηνυμάτων κάθεται ΠΑΝΩ από το «+» FAB (κι εκείνο κάτω δεξιά),
     αλλιώς το σκέπαζε. Ίδια γωνία, απλώς πιο ψηλά. */
  .toast{bottom:calc(84px + env(safe-area-inset-bottom));right:14px;
    max-width:min(300px,calc(100vw - 28px))}

  /* ---------- Bottom-sheet (δημιουργία + εφαρμογές) ---------- */
  .m-sheet-root{display:none}
  .m-sheet-root.open{display:block}
  .m-sheet-ov{position:fixed;inset:0;background:rgba(11,21,36,.5);z-index:130;
    display:flex;align-items:flex-end}
  .m-sheet{background:#fff;width:100%;border-radius:20px 20px 0 0;
    padding:8px 16px calc(20px + env(safe-area-inset-bottom));
    max-height:82vh;max-height:82dvh;overflow-y:auto;animation:mSheetUp .26s cubic-bezier(.22,1,.36,1)}
  @keyframes mSheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
  .m-grab{width:38px;height:4px;border-radius:2px;background:#cfd6de;margin:6px auto 4px}
  .m-sheet-h{display:flex;align-items:center;justify-content:flex-end;margin-bottom:2px}
  .m-sheet-x{border:none;background:none;color:var(--muted);font-size:20px;padding:4px 6px;cursor:pointer;line-height:1}
  .m-sec{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#7f8ea8;font-weight:700;margin:10px 2px 8px}
  .m-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
  .m-tile{border:none;background:none;display:flex;flex-direction:column;align-items:center;gap:6px;
    font-size:11px;font-weight:600;color:var(--text);cursor:pointer;font-family:inherit;padding:4px 2px}
  .m-tile:active{opacity:.6}
  .m-ti{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;color:#fff;
    box-shadow:0 4px 10px rgba(21,36,59,.18),inset 0 1px 0 rgba(255,255,255,.35)}
  .m-ti svg{width:22px;height:22px}
  .m-inst{width:100%;margin-top:16px;border:1px solid var(--border);background:var(--bg);
    border-radius:12px;padding:12px;display:flex;align-items:center;justify-content:center;gap:8px;
    font-size:13px;font-weight:600;color:#1c2e4a;cursor:pointer;font-family:inherit}
  .m-inst svg{width:16px;height:16px;flex:none}

  /* ---------- Chat panel full-screen ---------- */
  #chatPanel{top:0;left:0;right:0;width:100%;border-top-left-radius:0;border-left:none;z-index:140}
  body.has-preview #chatPanel{top:0}

  /* ---------- Dropdown ειδοποιήσεων: πλήρες πλάτος κάτω από το topbar ---------- */
  #notifDrop{top:62px;left:8px;right:8px;width:auto;max-width:none;max-height:74vh;max-height:74dvh;overflow-y:auto;z-index:145}
  #notifDrop .notif-list{max-height:none}

  /* ---------- Modals: να χωράνε στο πλάτος ΚΑΙ στο ύψος της οθόνης ----------
     ΓΙΑΤΙ: το `max-height:90vh` (19-modal) μετράει το ΜΕΓΑΛΟ viewport (σαν να
     μην υπάρχει η μπάρα διεύθυνσης του browser) → σε κινητό το popup ξεπερνούσε
     την ορατή περιοχή και «κοβόταν» (χανόταν ο footer + το κάτω περιεχόμενο).
     Το `dvh` = ΟΡΑΤΟ ύψος τώρα (ίδιο μοτίβο με το AI popup).
     Επιπλέον: header/footer `flex:none` (να μη συμπιέζονται) και body
     `flex:1;min-height:0` → το scroll γίνεται ΜΟΝΟ μέσα στο body. */
  .overlay{padding:12px}
  .modal{max-width:100%;max-height:90vh;max-height:90dvh}
  .modal-h,.modal-f{flex:none}
  .modal-b{flex:1 1 auto;min-height:0}

  /* Hero: τίτλος ΔΙΠΛΑ στο εικονίδιο (όχι από κάτω) — flex-basis:0 στο κείμενο ώστε
     να μη «μετράει» φαρδύ στο line-break· η περιγραφή αναδιπλώνεται μέσα του. */
  .page-hero>div:not(.hactions){flex:1 1 0;min-width:0}

  /* Σημειώσεις (module 48): ευρετήριο ΚΑΙ σελίδα δεν χωράνε μαζί → master/detail */
  .nb-book{grid-template-columns:1fr;min-height:0}
  .nb-idx{max-height:none;border-right:none}
  .nb-book .nb-page{display:none}
  .nb-book.pg .nb-idx{display:none}
  .nb-book.pg .nb-page{display:flex}
  /* Ράχη: στο ευρετήριο δεν έχει νόημα (δεν φαίνεται χαρτί) — μόνο στη σελίδα.
     Στενότερη στήλη, μεγαλύτερο overhang ώστε ο κρίκος να φαίνεται ΟΛΟΚΛΗΡΟΣ
     (πλάτος tile 54px): 26 + 22 = 48 ≥ 46. Παραμένει πριν το περιθώριο (44px). */
  .nb-spiral{display:none}
  .nb-book.pg{grid-template-columns:26px minmax(0,1fr)}
  .nb-book.pg .nb-spiral{display:block}
  .nb-book.pg .nb-spiral::before{right:-22px}
  .nb-book.pg .nb-spiral::after{width:12px}
  /* overhang 20px στο κινητό → τα κουμπιά της μπάρας ξεκινούν πιο μέσα,
     αλλιώς οι κρίκοι σκεπάζουν το «←» (pointer-events:none, άρα πατιόταν αόρατο). */
  .nb-book.pg .nb-ptop{padding-left:28px}
  .nb-back{display:grid}
  /* Η μπάρα του χαρτιού ΔΕΝ χωράει σε μία γραμμή σε τηλέφωνο: το flex συνέθλιβε τα
     κουμπιά (το «←» έπεφτε στα 15px) και το ✕ έβγαινε έξω από το χαρτί — ΑΟΡΑΤΟ,
     γιατί το .nb-book έχει overflow:hidden (καμία μπάρα κύλισης να το προδώσει).
     Λύση: ΔΥΟ γραμμές — «← ημερομηνία … ✕» πάνω, τα 6 χρώματα από κάτω.
     Τα κουμπιά κλειδώνουν σε πλήρες μέγεθος (tap targets). Δουλεύει και στα 360px.
     Φρουρός: scrollWidth <= clientWidth ΚΑΙ δεξιά άκρη τελευταίου ≤ δεξιά άκρη χαρτιού. */
  .nb-ptop{gap:6px;padding:9px 10px 9px 22px;flex-wrap:wrap}
  .nb-back,.nb-del{flex:none}
  .nb-date{font-size:11px;padding:5px 7px;flex:0 1 auto;min-width:0}
  .nb-del{order:1;margin-left:auto}
  .nb-colors{order:2;flex:0 0 100%;margin-left:0;justify-content:flex-start}
  .nb-cdot{width:17px;height:17px;border-radius:5px}
  /* Μεγέθυνση post-it: ίδιο πρόβλημα με τη μπάρα του σημειωματαρίου — δεν χωράει
     σε μία γραμμή (καρφίτσα+ημερομηνία+6 χρώματα+κάδος+✕). ΔΥΟ γραμμές. */
  .nbz-top{flex-wrap:wrap;gap:7px;padding:10px 12px 10px 14px}
  .nb-zoom .nb-del,.nbz-x{order:1}
  .nb-zoom .nb-del{margin-left:auto}
  .nb-zoom .nb-colors{order:2;flex:0 0 100%;margin-left:0;justify-content:flex-start}
  .nbz-sheet{padding:14px 16px 6px}
  .nbz-title{font-size:18px}
  .nbz-text{font-size:14.5px}
  .nb-sheet{padding-right:12px}
  .nb-title,.nb-text{padding-left:56px}
  .nb-wall{grid-template-columns:1fr;gap:13px}
  .nb-srch{max-width:none}
  /* δύο κουμπιά στο hero: σε στοίβα κάτω από τον τίτλο, όχι στριμωγμένα δίπλα */
  .page-hero .hactions{flex:1 1 100%;margin-left:0;justify-content:flex-end}

  @media (max-width:560px){ .m-grid{grid-template-columns:repeat(3,1fr)} }
}

/* ============================================================
   Heroes/banners modules — ΣΥΜΠΥΚΝΩΣΗ ύψους σε phone (≤600px)
   Λιγότερο padding/εικονίδιο/γραμματοσειρά/περιθώριο → δεν τρώνε οθόνη.
   ============================================================ */
@media (max-width:600px){
  /* Γενικό banner-hero modules (.page-hero: Ημερολόγιο/Αναφορές/Ανάγκες/Ρυθμίσεις/Ανακοινώσεις/Projects/God/Gate) */
  .page-hero{padding:11px 14px;border-radius:13px;gap:10px;margin-bottom:12px;box-shadow:0 5px 16px rgba(21,36,59,.18)}
  .page-hero h1{font-size:16px;line-height:1.2}
  .page-hero p{font-size:11px;margin-top:2px}
  .ph-ic{width:34px;height:34px;border-radius:10px}
  .ph-ic svg{width:18px;height:18px}
  .page-hero .hactions{gap:6px}
  .page-hero .hactions .btn{padding:7px 11px;font-size:12px}

  /* Dashboard hero (.hero — με τα διακοσμητικά) */
  .hero{padding:14px 16px 13px;border-radius:15px;margin-bottom:13px;box-shadow:0 6px 18px rgba(21,36,59,.22)}
  .hero .hrow{gap:10px}
  .hero h1{font-size:18px}
  .hero .hd{font-size:11.5px;margin-top:3px}
  .hero::before{width:150px;height:150px;right:-50px;top:-60px}
  .hero::after{width:140px;height:140px;bottom:-90px;left:30%}

  /* .page-head (τίτλοι σελίδων χωρίς gradient) */
  .page-head{margin-bottom:12px;gap:10px}
  .page-head h1{font-size:17px}
  .page-head p{font-size:12px}

  /* Modal headers λίγο πιο μαζεμένα + εικονίδιο κεφαλίδας μικρότερο */
  .modal-h{padding:12px 15px}
  .modal-b{padding:14px 15px}
  .mh-ic,.mh-ic.sm,.mh-ic.xs{width:34px;height:34px;border-radius:10px}
  .mh-ic svg{width:17px;height:17px}
  .modal-h h2{font-size:15px}
  .modal-h .sub{font-size:11px;line-height:1.45}
  .modal-f{padding:11px 15px}

  /* Φόρμα επαφών: 2 στήλες → 1 σε phone */
  .ct-fields{grid-template-columns:1fr}
}

/* ============================================================
   PROJECTS σε κινητό (≤900px popup / ≤600px phone)
   Το popup ανάλυσης έργου «κοβόταν»: 90vh + δεύτερο σκληρό
   max-height στο body + κεφαλίδα/σειρές που δεν χωρούσαν.
   Το ύψος το λύνει το γενικό dvh/flex block πιο πάνω· εδώ
   μπαίνει η διάταξη (πλάτος/στοίχιση/συμπύκνωση).
   ============================================================ */
@media (max-width:900px){
  /* Το popup γεμίζει την οθόνη· ΚΑΤΩ το δεύτερο max-height —
     το scroll το αναλαμβάνει το flex body (δες γενικό block). */
  .prj-modal{width:auto;max-width:100%}
  .prj-modal .modal-b{max-height:none}
  /* Λίστα ατόμων του wizard: όχι δεύτερο scroll-box μέσα σε scroll-box */
  .np-people{max-height:min(44vh,280px)}
  /* Κάρτες λίστας project: ποτέ πιο φαρδιές από τη στήλη */
  .prj-grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:11px}
}

@media (max-width:600px){
  /* ---- Κεφαλίδα popup: ο τίτλος παίρνει όλο το πλάτος,
          το badge κατάστασης πέφτει σε δική του γραμμή ---- */
  .prj-modal .modal-h{flex-wrap:wrap;gap:10px;align-items:center}
  .prj-hbadge{order:4;flex:1 0 100%}

  /* ---- Hero: δακτύλιος πάνω, μετρικά από κάτω (2 + 1 πλήρους πλάτους) ---- */
  .prjm-hero{flex-direction:column;align-items:center;gap:11px;padding:12px;border-radius:12px}
  .prjm-hero>svg{width:72px;height:72px}
  .prjm-metrics{width:100%;grid-template-columns:1fr 1fr;gap:8px}
  .prjm-metric{padding:8px 10px;border-radius:9px}
  .prjm-metric .k{font-size:10px;margin-bottom:2px}
  .prjm-metric .v{font-size:17px}
  /* Προθεσμία: μία οριζόντια γραμμή σε όλο το πλάτος (η ημερομηνία δεν σπάει) */
  .prjm-metric:nth-child(3){grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:3px 8px}
  .prjm-metric:nth-child(3) .k{margin-bottom:0}
  .prjm-metric:nth-child(3) .v{margin-left:auto}
  .prjm-metric:nth-child(3) .km{margin-top:0}

  /* ---- Πρόοδος ανά άτομο: όνομα με «…», μικρότερες στήλες ---- */
  .prj-person{gap:9px;padding:9px 12px}
  .pp-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pp-pct{font-size:12.5px;min-width:34px}
  .pp-meta{font-size:9.5px;min-width:44px}

  /* ---- Footer: το κουμπί «← γονικό έργο» δεν σπρώχνει το «Κλείσιμο» έξω ---- */
  .modal-f{flex-wrap:wrap;padding:11px 15px;gap:8px}
  .modal-f .btn{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

  /* ---- Κάρτες λίστας project ---- */
  .prj-card{padding:13px 13px}
  .prj-tt{font-size:13.5px}
  .prj-card-top{flex-wrap:wrap;gap:8px}
  .prj-badge{font-size:10px;padding:2px 8px}

  /* ---- Wizard δημιουργίας: πιο μαζεμένος ---- */
  #npWin .modal-b.np-body, #ntWin .modal-b.np-body{padding:14px 14px;gap:12px}
  .np-section{padding:13px}
  .np-grid2{grid-template-columns:1fr 1fr;gap:9px}
  .np-stepper{gap:4px;margin-bottom:12px}
  .np-sdot{font-size:10px}
  .np-person-h{padding:9px 11px;margin-bottom:11px}
  .np-item{gap:7px}

  /* ---- Σειρές task (λίστα αναθέσεων έργου & κάθε λίστα tasks) ----
     Σε phone ο τίτλος παίρνει ολόκληρη γραμμή και προθεσμία/πρόοδος
     πέφτουν από κάτω — αλλιώς στριμώχνονταν και κόβονταν δεξιά.
     Η χρωματιστή μπάρα προτεραιότητας γίνεται απόλυτη στα αριστερά. */
  .task-row{flex-wrap:wrap;gap:7px 10px;padding:10px 12px 10px 15px;position:relative;align-items:center}
  .task-row .prio{position:absolute;left:6px;top:10px;bottom:10px;width:3px;height:auto}
  .task-row .task-main{flex:1 1 100%}
  .task-row .tt{font-size:13px;line-height:1.35}
  .task-row .ts{font-size:11px;line-height:1.6}
  .task-row .deadline{order:2;font-size:11px;padding:2px 8px}
  .task-row .prog-wrap{order:3;flex:1 1 auto;width:auto;display:flex;align-items:center;gap:8px;justify-content:flex-end}
  .task-row .prog-wrap .pct{flex:none}
  .task-row .prog-wrap .mini-bar{flex:1 1 auto;max-width:120px;min-width:52px}
  /* Στις κάρτες dashboard η μπάρα προτεραιότητας μπαίνει μέσα στο chip */
  .dgrid .card .task-row{padding-left:15px}
}

/* ============================================================
   TASKS σε κινητό — popup λεπτομερειών, kanban, κάρτα 2ου επιπέδου
   ------------------------------------------------------------
   Η ΚΥΡΙΑ αιτία που «κοβόταν» ήταν JS, όχι CSS: το `fitTaskModal()`
   έβαζε inline `width/maxWidth/maxHeight` με **ελάχιστο 500px**
   (`Math.max(500,…)`) → σε οθόνη 360px το popup έβγαινε εκτός.
   Το inline style νικά κάθε media query, γι' αυτό το fitTaskModal
   κάνει πλέον early-return + καθάρισμα σε ≤900px (11-task-modal).
   Εδώ μένει η διάταξη.
   ============================================================ */
@media (max-width:900px){
  /* Ο τίτλος της κεφαλίδας να μπορεί να συρρικνωθεί (min-width:auto = overflow) */
  .modal-h>div{min-width:0}

  /* ---- Kanban μέσα στο task ----
     Οι στήλες μένουν οριζόντιο scroll (μοτίβο Trello) αλλά με snap
     και πλάτος «μιας οθόνης» ώστε να μη φαίνονται μισές. */
  .kb{gap:9px;padding:9px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .kb-col{flex:0 0 min(76vw,240px);scroll-snap-align:start;max-height:none}
  .kb-form{flex:0 0 min(76vw,240px)}
  /* ΚΡΙΣΙΜΟ σε touch: τα βελάκια ‹ › ήταν `opacity:0` και εμφανίζονταν ΜΟΝΟ
     σε :hover — σε κινητό δεν υπάρχει hover ΚΑΙ το HTML5 drag-and-drop δεν
     δουλεύει, οπότε η μετακίνηση κάρτας ήταν αδύνατη. Πάντα ορατά + πιο
     μεγάλος στόχος αφής. Ίδια λογική για το ✕ της στήλης και του checklist. */
  .kb-arrows{opacity:1}
  .kb-arrows button{width:26px;height:26px;font-size:15px}
  .kb-colx{opacity:.75}
  .cd-del{opacity:.7}
}

@media (max-width:600px){
  /* ---- Κεφαλίδα task: κατάσταση/προτεραιότητα σε δική τους γραμμή ---- */
  #taskModal .modal-h .sub{display:flex;flex-wrap:wrap;align-items:center;gap:5px 7px;margin-top:5px}

  /* ---- Στοιχεία task: 2 στήλες, αλλά η προθεσμία αναδιπλώνεται
          (το .deadline είναι nowrap → ξεχείλιζε δεξιά) ---- */
  .info-grid{gap:8px;margin-bottom:13px}
  .info-cell{padding:8px 10px}
  .info-cell .k{font-size:9.5px}
  .info-cell .v{font-size:12px}
  .info-cell .deadline{white-space:normal;display:inline-block;line-height:1.5}

  /* ---- Tabs (Πίνακας / Συζήτηση): να χωράνε χωρίς κόψιμο ---- */
  .tabbar{gap:2px;margin:13px 0 10px}
  .tbtn{padding:8px 10px;font-size:12px;gap:5px}

  /* ---- Kanban: λίγο μικρότερες κάρτες ---- */
  .kb-top{flex-wrap:wrap;gap:7px}
  .kb-top .btn{padding:6px 10px;font-size:11.5px}
  .kb-head{font-size:10.5px;padding:8px 9px}
  .kb-title{font-size:12.5px}

  /* ---- Συζήτηση task: ψηλότερο παράθυρο, πεδίο που δεν κάνει zoom στο iOS ---- */
  .task-chat .tc-msgs{max-height:min(46vh,320px)}
  .conv-input input{font-size:16px}          /* <16px = auto-zoom σε iOS Safari */
  .conv-input .btn-primary{width:40px;height:40px}

  /* ---- Απλό task ---- */
  .simple-wrap{padding:14px}
  .btn-done{padding:12px 22px;font-size:14px;width:100%;justify-content:center}
  .done-banner{padding:13px;font-size:13.5px}

  /* ---- Κάρτα kanban (2ο επίπεδο) ---- */
  .cd-check{padding:8px 4px}
  .cd-check span{font-size:12.5px}
  .cd-check input{width:19px;height:19px}    /* μεγαλύτερος στόχος αφής */
  .cd-labels{flex-wrap:wrap;gap:7px}
  .kind-seg{flex-direction:column;gap:8px}   /* «Απλό/Σύνθετο» στοιβαγμένα */

  /* ---- Συνημμένα: βλ. 26-attachments.css (module 74) ---- */
}

/* ============================================================
   ΕΠΑΦΕΣ σε κινητό — ΔΥΟ ΕΠΙΠΕΔΑ (λίστα → καρτέλα με «Πίσω»)
   ΓΙΑΤΙ: το master-detail (.ct-left σταθερά 295px + .ct-right
   flex:1) άφηνε ~45px για την καρτέλα σε οθόνη 360px, ενώ το
   ctRender έγραφε inline width/height από το window.innerHeight
   (ΜΕΓΑΛΟ viewport) → το popup «κοβόταν» κάτω ΚΑΙ ακύρωνε το
   90dvh του γενικού block. Πλέον το JS δεν βάζει καμία inline
   διάσταση σε ≤900px· η διάταξη ζει ΜΟΝΟ εδώ.
   Ποιο πάνελ φαίνεται το λέει η κλάση pane-list/pane-detail
   στο .ct-wrap (state `_ct.pane`, module 16).
   ============================================================ */
@media (max-width:900px){
  /* ---- Τα δύο επίπεδα ---- */
  .ct-wrap{min-width:0}
  .ct-left{width:auto;flex:1 1 auto;min-width:0;border-right:none;background:#fff}
  .ct-right{display:none;padding:14px 15px}
  .ct-wrap.pane-detail .ct-left{display:none}
  .ct-wrap.pane-detail .ct-right{display:block}

  /* ---- Κεφαλίδα: «‹ Πίσω» + τίτλος που δεν σπάει τη γραμμή ---- */
  .ct-head{align-items:center}
  .ct-back{border:none;background:rgba(255,255,255,.18);color:#fff;width:34px;height:34px;
    border-radius:10px;display:grid;place-items:center;flex:none;padding:0;cursor:pointer}
  .ct-back svg{transform:rotate(180deg)}   /* το `chev` δείχνει δεξιά */
  .ct-back:active{background:rgba(255,255,255,.3)}
  .ct-head h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ct-newbtn{padding:7px 11px}

  /* ---- Λίστα: μεγαλύτεροι στόχοι αφής + βελάκι «άνοιγμα» ---- */
  .ct-item{padding:12px 13px;gap:11px}
  .ct-item .cn{font-size:13.5px}
  .ct-item .cs{font-size:11.5px;margin-top:2px}
  .ct-av{width:38px;height:38px;font-size:13px}
  .ct-go{display:grid;place-items:center}
  .ct-cattabs button{padding:8px 4px;font-size:12px}
  .tagch{padding:4px 9px;font-size:11px}
  .tagadd{width:32px;height:32px}

  /* iOS: input με font-size <16px κάνει auto-zoom στο focus */
  .ct-search input,.ct-tagrow select,.ct-tagnew input,
  .ct-noterow input,.ct-noterow select,
  .ct-form input,.ct-form select,.ct-form textarea{font-size:16px}

  /* ---- Γρήγορες ενέργειες: πλέγμα με στοιβαγμένη ετικέτα (βάση: 27-epafes) ---- */
  .ct-qa{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px}
  .ct-qa-b{flex-direction:column;gap:5px;padding:11px 4px;border-radius:12px;font-size:11px;width:100%}
  .ct-qa-b svg{width:19px;height:19px}
  .ct-qa-b:hover{transform:none;box-shadow:none}
  /* Το εικονίδιο αντιγραφής δεν έχει hover στην αφή → μόνιμα ορατό, διακριτικά */
  .ct-fields .cp-ic{opacity:.5}
  /* Λίστα: το badge «τελευταία επαφή» δεν πρέπει να στριμώξει το όνομα */
  .ct-last{font-size:9px;padding:2px 5px;margin-left:5px}
  .ct-last-inline{flex:1 1 100%;margin:2px 0 0;font-size:10px}
  /* Πάνελ timeline: πιο σφιχτό στο κινητό */
  .ct-lbl{margin:14px 0 7px;padding-top:12px}
  .ct-panel{margin-top:15px;border-radius:13px}
  .ct-panel-h{padding:10px 12px;gap:8px}
  .ct-panel-b{padding:11px 12px 3px}
  /* Φίλτρο timeline: μεγαλύτεροι στόχοι αφής */
  .ct-tlf{gap:7px}
  .ct-tlf-b{padding:7px 13px;font-size:12px}
  .ct-tlf-b:hover{color:var(--muted);border-color:var(--border)}
  .ct-tlf-b.on:hover{color:#fff;border-color:var(--navy)}
  /* «Σε ποιον;»: τα 3 κανάλια πάνε σε δική τους σειρά, πλήρους πλάτους */
  .ct-pk-row{flex-wrap:wrap;gap:10px;padding:12px 13px}
  .ct-pk-ch{flex:1 1 100%;margin-left:45px;gap:8px}
  .ct-pk-b{flex:1;min-width:0;padding:9px 6px 8px}
  .ct-pk-b span{font-size:10.5px}
  .ct-pk-b:hover,a.ct-pk-row:hover{transform:none;box-shadow:none;background:#fff;border-color:var(--border)}
  .ct-pk-t span{white-space:normal}
  /* Επιλογή καναλιού: μία στήλη, οριζόντια γραμμή ανά κανάλι */
  .ct-msg-grid{grid-template-columns:1fr;gap:9px}
  .ct-msg-b{flex-direction:row;align-items:center;justify-content:flex-start;gap:13px;
    padding:13px 15px;text-align:left;flex-wrap:wrap}
  .ct-msg-b span{flex:1 1 100%;margin-left:47px;margin-top:-4px}
  .ct-msg-b:hover{transform:none;box-shadow:none}

  /* ---- Φόρμα: τα επιπλέον άτομα σε κουτί, ο «✕» σε δική του σειρά ---- */
  .ct-prow{grid-template-columns:1fr 1fr;gap:8px;padding:10px;margin-bottom:9px;
    border:1px solid var(--border);border-radius:11px;background:#fafbfd}
  .ct-prow>button{grid-column:1/-1;justify-self:end}
}

@media (max-width:600px){
  /* Καρτέλα: όνομα κάτω από το avatar δεν χρειάζεται — τα κουμπιά ενεργειών
     όμως θέλουν ολόκληρη γραμμή, αλλιώς στριμώχνουν τον τίτλο. */
  .ct-top{flex-wrap:wrap;gap:11px}
  .ct-acts{flex-direction:row;flex:1 1 100%}
  .ct-acts .btn{flex:1;justify-content:center}
  .ct-av-lg{width:46px;height:46px;font-size:15px}

  /* Φόρμα & καταχώρηση timeline: μία στήλη, κουμπί πλήρους πλάτους */
  .ct-2col,.ct-prow{grid-template-columns:1fr}
  .ct-noterow input,.ct-noterow select{flex:1 1 100%;min-width:0}
  .ct-noterow .btn{width:100%;justify-content:center}
}

/* ============================================================
   TABLET ΚΑΘΕΤΑ (601–900px) — αναλογίες topbar
   ------------------------------------------------------------
   Στο κινητό (≤600) η καρτέλα χρήστη απλώνει (flex:1 1 0%) και η
   αναζήτηση μαζεύεται σε φακό 44px, γιατί αλλιώς δεν χωρούν σε μία
   γραμμή. Σε tablet κάθετα (744/800/820/834) ο χώρος περισσεύει:
   η αναζήτηση γίνεται ΚΑΝΟΝΙΚΟ πεδίο και παίρνει ό,τι περισσεύει,
   η καρτέλα μαζεύεται στο περιεχόμενό της.
   Ισχύει και για κινητό ΟΡΙΖΟΝΤΙΑ (844×390) — εκεί επίσης χωράει.
   ============================================================ */
@media (min-width:601px) and (max-width:900px){
  /* Καρτέλα: όσο χρειάζεται, όχι όσο περισσεύει (το ellipsis μένει). */
  #topbar .user-chip{flex:0 1 auto;max-width:230px}

  /* Αναζήτηση: κανονικό πεδίο, μεγαλώνει με ό,τι περισσεύει. */
  #topbar .search{flex:1 1 0%;width:auto;min-width:120px;max-width:480px;height:46px}
  #topbar .search input{display:block}
  #topbar .search .sic{left:15px;right:auto;justify-content:flex-start;
    pointer-events:none;cursor:default;color:#98a0ad}

  /* Το .m-open (φακός → πλήρης γραμμή) δεν έχει νόημα εδώ: αν έμεινε από
     rotate σε στενότερο πλάτος, το εξουδετερώνουμε ώστε να μη σπάει γραμμή. */
  #topbar .search.m-open{order:2;flex:1 1 0%;width:auto;margin-top:0;height:46px}
}

/* ============================================================
   ΗΜΕΡΟΛΟΓΙΟ σε κινητό & tablet (≤900px)
   ------------------------------------------------------------
   Η ρίζα του «κόβονται οι μέρες» διορθώθηκε στο 15-calendar.css
   (minmax(0,1fr)). Εδώ κάνουμε το περιεχόμενο ΧΡΗΣΙΜΟ στο στενό
   πλέγμα: σε στήλη ~48px δεν χωράει κείμενο, σε ~100px χωράει.
   Ο μήνας πρέπει να χωράει ΟΛΟΚΛΗΡΟΣ, κάθετα και οριζόντια.
   ============================================================ */
@media (max-width:900px){
  .cal-toolbar{gap:7px;margin-bottom:10px}
  .cal-toolbar h2{min-width:0;flex:1 1 100%;font-size:15px}

  /* Εβδομάδα: 7 στήλες των 48px είναι άχρηστες → στοίβα καρτών. */
  .cal-week{grid-template-columns:1fr;gap:8px}
  .cal-wcol{min-height:0}

  .cal-dow{padding:6px 2px;font-size:10px}
  .cal-cell{padding:4px 2px;text-align:center}
  .cal-num{margin:0 auto 3px}
}

/* Κινητό (≤600): στήλη ~47px — ΚΟΥΚΚΙΔΕΣ αντί για κείμενο.
   Τα χρώματα των chips (task/note/rem/proj) μένουν, οπότε η κουκκίδα
   λέει ήδη το είδος· το tap στη μέρα ανοίγει την προβολή Ημέρας.
   Μόνο CSS — καμία αλλαγή στο dayChips(). */
@media (max-width:600px){
  .cal-cell{min-height:58px}
  .cal-num{width:20px;height:20px;font-size:11px}
  /* background:currentColor => η κουκκίδα παίρνει το ΧΡΩΜΑ ΚΕΙΜΕΝΟΥ κάθε τύπου
     (task/note/rem/proj), που είναι κορεσμένο — τα παστέλ φόντα των chips είναι
     αόρατα σε 7px. Μηδέν νέα χρώματα προς συντήρηση. */
  .cal-chip{display:inline-block;width:7px;height:7px;min-width:0;
    padding:0;margin:0 1.5px;border-radius:50%;font-size:0;line-height:0;
    vertical-align:middle;overflow:hidden;border:none}
  /* ΕΙΔΙΚΟΤΗΤΑ: το .cal-chip.task/.note/.rem/.proj είναι (0,2,0) και το media
     query ΔΕΝ προσθέτει ειδικότητα — χρειάζεται ίδιο βάρος + μεταγενέστερη θέση. */
  .cal-cell .cal-chip{background:currentColor}
  .cal-chip svg{display:none}
  .cal-more{font-size:8.5px;padding:0;line-height:1.3}
}

/* Tablet κάθετα (601–900): στήλη ~100px — χωράει κείμενο, φεύγει
   μόνο το εικονίδιο για να κερδίσουμε πλάτος. */
@media (min-width:601px) and (max-width:900px){
  .cal-cell{min-height:84px}
  .cal-chip{font-size:9.5px;padding:2px 4px}
  .cal-chip svg{display:none}
  .cal-more{font-size:9px}
}

/* Κεφαλίδα βάθους (μονοπάτι/λωρίδες): σε στενή οθόνη ο κάθε κρίκος κόβεται
   ώστε να μη σπάσει η γραμμή σε τρεις σειρές και φάει την κεφαλίδα. */
@media (max-width:600px){
  .modal-h.mh-lvl{padding-left:20px}
  .mh-spine i{width:4px}
  .mh-crumb{font-size:10px;gap:4px;flex-wrap:nowrap;overflow:hidden}
  .mh-crumb a{max-width:110px}
  .mh-lv{font-size:9.5px;padding:1px 7px}
}

/* «Η δουλειά μου σε αυτό το έργο»: ίδια έμφαση, μικρότερη κλίμακα */
@media (max-width:600px){
  .mw-head{padding:11px 12px;gap:10px}
  .mw-ic{width:32px;height:32px;border-radius:10px}
  .mw-ht b{font-size:13.5px}
  .mw-pct{font-size:19px}
  .mywork .task-row{padding:12px 12px 12px 15px}
  .mywork .task-row .tt{font-size:14px}
  .mywork .task-row .prog-wrap{width:auto}
}

/* Λίστα παρακολούθησης: σε στενή οθόνη η αναζήτηση πέφτει κάτω από τις
   καρτέλες σε όλο το πλάτος (στη δεξιά γωνία δεν χωράει). */
@media (max-width:600px){
  .wl-bar{gap:8px;padding:10px 12px 4px}
  .wl-find{flex:1 1 100%;margin-left:0;min-width:0}
  .wl-hit{padding-left:22px}
}

/* ---------- ΒΟΗΘΕΙΑ (κινητό) ---------- */
@media (max-width:900px){
  .hlp-hero{border-radius:14px;padding:24px 14px 20px}
  .hlp-hero h1{font-size:22px}
  .hlp-hero p{font-size:12.5px}
  .hlp-search{padding:11px 14px;border-radius:13px}
  .hlp-search input{font-size:16px}   /* <16px → ο iOS Safari κάνει zoom στο focus */
  .hlp-grid{grid-template-columns:1fr;gap:13px}
  .hlp-card .hlp-cover{aspect-ratio:2/1}
  .hlp-art h1{font-size:22px}
  .hlp-artcov .hlp-cover{height:140px}
  .hlp-body{font-size:15.5px;line-height:1.7}
  .hlp-body h2{font-size:17.5px;margin:24px 0 8px}
  .hlp-lead{font-size:14px}
  .hlp-row{padding:10px 8px}
  .hlp-row .ic{width:34px;height:34px}
}

/* =====================================================================
   ΠΛΑΤΟΣ DASHBOARD ΣΕ ΚΙΝΗΤΟ (Σεπ 2026)
   Η ρίζα (grid `1fr` → `minmax(0,1fr)`) διορθώθηκε στο 20-hero. Εδώ μένει το
   δεύτερο μισό: με τη στήλη να μπορεί πια να στενέψει, οι κεφαλίδες καρτών
   (flex, nowrap) θα ξεχείλιζαν μέσα στην κάρτα — τις αφήνουμε να τυλίγονται.
===================================================================== */
@media (max-width:900px){
  .dgrid,.dgrid>.stack,.dgrid .card,main>.card{min-width:0}
  .card-h{flex-wrap:wrap;row-gap:5px}
  .card-h>*{min-width:0}
}
@media (max-width:600px){
  /* Chips του hero: πλέγμα 2 στηλών με ΙΣΑ πλάτη αντί για «ό,τι χωρέσει» —
     το τελευταίο μονό πιάνει ολόκληρη τη γραμμή, καμία ραγισμένη σειρά. */
  .hkpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}
  .hkpis>.hk{min-width:0;padding:9px 11px;gap:8px}
  .hkpis>.hk>div{min-width:0}
  .hkpis>.hk:last-child:nth-child(odd){grid-column:1/-1}
  .hki{width:28px;height:28px;border-radius:8px}
  .hkv{font-size:17px}
  .hkl{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .hero .hactions{margin-left:0;width:100%}
}

/* =====================================================================
   ΣΤΟΙΧΕΙΑ TASK ΣΕ ΚΙΝΗΤΟ (Σεπ 2026)
   Το `.info-grid` έμενε 2 στηλών ακόμη και στα 390px, και το «Ανάθεση σε»
   είχε τα ονόματα σε inline `white-space:nowrap` → η πρώτη στήλη κλείδωνε
   στα 251px, η δεύτερη («Τμήμα», «Δημιουργήθηκε από») στα 121px, και το
   σώμα του popup σκρόλαρε οριζόντια. Μία στήλη + ονόματα που τυλίγονται.
===================================================================== */
@media (max-width:600px){
  .info-grid{grid-template-columns:minmax(0,1fr)}
  .info-cell .v{overflow-wrap:anywhere}
  .ig-p{white-space:normal}
}

/* ---- iPhone: περιοχή ώρας / Dynamic Island (safe area) ----
   Σήμερα status-bar-style = `default` → το iOS κρατά τη μπάρα ώρας ΕΞΩ από τη σελίδα και το env()=0 (όλα τα παρακάτω
   = 0). Μένουν ως δίχτυ ασφαλείας: αν μια συσκευή τρέχει ακόμη με `black-translucent` (παλιά εγκατάσταση), ό,τι
   ακουμπά την κορυφή κατεβαίνει κατά --sat και η λωρίδα κρύβει ό,τι θα περνούσε κάτω από την ώρα.
   Android/browser/desktop: env()=0 → καμία αλλαγή. Δοκιμή χωρίς iPhone: `?iphone` (36-mobile.js, #iosSim). */
:root{--sat:env(safe-area-inset-top,0px)}
@media (max-width:900px){
  #topbar{padding-top:calc(9px + var(--sat))}
  aside.sidebar-wrap{padding-top:var(--sat)}
  #chatPanel{padding-top:var(--sat)}
  #notifDrop{top:calc(62px + var(--sat))}
  .overlay{padding-top:calc(12px + var(--sat))}
  .upd-bar{padding-top:calc(7px + var(--sat))}
  /* Με τη μπάρα «νέα έκδοση» το κενό το έχει ήδη εκείνη (μετράει στο --updh) */
  body.has-upd #topbar{padding-top:9px}
  body.has-upd aside.sidebar-wrap,body.has-upd #chatPanel{padding-top:0}
  body.has-upd #notifDrop{top:calc(62px + var(--updh,40px))}
  /* Γυάλινο chat (77): κεφαλίδα & αναζήτηση είναι position:absolute → ΑΓΝΟΟΥΝ το padding-top του panel.
     Κατεβαίνουν ρητά κατά --sat (με μπάρα έκδοσης το panel ξεκινά ήδη κάτω από αυτήν). */
  #chatPanel.cx-glass .chat-head{top:calc(10px + var(--sat))}
  #chatPanel.cx-glass .cs-sbar{top:calc(70px + var(--sat))}
  body.has-upd #chatPanel.cx-glass .chat-head{top:10px}
  body.has-upd #chatPanel.cx-glass .cs-sbar{top:70px}
  /* ΣΥΜΠΑΓΗΣ λωρίδα κάτω από την ώρα: το iOS θολώνει ό,τι περνά από κάτω (σελίδα, κάρτες στο scroll) →
     «ομίχλη». Με το ΙΔΙΟ φόντο της εφαρμογής (και τις κηλίδες του Liquid Glass, σε μέγεθος οθόνης) δεν
     περνά τίποτα από κάτω και δεν φαίνεται σαν ξεχωριστή μπάρα. Πάνω από τις σελίδες, κάτω από μενού(120)/
     chat(140)/ειδοποιήσεις/παράθυρα — εκείνα έχουν δικό τους φόντο εκεί. Android/desktop: ύψος 0. */
  body::before{content:"";position:fixed;top:0;left:0;right:0;height:var(--sat);z-index:100;pointer-events:none;
    background:inherit;background-size:100vw 100vh;background-position:0 0;background-repeat:no-repeat}
}
@media (max-width:520px){ .ai-win{padding-top:var(--sat)} }
/* Προσομοίωση μπάρας κατάστασης iPhone (μόνο με ?iphone στη διεύθυνση) */
#iosSim{position:fixed;top:0;left:0;right:0;height:var(--sat);z-index:2147483000;pointer-events:none;display:flex;
  align-items:center;justify-content:space-between;padding:6px 26px 0;font:600 15px/1 -apple-system,system-ui,sans-serif;color:#000;
  background:rgba(238,241,247,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);outline:1px dashed rgba(225,29,72,.55)}
#iosSim i{position:absolute;left:50%;top:calc(var(--sat) / 2 - 16px);translate:-50% 0;width:122px;height:34px;border-radius:20px;background:#000}
#iosSim span{font-size:12px;letter-spacing:.5px}
#iosSim.notch i{top:0;width:156px;height:calc(var(--sat) - 14px);border-radius:0 0 18px 18px}
#iosSim.classic{padding:0 10px;font-size:12px;background:rgba(238,241,247,.8)}
#iosSim.classic i{display:none}
/* =====================================================================
   GAMIFICATION — Ευχαριστώ / Μπράβο
   Μπράβο = πορτοκαλί (ταυτότητα task) · Ευχαριστώ = teal (ταυτότητα αναγκών)
===================================================================== */

/* ---- Μπλοκ στην καρτέλα ατόμου ---- */
.kd-box{margin-top:14px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.kd-box-h{display:flex;align-items:center;gap:7px;padding:9px 13px;font-size:11px;font-weight:800;
  letter-spacing:.5px;text-transform:uppercase;color:#7a3a12;background:linear-gradient(115deg,#fdeee6,#fdf3df)}
.kd-counts{display:flex;gap:10px;padding:12px 13px 4px}
.kd-load{font-size:12px;color:var(--muted)}
.kd-cnt{flex:1;border-radius:11px;padding:10px 12px;display:flex;flex-direction:column;gap:1px}
.kd-cnt .n{font-size:23px;font-weight:800;line-height:1}
.kd-cnt small{font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;opacity:.8}
.kd-cb{background:#fdeee6;color:#9a3412}
.kd-ct{background:#d6f5f1;color:#0b6f66}
.kd-recent{padding:4px 13px 2px}
.kd-row{font-size:11.5px;line-height:1.55;color:#42506a;display:flex;align-items:baseline;gap:7px}
.kd-row b{color:var(--text)}
.kd-row i{color:var(--muted);font-style:italic}
.kd-dot{width:7px;height:7px;border-radius:50%;flex:none;transform:translateY(-1px)}
.kd-empty{font-size:11.5px;color:var(--muted);padding:2px 0 4px}
.kd-actions{display:flex;gap:8px;padding:11px 13px 13px}
.kd-actions .btn{flex:1;justify-content:center;border:none;color:#fff;font-weight:700}
.kd-b{background:linear-gradient(135deg,#9a3412,#f97316);box-shadow:0 2px 8px rgba(154,52,18,.28)}
.kd-t{background:linear-gradient(135deg,#0b6f66,#14b8a6);box-shadow:0 2px 8px rgba(11,111,102,.28)}
.kd-b:hover,.kd-t:hover{filter:brightness(1.07)}

/* ---- Popup αποστολής ---- */
.kd-pick{display:flex;gap:10px;margin-bottom:14px}
.kd-opt{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:11px 12px;
  border:1.5px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;font-family:inherit;transition:.14s}
.kd-opt b{font-size:13px;color:var(--text)}
.kd-opt small{font-size:10.5px;color:var(--muted)}
.kd-opt .kd-ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:#fff;margin-bottom:5px}
.kd-opt:hover{border-color:#c9d2e0}
.kd-opt.on{border-color:#f97316;background:#fffaf6;box-shadow:0 0 0 3px rgba(249,115,22,.14)}
.kd-opt.on:nth-child(2){border-color:#14b8a6;background:#f4fffd;box-shadow:0 0 0 3px rgba(20,184,166,.14)}
.kd-lbl{display:block;font-size:11.5px;font-weight:700;color:#42506a;margin:0 0 6px}
.kd-hint{margin-top:10px;font-size:11px;line-height:1.5;color:var(--muted);display:flex;align-items:flex-start;gap:5px}
.kd-hint svg{flex:none;margin-top:2px}

/* ---- Γιορτή στο κέντρο της οθόνης ---- */
.kd-cel{position:fixed;inset:0;z-index:300;display:grid;place-items:center;pointer-events:none;
  background:radial-gradient(closest-side,rgba(15,23,40,.32),rgba(15,23,40,0) 72%);
  animation:kdCelIn .32s cubic-bezier(.2,.9,.25,1)}
.kd-cel.out{animation:kdCelOut .5s ease forwards}
.kd-cel-card{pointer-events:auto;cursor:pointer;background:#fff;border-radius:20px;padding:26px 34px 22px;
  text-align:center;box-shadow:0 26px 70px rgba(15,23,40,.4);border:1px solid rgba(255,255,255,.6);
  max-width:min(340px,86vw);animation:kdPop .5s cubic-bezier(.2,1.15,.3,1)}
.kd-cel-burst{width:74px;height:74px;border-radius:24px;margin:0 auto 13px;display:grid;place-items:center;color:#fff;
  box-shadow:0 10px 26px color-mix(in srgb,var(--kc) 45%,transparent);animation:kdBurst 2.4s ease-in-out infinite}
.kd-cel-t{font-size:23px;font-weight:800;color:var(--kc);line-height:1.1}
.kd-cel-s{font-size:13px;color:var(--muted);margin-top:5px}
.kd-cel-s b{color:var(--text)}
.kd-cel-n{margin-top:11px;font-size:12.5px;line-height:1.55;color:#42506a;background:var(--bg);
  border-radius:11px;padding:9px 12px;font-style:italic}
/* Η κάρτα ΜΕΝΕΙ μέχρι να την κλείσει ο χρήστης (✕ / κλικ έξω / Esc) */
.kd-cel-card{position:relative}
.kd-cel-x{position:absolute;top:9px;right:9px;width:28px;height:28px;border:none;border-radius:9px;
  background:var(--bg);color:var(--muted);cursor:pointer;display:grid;place-items:center;transition:.14s}
.kd-cel-x:hover{background:#e6eaf2;color:var(--text)}
@keyframes kdCelIn{from{opacity:0}to{opacity:1}}
@keyframes kdCelOut{from{opacity:1}to{opacity:0}}
@keyframes kdPop{0%{opacity:0;transform:scale(.7) translateY(14px)}60%{opacity:1;transform:scale(1.03)}100%{transform:none}}
@keyframes kdBurst{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.07) rotate(-4deg)}}
@media (prefers-reduced-motion: reduce){
  .kd-cel,.kd-cel-card,.kd-cel-burst{animation:none!important}
}

/* ---- Πάνελ ρυθμίσεων (God Mode → Gamification)· επαναχρησιμοποιεί τα .tr-* ---- */
.gm-badge{margin-left:auto;font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;
  padding:3px 10px;border-radius:999px;background:var(--green-soft);color:#12603a;border:1px solid #a9e0c1}
.gm-badge.off{background:#eef1f6;color:#66738a;border-color:var(--border)}
.gm-matrix{width:100%;border-collapse:collapse;font-size:11.5px;margin-top:8px;background:#fff;
  border:1px solid var(--border);border-radius:10px;overflow:hidden}
.gm-matrix th,.gm-matrix td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--border)}
.gm-matrix th{background:var(--bg);font-weight:800;color:#42506a;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px}
.gm-matrix tr:last-child td{border-bottom:none}
.gm-yes{color:#12603a;font-weight:700}
.gm-no{color:var(--muted)}

/* ---- Ειδοποίηση kudos ---- */
.notif .ic.kudos{background:#fdeee6;color:#c2410c}

@media (max-width:600px){
  .kd-pick{flex-direction:column}
  .kd-counts{flex-direction:row}
  .kd-actions{flex-direction:column}
  .kd-cel-card{padding:22px 24px 18px}
  .kd-cel-burst{width:64px;height:64px;border-radius:20px}
  .kd-cel-t{font-size:20px}
}

/* Ετικέτα δίπλα στα sliders ορίων */
.kd-lim-l{flex:none;min-width:76px;font-size:12px;font-weight:700;color:#42506a}

/* Πρόσκληση αναγνώρισης όταν οι μετρητές είναι κρυμμένοι για τους άλλους */
.kd-promo{display:flex;align-items:flex-start;gap:9px;padding:13px 13px 4px;
  font-size:12.5px;line-height:1.55;color:#42506a}
.kd-promo svg{flex:none;margin-top:1px;color:#c2410c}
.kd-promo b{color:var(--text)}

/* =====================================================================
   ΟΡΟΣΗΜΑ — μετάλλια με βαθμίδα, λάμψη και κλείδωμα
===================================================================== */
.kd-cnt{border:none;font-family:inherit;text-align:left;cursor:pointer;transition:.14s;position:relative}
.kd-cnt:hover{transform:translateY(-2px);filter:brightness(1.03);box-shadow:0 4px 14px rgba(21,36,59,.14)}
.kd-cm{background:linear-gradient(140deg,#f3ecff,#ede9fe);color:#5b21b6}

.ms-head{background:linear-gradient(120deg,#4c1d95,#7c3aed 50%,#c026d3 130%);color:#fff;border-bottom:none}
.ms-sec{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.5px;
  text-transform:uppercase;color:#5b21b6;margin:16px 0 10px}
.ms-sec .cnt{background:#f3ecff;color:#5b21b6;border:1px solid #ddd0fb}
.ms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}

.ms-badge{border:1px solid var(--border);border-radius:14px;padding:14px 11px 11px;text-align:center;
  background:#fff;transition:.16s}
.ms-badge.earned{border-color:var(--mr);box-shadow:0 3px 14px color-mix(in srgb,var(--mr) 24%,transparent)}
.ms-badge.earned:hover{transform:translateY(-3px);box-shadow:0 8px 24px color-mix(in srgb,var(--mr) 34%,transparent)}
.ms-badge.locked{background:#fbfcfe;border-style:dashed}

/* Το μετάλλιο: εξάγωνο με βάθος, εσωτερικό δαχτυλίδι και λάμψη που περνά */
.ms-medal{width:62px;height:62px;margin:0 auto 9px;position:relative;display:grid;place-items:center;
  border-radius:19px;color:#fff;overflow:hidden;
  background:var(--mg,linear-gradient(140deg,#94a3b8,#e2e8f0));
  box-shadow:0 6px 18px color-mix(in srgb,var(--mr,#94a3b8) 42%,transparent),
             inset 0 2px 0 rgba(255,255,255,.55), inset 0 -3px 8px rgba(0,0,0,.18)}
.ms-medal::after{content:"";position:absolute;inset:5px;border-radius:14px;
  border:1.5px solid rgba(255,255,255,.4);pointer-events:none}
.ms-medal svg{position:relative;z-index:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}
.ms-shine{position:absolute;top:-60%;left:-120%;width:60%;height:220%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);
  transform:rotate(22deg);animation:msShine 4.5s ease-in-out infinite}
@keyframes msShine{0%,72%{left:-120%}88%,100%{left:150%}}

.ms-badge.locked .ms-medal{background:#e6eaf2;color:#9aa6bb;box-shadow:inset 0 2px 0 rgba(255,255,255,.6)}
.ms-lock{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;border-radius:50%;
  background:#fff;color:#8894ab;display:grid;place-items:center;box-shadow:0 2px 6px rgba(21,36,59,.22)}
.ms-t{font-size:12.5px;font-weight:800;color:var(--text);line-height:1.25}
.ms-badge.earned .ms-t{color:var(--mc)}
.ms-d{font-size:10.5px;color:var(--muted);line-height:1.4;margin-top:3px;min-height:29px}
.ms-when{font-size:10px;font-weight:700;color:var(--muted);margin-top:6px}
.ms-prog{height:5px;background:#e9edf3;border-radius:3px;overflow:hidden;margin-top:8px}
.ms-prog i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#a78bfa,#7c3aed)}
.ms-note{margin-top:16px;background:#f3ecff;border:1px solid #ddd0fb;border-radius:10px;padding:10px 12px;
  font-size:11.5px;line-height:1.55;color:#4c1d95}

/* ---- Αναλυτική λίστα αναγνωρίσεων ---- */
.kd-tabs{margin-bottom:12px}
.kdv-cnt{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}
.kdv-row{display:flex;align-items:flex-start;gap:10px;padding:10px 2px;border-bottom:1px solid var(--border)}
.kdv-row:last-child{border-bottom:none}
.kdv-ic{width:28px;height:28px;border-radius:9px;flex:none;display:grid;place-items:center;color:#fff}
.kdv-main{flex:1;min-width:0}
.kdv-who{font-size:12.5px;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.kdv-dept{font-size:10.5px;color:var(--muted)}
.kdv-note{font-size:11.5px;line-height:1.5;color:#42506a;font-style:italic;margin-top:2px}
.kdv-note.muted{color:#9aa6bb;font-style:normal}
.kdv-meta{flex:none;text-align:right;font-size:10.5px;line-height:1.5}
.kdv-meta b{display:block;font-size:11px}
.kdv-meta span{color:var(--muted)}

/* ---- Γιορτή ορόσημου: πιο μεγαλειώδης από την απλή αναγνώριση ---- */
.ms-cel-card{--kc:var(--mc);padding:30px 34px 24px;max-width:min(380px,88vw);overflow:hidden}
.ms-rays{position:absolute;inset:-40%;pointer-events:none;opacity:.16;
  background:repeating-conic-gradient(from 0deg, var(--mr) 0deg 8deg, transparent 8deg 20deg);
  animation:msSpin 22s linear infinite}
@keyframes msSpin{to{transform:rotate(360deg)}}
.ms-cel-medal{position:relative;z-index:1;width:96px;height:96px;margin:0 auto 15px;border-radius:28px;
  display:grid;place-items:center;color:#fff;overflow:hidden;background:var(--mg);
  box-shadow:0 14px 34px color-mix(in srgb,var(--mr) 48%,transparent),
             inset 0 3px 0 rgba(255,255,255,.55), inset 0 -4px 10px rgba(0,0,0,.2);
  animation:msPulse 2.6s ease-in-out infinite}
.ms-cel-medal::after{content:"";position:absolute;inset:7px;border-radius:21px;border:2px solid rgba(255,255,255,.42)}
@keyframes msPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.ms-cel-k{position:relative;z-index:1;font-size:10.5px;font-weight:800;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--mr)}
.ms-cel-t{position:relative;z-index:1;font-size:25px;font-weight:800;color:var(--mc);line-height:1.15;margin-top:4px}
.ms-cel-d{position:relative;z-index:1;font-size:12.5px;color:var(--muted);margin-top:7px;line-height:1.5}
.ms-cel-tier{position:relative;z-index:1;display:inline-block;margin-top:13px;padding:4px 14px;border-radius:999px;
  font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#fff;background:var(--mg);
  box-shadow:0 3px 10px color-mix(in srgb,var(--mr) 40%,transparent)}

/* ---- Ειδοποίηση ορόσημου ---- */
.notif .ic.milestone{background:#f3ecff;color:#7c3aed}

@media (prefers-reduced-motion: reduce){
  .ms-shine,.ms-rays,.ms-cel-medal{animation:none!important}
}
@media (max-width:600px){
  .ms-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}
  .ms-medal{width:54px;height:54px;border-radius:17px}
  .ms-cel-medal{width:82px;height:82px;border-radius:24px}
  .ms-cel-t{font-size:21px}
  .kdv-meta{text-align:left}
}

/* Υπόδειξη ότι η κάρτα γιορτής είναι κλικαρίσιμη → ανοίγει την αναλυτική προβολή */
.kd-cel-more,.ms-cel-more{position:relative;z-index:1;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;gap:5px;
  font-size:11.5px;font-weight:700;opacity:.75}
.kd-cel-more{color:var(--kc)}
.ms-cel-more{color:var(--mr)}
.kd-cel-card{cursor:pointer}
.kd-cel-card:hover .kd-cel-more,.ms-cel-card:hover .ms-cel-more{opacity:1}
.ms-cel-card:hover .ms-cel-more{color:var(--mc)}
/* =====================================================================
   TRANSITIONS — άνοιγμα/κλείσιμο popups & πάνελ (στιλ iOS)
   ---------------------------------------------------------------------
   ΜΙΑ πηγή αλήθειας: οι CSS μεταβλητές παρακάτω. Κάθε animation τις
   διαβάζει, οπότε η αλλαγή ρύθμισης = setProperty στο :root — κανένα
   re-render, κανένα module δεν ξέρει ότι υπάρχει ρύθμιση.
   Οι κλάσεις τις βάζει το 38-transitions.js στα roots:
     .tr-enter   → μπήκε ΝΕΟ περιεχόμενο σε άδειο root (άνοιγμα)
     .tr-closing → φεύγει (το JS καθαρίζει το DOM μετά από --tr-out)
   Το `.tr-enter` υπάρχει επειδή πολλά popup κάνουν re-render στον εαυτό
   τους (π.χ. renderCardModal σε κάθε checkbox) — χωρίς αυτό το animation
   θα ξανάπαιζε σε κάθε κλικ.
   ΜΟΝΟ transform/opacity → GPU, μηδέν layout, μηδέν κόστος.
===================================================================== */
:root{
  --tr-in:260ms;            /* διάρκεια ανοίγματος */
  --tr-out:170ms;           /* κλείσιμο: πιο γρήγορο = αίσθηση απόκρισης */
  --tr-ein:cubic-bezier(.32,.72,0,1);   /* ξεκινά γρήγορα, «κάθεται» απαλά */
  --tr-eout:cubic-bezier(.4,0,1,1);
  --tr-lift:14px;           /* μετατόπιση εισόδου */
  --tr-scale:.965;          /* κλίμακα εισόδου */
  --tr-lift-o:8px;
  --tr-scale-o:.985;
}

@keyframes trOvIn{from{opacity:0}to{opacity:1}}
@keyframes trOvOut{from{opacity:1}to{opacity:0}}
@keyframes trWinIn{from{opacity:0;transform:translateY(var(--tr-lift)) scale(var(--tr-scale))}
  to{opacity:1;transform:none}}
@keyframes trWinOut{from{opacity:1;transform:none}
  to{opacity:0;transform:translateY(var(--tr-lift-o)) scale(var(--tr-scale-o))}}

/* ---- ΚΡΙΣΙΜΟ: μηδενισμός των base animations των modules ----
   Το `.ai-win`/`.ai-ov` (33-ai), το `.wp-ov` (06-κειμενογράφος) και το
   `.ov2` (27-επαφές) έχουν ΔΙΚΟ ΤΟΥΣ `animation` στη βάση τους. Όσο υπάρχει
   το `.tr-enter` υπερισχύει ο δικός μας κανόνας — μόλις όμως αφαιρεθεί, το
   `animation-name` ΕΠΙΣΤΡΕΦΕΙ στο δικό τους και ο browser ΞΑΝΑΤΡΕΧΕΙ την
   κίνηση: δεύτερη «είσοδος» ~340ms μετά το άνοιγμα (το «refresh» του Ai και
   των popup 2ου επιπέδου). Τα μηδενίζουμε — την είσοδο την κάνει το tr-enter. */
.ai-ov,.ai-win,.wp-ov,.overlay.ov2{animation:none}

/* ---- Άνοιγμα (μόνο όταν το root ήταν άδειο) ---- */
.tr-enter>.overlay,.tr-enter>.ai-ov,.tr-enter>.wp-ov{animation:trOvIn var(--tr-in) ease}
.tr-enter>.overlay>.modal,.tr-enter>.ai-ov>.ai-win,.tr-enter>.wp-ov>.wp{
  animation:trWinIn var(--tr-in) var(--tr-ein)}

/* ---- «Δεύτερη ανανέωση» στο ΑΝΟΙΓΜΑ — ΔΙΟΡΘΩΣΗ ----
   Πολλά popup έχουν δικά τους transitions που ξεκινούν τη στιγμή που
   προσαρτώνται και «έπαιζαν» πάνω στο animation εισόδου, σαν δεύτερο render:
     · `.modal{transition:width .22s, max-height .22s}` (19-modal) — τα
       ctRender/fdRender/fitTaskModal ορίζουν μέγεθος με JS, και όταν το
       περιεχόμενο γεμίζει (π.χ. lazy λίστες σε rAF) το παράθυρο «πηδούσε».
     · `.ai-sugbar{transition:max-height .24s}` (33-ai) — η μπάρα έτοιμων
       ερωτήσεων ξεδιπλωνόταν αμέσως μετά την εμφάνιση του βοηθού Ai.
   Όσο διαρκεί η είσοδος: ΚΑΝΕΝΑ transition μέσα στο παράθυρο. Μετά, όλα
   επανέρχονται κανονικά. */
.tr-enter>.overlay>.modal,.tr-enter>.ai-ov>.ai-win,.tr-enter>.wp-ov>.wp,
.tr-enter>.overlay>.modal *,.tr-enter>.ai-ov>.ai-win *,.tr-enter>.wp-ov>.wp *{
  transition:none!important}

/* ---- Κλείσιμο (το JS κρατά το DOM μέχρι να τελειώσει) ---- */
.tr-closing>.overlay,.tr-closing>.ai-ov,.tr-closing>.wp-ov{
  animation:trOvOut var(--tr-out) ease forwards;pointer-events:none}
.tr-closing>.overlay>.modal,.tr-closing>.ai-ov>.ai-win,.tr-closing>.wp-ov>.wp{
  animation:trWinOut var(--tr-out) var(--tr-eout) forwards}

/* ---- Στιλ «άνοιγμα από το σημείο αφής» ----
   Καθαρό scale με transform-origin στο σημείο του κλικ. Οι --tr-ox/--tr-oy
   μπαίνουν από το JS στο ROOT και κληρονομούνται (custom properties), οπότε
   επιβιώνουν των re-render και ισχύουν και στο κλείσιμο: το παράθυρο μαζεύεται
   πίσω εκεί απ' όπου άνοιξε. Χωρίς κλικ → fallback 50% 50% (κέντρο). */
/* ΔΥΟ ξεχωριστές animations (κλίμακα + διαφάνεια) αντί για μία με ενδιάμεσο
   keyframe: έτσι η καμπύλη της κλίμακας μένει ΚΑΘΑΡΗ (ένα keyframe στη μέση
   θα την έσπαγε σε δύο τμήματα) και η διαφάνεια προλαβαίνει να κλείσει στο
   ~42% → βλέπεις το παράθυρο να ΜΕΓΑΛΩΝΕΙ αντί απλώς να εμφανίζεται. */
@keyframes trZoomIn{from{transform:scale(var(--tr-scale))}to{transform:none}}
@keyframes trZoomOut{from{transform:none}to{transform:scale(var(--tr-scale-o))}}
@keyframes trFadeIn{from{opacity:0}to{opacity:1}}
@keyframes trFadeOut{from{opacity:1}to{opacity:0}}
body.tr-st-origin .tr-enter>.overlay>.modal,
body.tr-st-origin .tr-enter>.ai-ov>.ai-win,
body.tr-st-origin .tr-enter>.wp-ov>.wp{
  transform-origin:var(--tr-ox,50%) var(--tr-oy,50%);
  will-change:transform,opacity;
  animation:trZoomIn var(--tr-in) var(--tr-ein) both,
            trFadeIn calc(var(--tr-in) * 0.42) ease-out both}
body.tr-st-origin .tr-closing>.overlay>.modal,
body.tr-st-origin .tr-closing>.ai-ov>.ai-win,
body.tr-st-origin .tr-closing>.wp-ov>.wp{
  transform-origin:var(--tr-ox,50%) var(--tr-oy,50%);
  animation:trZoomOut var(--tr-out) var(--tr-eout) both,
            trFadeOut var(--tr-out) ease-in both}
/* Το σκούρο φόντο μπαίνει ΠΙΟ ΑΡΓΑ από το παράθυρο: η διαδρομή φαίνεται
   πάνω στη φωτεινή σελίδα αντί να «χάνεται» μέσα στο σκοτάδι. */
body.tr-st-origin .tr-enter>.overlay{animation-duration:calc(var(--tr-in) * 1.15)}
/* Σε κινητό ΠΟΤΕ origin-zoom (το JS ήδη γυρίζει σε «φύλλο» — δικλείδα ασφαλείας) */
@media (max-width:900px){
  body.tr-st-origin .tr-enter>.overlay>.modal,body.tr-st-origin .tr-closing>.overlay>.modal{
    transform-origin:center;animation-name:trWinIn}
  body.tr-st-origin .tr-closing>.overlay>.modal{animation-name:trWinOut}
}

/* ---- Spotlight: ίδια καμπύλη με τα υπόλοιπα (αντικαθιστά το spotIn) ---- */
.spot-ov{animation:trOvIn var(--tr-in) ease}
.spot-box{animation:trWinIn var(--tr-in) var(--tr-ein)}

/* ---- Πάνελ που ζουν πάντα στο DOM: transition, όχι animation ----
   ΠΡΟΣΟΧΗ: μόνο `transform` — το σκέτο `transition:.22s` του 17-chat-panel
   κινούσε ΚΑΘΕ ιδιότητα (top/width), που σε mobile προκαλεί layout jank. */
#chatPanel{transition:transform var(--tr-in) var(--tr-ein)}
aside.sidebar-wrap{transition:transform var(--tr-in) var(--tr-ein)}
.m-nav-ov{transition:opacity var(--tr-in) ease}
.m-sheet{animation:mSheetUp var(--tr-in) var(--tr-ein)}
#notifDrop.open{animation:trWinIn var(--tr-in) var(--tr-ein)}

/* ---- Καθολικός διακόπτης (God Mode) + σεβασμός της συσκευής ----
   Το `prefers-reduced-motion` υπερισχύει ΠΑΝΤΑ της ρύθμισης — χρήστες με
   ευαισθησία στην κίνηση δεν πρέπει να εξαρτώνται από τον διαχειριστή. */
body.tr-off .tr-enter>.overlay,body.tr-off .tr-enter>.ai-ov,body.tr-off .tr-enter>.wp-ov,
body.tr-off .tr-enter>.overlay>.modal,body.tr-off .tr-enter>.ai-ov>.ai-win,body.tr-off .tr-enter>.wp-ov>.wp,
body.tr-off .spot-ov,body.tr-off .spot-box,body.tr-off #notifDrop.open,body.tr-off .m-sheet{animation:none}
body.tr-off #chatPanel,body.tr-off aside.sidebar-wrap,body.tr-off .m-nav-ov{transition:none}

/* =====================================================================
   «Μικρή ανανέωση» μετά το κλείσιμο — ΔΙΟΡΘΩΣΗ
   ---------------------------------------------------------------------
   Το closeModal() καλεί renderMain(), και το 20-hero έβαζε `animation:rise`
   σε ΚΑΘΕ hero/κάρτα — άρα όλο το περιεχόμενο «ξαναέμπαινε» σε κάθε
   re-render. Πριν ήταν αόρατο (γινόταν την ίδια στιγμή με το ακαριαίο
   κλείσιμο)· με το animated κλείσιμο τρέχει ~200ms αργότερα και φαίνεται
   σαν refresh της σελίδας.
   ΛΥΣΗ: η είσοδος περιεχομένου παίζει ΜΟΝΟ όταν αλλάζει όντως το view
   (κλάση `main-fresh`, την βάζει το 38-transitions πάνω στο renderMain).
   Ίδια φιλοσοφία με το υπάρχον `body.rt-quiet` των realtime ενημερώσεων.
===================================================================== */
.hero,.dgrid>.stack>*,#main>.card,.dept-grid>*,.ev-card{animation:none}

/* =====================================================================
   ΕΦΕ ΠΛΟΗΓΗΣΗΣ (πλαϊνό μενού → full-screen οθόνες)
   ---------------------------------------------------------------------
   Παίζει ΜΟΝΟ όταν αλλάζει το state.view (κλάση `main-fresh`) — δηλαδή σε
   πραγματική πλοήγηση, ΟΧΙ σε εναλλαγή tab, live search ή realtime.
   Στιλ = κλάση `nv-*` στο body· παράμετροι = μεταβλητές `--nv-*`.
   Μόνο είσοδος: το renderMain αντικαθιστά το innerHTML ακαριαία, οπότε
   δεν υπάρχει «παλιά» οθόνη για να βγει — όπως και στο rise που υπήρχε.
===================================================================== */
:root{--nv-dur:340ms;--nv-ease:cubic-bezier(.32,.72,0,1);--nv-dx:34px;--nv-dy:18px;--nv-scale:.97;--nv-step:45ms}
@keyframes nvFade{from{opacity:0}to{opacity:1}}
@keyframes nvSlide{from{opacity:0;transform:translateX(var(--nv-dx))}to{opacity:1;transform:none}}
@keyframes nvUp{from{opacity:0;transform:translateY(var(--nv-dy))}to{opacity:1;transform:none}}
@keyframes nvZoom{from{opacity:0;transform:scale(var(--nv-scale))}to{opacity:1;transform:none}}

/* Ενιαία οθόνη: όλο το περιεχόμενο μπαίνει σαν ένα σώμα */
body:not(.nv-stagger) #main.main-fresh>*{animation:nvFade var(--nv-dur) var(--nv-ease) both}
body.nv-slide #main.main-fresh>*{animation-name:nvSlide}
body.nv-up    #main.main-fresh>*{animation-name:nvUp}
body.nv-zoom  #main.main-fresh>*{animation-name:nvZoom}
body.nv-none  #main.main-fresh>*{animation:none}

/* Διαδοχικά: hero πρώτα, μετά οι κάρτες μία-μία (η παλιά συμπεριφορά «rise»,
   αλλά σε σειρά). ΔΕΝ animate-άρουμε τα layout containers (.dgrid) — θα
   ξεθώριαζαν δύο φορές τα παιδιά τους. */
body.nv-stagger #main.main-fresh .hero,
body.nv-stagger #main.main-fresh .page-hero,
body.nv-stagger #main.main-fresh .page-head,
body.nv-stagger #main.main-fresh>.card,
body.nv-stagger #main.main-fresh .dgrid>.stack>*,
body.nv-stagger #main.main-fresh .dept-grid>*{animation:nvUp var(--nv-dur) var(--nv-ease) both}
body.nv-stagger #main.main-fresh .dgrid>.stack>*:nth-child(2),
body.nv-stagger #main.main-fresh .dept-grid>*:nth-child(2){animation-delay:calc(var(--nv-step)*1)}
body.nv-stagger #main.main-fresh .dgrid>.stack>*:nth-child(3),
body.nv-stagger #main.main-fresh .dept-grid>*:nth-child(3){animation-delay:calc(var(--nv-step)*2)}
body.nv-stagger #main.main-fresh .dgrid>.stack>*:nth-child(4),
body.nv-stagger #main.main-fresh .dept-grid>*:nth-child(4){animation-delay:calc(var(--nv-step)*3)}
body.nv-stagger #main.main-fresh .dgrid>.stack>*:nth-child(5),
body.nv-stagger #main.main-fresh .dept-grid>*:nth-child(5){animation-delay:calc(var(--nv-step)*4)}
body.nv-stagger #main.main-fresh .dgrid>.stack>*:nth-child(n+6),
body.nv-stagger #main.main-fresh .dept-grid>*:nth-child(n+6){animation-delay:calc(var(--nv-step)*5)}
body.nv-stagger #main.main-fresh .dgrid>.dg-wide{animation:nvUp var(--nv-dur) var(--nv-ease) both;
  animation-delay:calc(var(--nv-step)*2)}
#main.main-fresh .ev-card{animation:evIn var(--nv-dur) var(--nv-ease) both}

/* Ο κύριος διακόπτης & το realtime «ησυχία» σβήνουν και την πλοήγηση */
body.tr-off #main.main-fresh>*,body.tr-off #main.main-fresh .dgrid>.stack>*,
body.tr-off #main.main-fresh .dgrid>.dg-wide,
body.tr-off #main.main-fresh .hero,body.tr-off #main.main-fresh .page-hero,
body.tr-off #main.main-fresh .dept-grid>*,body.tr-off #main.main-fresh .ev-card{animation:none}

/* =====================================================================
   Πάνελ ρυθμίσεων (God Mode → «Εμφάνιση & Κίνηση»)
===================================================================== */
.tr-set{padding:6px 16px 16px}
.tr-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--border)}
.tr-row:first-child{border-top:none}
.tr-row.tr-col{flex-direction:column;align-items:stretch;gap:9px}
.tr-lbl b{display:block;font-size:13px;color:var(--text)}
.tr-lbl small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.tr-master .tr-lbl{flex:1;min-width:0}
.tr-body.tr-dim{opacity:.45;pointer-events:none}

/* Διακόπτης */
.tr-sw{flex:none;width:48px;height:28px;border-radius:999px;border:none;cursor:pointer;
  background:#c9d2e0;position:relative;transition:background .2s;padding:0}
.tr-sw i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(21,36,59,.35);transition:transform .2s}
.tr-sw.on{background:#6d28d9}
.tr-sw.on i{transform:translateX(20px)}

/* Sliders — εύρος 60ms έως 1500ms */
.tr-slide{display:flex;align-items:center;gap:12px}
.tr-slide input[type=range]{flex:1;accent-color:#6d28d9;min-width:0}
.tr-val{flex:none;min-width:74px;text-align:right;font-size:13px;font-weight:800;color:#5b21b6;
  font-variant-numeric:tabular-nums}

/* Έτοιμοι συνδυασμοί */
.tr-pres{display:flex;flex-wrap:wrap;gap:7px}
.tr-pre{border:1.5px solid var(--border);background:#fff;border-radius:999px;padding:6px 13px;
  font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;font-family:inherit;transition:.12s}
.tr-pre:hover{border-color:#c4b5fd;color:#5b21b6}
.tr-pre.on{border-color:#6d28d9;background:#f3ecff;color:#5b21b6}

.tr-sel{border:1.5px solid var(--border);border-radius:10px;padding:9px 11px;font-size:13px;
  background:#fff;font-family:inherit;color:var(--text);cursor:pointer;outline:none;min-width:210px}
.tr-sel:focus{border-color:#6d28d9;box-shadow:0 0 0 3px rgba(109,40,217,.15)}

.tr-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:14px;border-top:1px solid var(--border);margin-top:4px}
.tr-note{margin-top:11px;background:#f3ecff;border:1px solid #ddd0fb;border-radius:10px;padding:10px 12px;
  font-size:11.5px;line-height:1.55;color:#4c1d95}
.tr-warn{background:var(--amber-soft);border:1px solid #f0d79a;border-radius:10px;padding:10px 12px;
  font-size:11.5px;line-height:1.55;color:#8a5a06;margin:10px 0 2px}
@media (max-width:600px){
  .tr-set{padding:4px 12px 14px}
  .tr-row{gap:10px}
  .tr-sel{min-width:0;width:100%}
  .tr-acts .btn{flex:1 1 auto;justify-content:center}
  .tr-acts .btn-primary{margin-left:0!important;flex:1 1 100%}
}

@media (prefers-reduced-motion: reduce){
  .tr-enter>.overlay,.tr-enter>.ai-ov,.tr-enter>.wp-ov,
  .tr-enter>.overlay>.modal,.tr-enter>.ai-ov>.ai-win,.tr-enter>.wp-ov>.wp,
  .tr-closing>.overlay,.tr-closing>.ai-ov,.tr-closing>.wp-ov,
  .tr-closing>.overlay>.modal,.tr-closing>.ai-ov>.ai-win,.tr-closing>.wp-ov>.wp,
  .spot-ov,.spot-box,#notifDrop.open,.m-sheet,.ev-card,.au-drill,
  #main.main-fresh>*,#main.main-fresh .dgrid>.stack>*,#main.main-fresh .hero,
  #main.main-fresh .page-hero,#main.main-fresh .dept-grid>*{animation:none!important}
  #chatPanel,aside.sidebar-wrap,.m-nav-ov,.kb-card,.prj-card{transition:none!important}
}

/* Υπότιτλος ενότητας μέσα στο πάνελ ρυθμίσεων */
.tr-sub{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.5px;
  text-transform:uppercase;color:#6d28d9;background:#f3ecff;border:1px solid #ddd0fb;border-radius:9px;
  padding:7px 11px;margin:14px 0 2px}
.tr-sub:first-child{margin-top:4px}
.tr-sub svg{flex:none}
/* =====================================================================
   ΕΦΕ ΣΥΝΔΕΣΗΣ — «διάφραγμα» + συναρμολόγηση χώρου εργασίας
   ---------------------------------------------------------------------
   Τρεις πράξεις:
     1. Η κάρτα σύνδεσης ρουφιέται μέσα στο λογότυπο (liSink).
     2. Όσο τρέχει το loadAll(), το σήμα πάλλεται — ο χρόνος αναμονής
        ΚΑΛΥΠΤΕΤΑΙ, δεν επιμηκύνεται. Το «Φόρτωση δεδομένων…» card του
        22-supabase κρύβεται (body.li-run) αντί να αφαιρεθεί: μηδενική
        παρέμβαση στη ροή σύνδεσης.
     3. Μόλις έρθουν τα δεδομένα, το σκούρο πέπλο κλείνει σαν διάφραγμα
        φωτογραφικής ΠΑΝΩ ΣΤΟ ΛΟΓΟΤΥΠΟ (liIris) και ταυτόχρονα η
        εφαρμογή συναρμολογείται: μενού από αριστερά, μπάρα από πάνω,
        κάρτες με σκάλα (body.li-asm).
   Παράμετροι: μεταβλητές --li-* που γράφει το 40-login-transition.js.
   ΠΑΓΙΔΑ clip-path: δεν είναι GPU-composited. Αν λείπει υποστήριξη, το
   JS βάζει .li-nofx και πέφτουμε σε καθαρό ξεθώριασμα.
===================================================================== */
:root{--li-dur:1800ms;--li-sink:760ms;--li-step:60ms;
  --li-e:cubic-bezier(.32,.72,0,1);--li-z:1}

/* ΚΕΝΤΡΟ ΟΘΟΝΗΣ ΠΑΝΤΑ: το σήμα κεντράρεται με grid (όχι με συντεταγμένες από
   JS) και το διάφραγμα κλείνει στο 50%/50%. Έτσι είναι σωστό σε κάθε ανάλυση,
   σε rotate, σε αλλαγή zoom — χωρίς κανέναν υπολογισμό. 75vmax καλύπτει σίγουρα
   την οθόνη (η μισή διαγώνιος δεν ξεπερνά ποτέ ~71vmax). */
/* Το πέπλο μπαίνει στο <html>, ΕΞΩ από το <body> → δεν κληρονομεί τη γραμματοσειρά του (έβγαινε serif) */
.li-veil{position:fixed;inset:0;z-index:500;overflow:hidden;font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  display:grid;place-items:center;
  background:linear-gradient(115deg,#141f35,#1d3050 55%,#3d2b73);
  clip-path:circle(75vmax at 50% 50%)}
/* Το πέπλο κουμαντάρει την οθόνη — καμία αλληλεπίδραση με ό,τι είναι από κάτω */
body.li-run{overflow:hidden}
body.li-run #loginRoot{opacity:0;pointer-events:none}

/* Η κάρτα που μεταφέρθηκε μέσα στο πέπλο: κρατά τη ΘΕΣΗ που είχε */
.li-veil .login-card{position:absolute;margin:0;animation:liSink var(--li-sink) cubic-bezier(.4,0,1,1) both}
@keyframes liSink{
  from{transform:scale(var(--li-z));opacity:1}
  to{transform:scale(calc(var(--li-z)*.28));opacity:0}
}

/* Το σήμα φόρτωσης: λογότυπο εφαρμογής + «Φόρτωση δεδομένων…», στο κέντρο */
.li-mark{position:relative;display:flex;align-items:center;gap:14px;max-width:90vw;
  animation:liMarkIn calc(var(--li-sink)*.7) ease calc(var(--li-sink)*.55) both}
.li-mark .li-ic{position:relative;flex:none;width:54px;height:54px;border-radius:15px;background:#fff;
  display:grid;place-items:center;padding:5px;box-shadow:0 8px 26px rgba(0,0,0,.35);
  animation:liBreathe 1.9s ease-in-out .9s infinite}
/* Ίδια απόδοση με το πλαϊνό μενού (04-layout): contain + padding, ΟΧΙ cover —
   το λογότυπο δεν είναι τετράγωνο και το cover θα του έκοβε τις άκρες. */
.li-mark .li-ic img{width:100%;height:100%;object-fit:contain;display:block}
.li-mark .li-ic svg{color:var(--accent)}
.li-mark .li-txt{min-width:0;text-align:left}
.li-mark .li-txt b{display:block;font-size:14.5px;font-weight:600;color:#fff;letter-spacing:.2px}
.li-mark .li-txt small{display:block;font-size:11px;color:rgba(255,255,255,.55);margin-top:3px;letter-spacing:.6px}
.li-mark .li-ring{position:absolute;left:0;top:0;width:54px;height:54px;border-radius:15px;
  border:2px solid rgba(232,98,45,.6);opacity:0;pointer-events:none}
@keyframes liMarkIn{from{opacity:0;transform:translateY(10px) scale(.8)}to{opacity:1;transform:none}}
@keyframes liBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}

/* ---------- Η αποκάλυψη ---------- */
.li-veil.li-go{animation:liIris calc(var(--li-dur)*.78) cubic-bezier(.5,0,.15,1) both}
@keyframes liIris{
  from{clip-path:circle(75vmax at 50% 50%)}
  to{clip-path:circle(0px at 50% 50%)}
}
/* Λάμψη τη στιγμή που ξεκινά το διάφραγμα */
.li-veil.li-go .li-mark{animation:none}
.li-veil.li-go .li-txt{animation:liTxtOut 300ms ease both}
.li-veil.li-go .li-ring{animation:liFlash calc(var(--li-dur)*.32) cubic-bezier(.2,.9,.25,1) both}
.li-veil.li-go .li-ic{animation:liPop calc(var(--li-dur)*.32) cubic-bezier(.2,.9,.25,1) both}
@keyframes liTxtOut{to{opacity:0;transform:translateX(10px)}}
@keyframes liFlash{from{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}
@keyframes liPop{from{transform:scale(1);opacity:1}60%{opacity:.9}to{transform:scale(.2);opacity:0}}

/* Χωρίς clip-path (παλιός browser) → καθαρό ξεθώριασμα, ποτέ σπασμένη οθόνη */
.li-veil.li-nofx{clip-path:none}
.li-veil.li-nofx.li-go{animation:liVeilFade calc(var(--li-dur)*.6) ease both}
@keyframes liVeilFade{to{opacity:0}}

/* ---------- Συναρμολόγηση χώρου εργασίας ---------- */
body.li-asm .sidebar-wrap{animation:liSide calc(var(--li-dur)*.62) var(--li-e) calc(var(--li-dur)*.16) both}
body.li-asm #topbar{animation:liTop calc(var(--li-dur)*.62) var(--li-e) calc(var(--li-dur)*.27) both}
body.li-asm #main>*{animation:liCard calc(var(--li-dur)*.55) var(--li-e) calc(var(--li-dur)*.38) both}
body.li-asm #main>*:nth-child(2){animation-delay:calc(var(--li-dur)*.38 + var(--li-step))}
body.li-asm #main>*:nth-child(3){animation-delay:calc(var(--li-dur)*.38 + var(--li-step)*2)}
body.li-asm #main>*:nth-child(n+4){animation-delay:calc(var(--li-dur)*.38 + var(--li-step)*3)}
@keyframes liSide{from{transform:translateX(-102%)}to{transform:none}}
@keyframes liTop{from{transform:translateY(-102%);opacity:0}to{transform:none;opacity:1}}
@keyframes liCard{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:none}}

/* Χωρίς συναρμολόγηση: η εφαρμογή απλώς «ανάβει».
   ΜΟΝΟ opacity — ένα transform στο .layout θα γινόταν containing block
   για τα position:fixed παιδιά (dock, FAB, toast) και θα τα μετακινούσε. */
body.li-fade .layout{animation:liWake calc(var(--li-dur)*.55) ease both}
@keyframes liWake{from{opacity:.35}to{opacity:1}}

/* Σε κινητό το πλαϊνό μενού είναι συρτάρι εκτός οθόνης — δεν το κινούμε,
   και το πέπλο δεν κρύβει το safe area. */
@media(max-width:900px){
  body.li-asm .sidebar-wrap{animation:none}
  body.li-asm #main>*{animation-delay:calc(var(--li-dur)*.3)}
}

/* Η ρύθμιση «μειωμένη κίνηση» του χρήστη υπερισχύει πάντα */
@media(prefers-reduced-motion:reduce){
  .li-veil,.li-veil .login-card,.li-mark,.li-mark .li-ic,
  body.li-asm .sidebar-wrap,body.li-asm #topbar,body.li-asm #main>*,
  body.li-fade .layout{animation:none!important}
  .li-veil.li-go{opacity:0;clip-path:none}
}

/* =====================================================================
   ΕΞΟΔΟΣ — ΑΚΡΙΒΩΣ ΤΟ ΑΝΤΙΣΤΡΟΦΟ ΤΗΣ ΕΙΣΟΔΟΥ
   ---------------------------------------------------------------------
   Ό,τι μπήκε, βγαίνει — με αντίστροφη σειρά:
     είσοδος:  μενού → μπάρα → κάρτες   |  διάφραγμα ΚΛΕΙΝΕΙ στο κέντρο
     έξοδος:   κάρτες → μπάρα → μενού   |  διάφραγμα ΑΝΟΙΓΕΙ από το κέντρο
   Και η σκάλα των καρτών αντιστρέφεται: η ΤΕΛΕΥΤΑΙΑ που μπήκε φεύγει πρώτη.
   Το `doLogout` κάνει location.reload(), οπότε η συνέχεια μετά το reload
   κρατιέται με sessionStorage → `.li-hold` (δες κάτω).
===================================================================== */
.li-veil.li-bye{clip-path:circle(0px at 50% 50%)}
.li-veil.li-bye.lo-in{animation:liIrisOut calc(var(--li-dur)*.78) cubic-bezier(.5,0,.15,1) both}
@keyframes liIrisOut{
  from{clip-path:circle(0px at 50% 50%)}
  to{clip-path:circle(75vmax at 50% 50%)}
}
.li-veil.li-bye.li-nofx{clip-path:none;opacity:0}
.li-veil.li-bye.li-nofx.lo-in{animation:liVeilIn calc(var(--li-dur)*.6) ease both}
@keyframes liVeilIn{to{opacity:1}}

/* Το σήμα εμφανίζεται αντίστροφα από ό,τι έφυγε στην είσοδο */
.li-veil.li-bye .li-mark{animation:none}
.li-veil.li-bye .li-ic{animation:liPopIn calc(var(--li-dur)*.32) cubic-bezier(.2,.9,.25,1) both,
                                 liBreathe 1.9s ease-in-out calc(var(--li-dur)*.42) infinite}
.li-veil.li-bye .li-ring{animation:liFlashIn calc(var(--li-dur)*.32) cubic-bezier(.2,.9,.25,1) both}
.li-veil.li-bye .li-txt{animation:liTxtIn calc(var(--li-dur)*.3) ease calc(var(--li-dur)*.2) both}
@keyframes liPopIn{from{transform:scale(.2);opacity:0}40%{opacity:.9}to{transform:scale(1);opacity:1}}
@keyframes liFlashIn{from{opacity:0;transform:scale(3.4)}to{opacity:.9;transform:scale(1)}}
@keyframes liTxtIn{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}

/* Αποσυναρμολόγηση — αντίστροφες καθυστερήσεις από το body.li-asm */
body.lo-dis #main>*{animation:loCard calc(var(--li-dur)*.5) var(--li-e) both}
body.lo-dis #main>*:nth-child(1){animation-delay:calc(var(--li-step)*2)}
body.lo-dis #main>*:nth-child(2){animation-delay:calc(var(--li-step))}
body.lo-dis #main>*:nth-child(n+3){animation-delay:0s}
body.lo-dis #topbar{animation:loTop calc(var(--li-dur)*.5) var(--li-e) calc(var(--li-dur)*.14) both}
body.lo-dis .sidebar-wrap{animation:loSide calc(var(--li-dur)*.5) var(--li-e) calc(var(--li-dur)*.24) both}
@keyframes loCard{from{opacity:1;transform:none}to{opacity:0;transform:translateY(22px) scale(.985)}}
@keyframes loTop{from{transform:none;opacity:1}to{transform:translateY(-102%);opacity:0}}
@keyframes loSide{from{transform:none}to{transform:translateX(-102%)}}
/* Ανοιχτό popup «Αποσύνδεση;» — φεύγει αθόρυβα πρώτο */
body.lo-dis #modalRoot,body.lo-dis #modalRoot2{opacity:0;transition:opacity 140ms ease}
body.lo-fade .layout{animation:loWake calc(var(--li-dur)*.55) ease both}
@keyframes loWake{from{opacity:1}to{opacity:.35}}
@media(max-width:900px){ body.lo-dis .sidebar-wrap{animation:none} }

/* ---------- Συνέχεια ΜΕΤΑ το reload ----------
   Το πέπλο έχει ΤΟ ΙΔΙΟ gradient με το .login-ov, οπότε αφαιρείται ΤΗ ΣΤΙΓΜΗ
   που εμφανίζεται η κάρτα: η εναλλαγή είναι κυριολεκτικά αόρατη.
   ΠΑΓΙΔΑ που αποφεύγεται έτσι: με z-index κάτω από το #loginRoot θα
   εξαρτιόμασταν από το αν το body δημιουργεί stacking context — και το
   δημιουργεί όταν είναι ενεργό το body.style.zoom (04-zoom). */
.li-veil.li-hold{clip-path:none}
body.li-hold-on{overflow:hidden}
/* Η κάρτα «ανθίζει» από το κέντρο — ακριβώς αντίστροφο του liSink */
body.li-bloom #loginRoot .login-card{animation:liBloom var(--li-sink) cubic-bezier(.2,.9,.25,1) both}
@keyframes liBloom{from{transform:scale(.28);opacity:0}to{transform:none;opacity:1}}

@media(prefers-reduced-motion:reduce){
  .li-veil.li-bye,.li-veil.li-bye .li-ic,.li-veil.li-bye .li-ring,.li-veil.li-bye .li-txt,
  body.lo-dis #main>*,body.lo-dis #topbar,body.lo-dis .sidebar-wrap,
  body.lo-fade .layout,body.li-bloom #loginRoot .login-card{animation:none!important}
}
/* ---------- Παράθυρα desktop: μετακίνηση / snap / αλλαγή μεγέθους ----------
   Όλα κλεισμένα σε @media (min-width:901px) → σε κινητό ΤΙΠΟΤΑ δεν αλλάζει.
   Το JS (41-window-drag) βάζει: .wd-win (μετακινημένο), .wd-sized (χειροκίνητο
   μέγεθος), .wd-live (όσο σέρνεται), .wd-rz (λαβή), .wd-prev (προεπισκόπηση). */
@media (min-width:901px){
  .modal-h,.ai-head,.wp-title{cursor:move}
  .modal-h button,.modal-h a,.modal-h select,
  .ai-head button,.ai-head a,.wp-title button{cursor:pointer}
  .modal-h input,.wp-title input{cursor:text}
  .calc-head{cursor:move} .calc-head button{cursor:pointer}

  body.wd-dragging,body.wd-resizing{user-select:none;-webkit-user-select:none}
  body.wd-dragging *{cursor:move!important}
  body.wd-resizing *{cursor:nwse-resize!important}

  /* Όσο σέρνεις: ΚΑΜΙΑ μετάβαση. Το .modal έχει `transition:width .22s,
     max-height .22s` (19-modal) — χωρίς αυτό η αλλαγή μεγέθους θα
     «κυνηγούσε» το ποντίκι με καθυστέρηση. */
  .wd-live,.wd-live *{transition:none!important}
  .wd-live{animation:none!important}

  /* Το μετακινημένο παράθυρο πάνω από την προεπισκόπηση snap */
  .wd-win{z-index:1}

  /* Λαβή αλλαγής μεγέθους — δύο διαγώνιες γραμμές στη γωνία */
  .wd-rz{position:absolute;right:2px;bottom:2px;width:17px;height:17px;z-index:6;
    cursor:nwse-resize;border-radius:0 0 10px 0;
    background:linear-gradient(135deg,transparent 44%,rgba(28,46,74,.3) 44%,rgba(28,46,74,.3) 52%,
      transparent 52%,transparent 66%,rgba(28,46,74,.3) 66%,rgba(28,46,74,.3) 74%,transparent 74%)}
  .wd-rz:hover{background-color:rgba(28,46,74,.07)}

  /* Χειροκίνητο μέγεθος: σε desktop το .modal-b ΔΕΝ είναι flexible (μόνο το
     36-mobile το κάνει) → χωρίς αυτό, μεγαλώνοντας το παράθυρο έμενε κενό
     κάτω αντί να μεγαλώσει η περιοχή περιεχομένου. */
  .wd-sized{max-width:none!important;max-height:none!important}
  .wd-sized>.modal-h,.wd-sized>.modal-f,.wd-sized>.wp-title,.wd-sized>.wp-foot{flex:none}
  .wd-sized>.modal-b,.wd-sized>.ct-wrap,.wd-sized>.ai-body,.wd-sized>.wp-body{flex:1 1 auto;min-height:0}
  .wd-sized>.modal-b{max-height:none}

  /* Προεπισκόπηση snap (ζωντανό ορθογώνιο-στόχος κατά το σύρσιμο) */
  .wd-prev{position:absolute;z-index:0;border-radius:14px;pointer-events:none;
    background:rgba(46,111,216,.15);border:2px solid rgba(46,111,216,.5);
    box-shadow:0 10px 34px rgba(21,36,59,.16);animation:wdPrev .15s ease}
  @keyframes wdPrev{from{opacity:0}to{opacity:1}}
}

/* ---------- Ελαχιστοποίηση στο dock — «genie» (module 42-window-min) ----------
   Τα keyframes ΔΕΝ μπαίνουν σε media query: το εφέ πρέπει να μπορεί να παίξει
   και κατά την επαναφορά σε στενή οθόνη (δίχτυ διάσωσης — δες `.wm-chip` πιο
   κάτω). Η ελαχιστοποίηση όμως προσφέρεται ΜΟΝΟ σε desktop (JS: wmOn()).

   Το `!important` είναι σκόπιμο: το 37-transitions δίνει δικό του `animation`
   στο ίδιο στοιχείο όταν μπαίνει περιεχόμενο σε άδειο root (κλάση `tr-enter`).
   Στην επαναφορά θα έπαιζαν ΔΥΟ animations μαζί — εδώ πρέπει να νικήσει το
   genie, γιατί το παράθυρο δεν «ανοίγει», ΕΠΙΣΤΡΕΦΕΙ από το dock. */
/* «Ελατήριο» (squash & stretch): μαζεύεται πριν ξεκινήσει, τεντώνεται στην
   επιτάχυνση, περνά ελάχιστα τον στόχο και κάθεται. Μόνο `transform`+`opacity`
   ⇒ GPU, μηδέν layout — γι' αυτό έφυγε και το `clip-path`.
   ΟΡΑΤΟΤΗΤΑ: το παράθυρο μένει ΠΛΗΡΩΣ ορατό ως το 88% της διαδρομής και
   σβήνει μόνο πάνω στο εικονίδιο. Πρέπει να φαίνεται ΠΟΥ πάει. */
@keyframes wmGenie{
  0%  {transform:translate(0,0) scale(1,1);opacity:1}
  15% {transform:translate(calc(var(--wm-x,0px)*.015),calc(var(--wm-y,0px)*.01)) scale(1.07,.9);opacity:1}
  52% {transform:translate(calc(var(--wm-x,0px)*.52),calc(var(--wm-y,0px)*.58)) scale(.52,.74);opacity:1}
  84% {transform:translate(calc(var(--wm-x,0px)*1.03),calc(var(--wm-y,0px)*1.04))
       scale(calc(var(--wm-sx,.05)*1.32),calc(var(--wm-sy,.05)*.7));opacity:1}
  92% {transform:translate(var(--wm-x,0px),var(--wm-y,0px)) scale(var(--wm-sx,.05),var(--wm-sy,.05));opacity:1}
  100%{transform:translate(var(--wm-x,0px),var(--wm-y,0px)) scale(var(--wm-sx,.05),var(--wm-sy,.05));opacity:0}
}
/* ΤΟ ΣΚΟΤΕΙΝΟ ΦΟΝΤΟ ΦΕΥΓΕΙ ΜΕ background-color, ΟΧΙ ΜΕ opacity.
   Το παράθυρο είναι ΠΑΙΔΙ του overlay — η διαφάνεια του γονέα πολλαπλασιάζεται
   στο παιδί, οπότε το `opacity` έσβηνε το ίδιο το παράθυρο στα μισά της
   διαδρομής (φαινόταν πού πάει, αλλά εξαφανιζόταν πριν φτάσει).
   Χωρίς `from`, το 0% είναι η ΤΡΕΧΟΥΣΑ τιμή κάθε overlay (.overlay/.ai-ov/.wp-ov
   έχουν διαφορετικά rgba) — μία δήλωση, σωστή παντού. */
@keyframes wmOv{to{background-color:transparent}}
/* Αναπήδηση εικονιδίου: προσγείωση (μάζεμα) & απογείωση (επαναφορά) */
@keyframes wmBump{
  0%{transform:scale(1,1)}
  34%{transform:scale(1.32,.76)}
  62%{transform:scale(.93,1.11)}
  100%{transform:scale(1,1)}
}
.wm-bump .dock-ic{animation:wmBump 460ms cubic-bezier(.3,1.15,.4,1)}
.wm-out{animation:wmGenie var(--wm-dur,480ms) cubic-bezier(.5,0,.35,1) forwards!important;
  will-change:transform,opacity}
.wm-in{animation:wmGenie var(--wm-dur,480ms) cubic-bezier(.5,0,.35,1) reverse forwards!important;
  will-change:transform,opacity}
/* Το φόντο φεύγει ΓΡΗΓΟΡΑ (ease-out) ώστε η διαδρομή να φαίνεται πάνω στη
   φωτεινή σελίδα αντί να χάνεται μέσα στο σκοτάδι. */
.wm-ov-out{animation:wmOv var(--wm-dur,480ms) cubic-bezier(.2,.85,.3,1) forwards!important}
.wm-ov-in{animation:wmOv var(--wm-dur,480ms) cubic-bezier(.2,.85,.3,1) reverse forwards!important}
/* Το περιεχόμενο ΠΑΓΩΝΕΙ όσο το παράθυρο πετάει — όπως το «στιγμιότυπο» που
   δείχνει το macOS. Επιπλέον κόβει στη ρίζα το «διπλό εφέ»: το `animationend`
   ΑΝΑΔΥΕΤΑΙ, οπότε ένα animation παιδιού τερμάτιζε πρόωρα το genie (το JS
   φιλτράρει πλέον και τον στόχο — δύο δικλείδες, μία αιτία). */
.wm-fly *,.wm-out *,.wm-in *{animation-play-state:paused!important;transition:none!important}
.wm-fly{will-change:transform,clip-path,opacity}
@media (prefers-reduced-motion:reduce){
  .wm-out,.wm-in,.wm-ov-out,.wm-ov-in,.wm-bump .dock-ic{animation:none!important}
}

/* Κουμπί «−» δίπλα στο ✕ — το εμφυτεύει ο observer, κανένα module δεν το γράφει */
@media (min-width:901px){
  .wm-min{margin-left:auto;flex:none;border:none;background:none;color:inherit;cursor:pointer;
    padding:0;width:24px;height:27px;border-radius:8px;display:grid;place-items:center;opacity:.8}
  .wm-min:hover{opacity:1;background:rgba(255,255,255,.2)}
  /* Το .x έχει margin-left:auto (19-modal) — με το «−» μπροστά, εκείνο παίρνει
     το κενό και το ✕ κάθεται ακριβώς δίπλα του. */
  .modal-h .wm-min~.x,.ai-head .wm-min~.ai-x{margin-left:6px}
  .modal-h:not([style]) .wm-min:hover{background:rgba(21,36,59,.09)}
}

/* Κουμπί «□» μεγιστοποίησης ανάμεσα σε «−» και ✕ — το εμφυτεύει ο observer του 41 */
@media (min-width:901px){
  .wd-max{margin-left:auto;flex:none;border:none;background:none;color:inherit;cursor:pointer;
    padding:0;width:24px;height:27px;border-radius:8px;display:grid;place-items:center;opacity:.8}
  .wd-max:hover{opacity:1;background:rgba(255,255,255,.2)}
  .modal-h:not([style]) .wd-max:hover{background:rgba(21,36,59,.09)}
  /* «− □ ✕» σφιχτά (24px, κενά 1/4px): η τριάδα πιάνει μόλις ~23px περισσότερα από το «− ✕»,
     ώστε οι τίτλοι στενών παραθύρων να μην τυλίγονται σε νέα γραμμή */
  .wm-min~.wd-max{margin-left:1px}
  .modal-h .wd-max~.x,.ai-head .wd-max~.ai-x{margin-left:4px}
  .wd-max .wd-i-res,.wd-maxed .wd-max .wd-i-max{display:none}
  .wd-maxed .wd-max .wd-i-res{display:block}
}
@media (max-width:900px){ .wd-max{display:none} }

/* Προσωρινό εικονίδιο στο dock (δεξιά, όπως Ai/Κειμενογράφος) */
.wm-ic svg{width:21px;height:21px}
.wm-x{position:absolute;top:-3px;right:-5px;width:19px;height:19px;border-radius:50%;
  background:#1c2e4a;color:#fff;font-size:10px;line-height:1;place-items:center;
  box-shadow:0 2px 7px rgba(0,0,0,.35);display:none;cursor:pointer}
.wm-chip:hover .wm-x{display:grid}
/* ΔΙΧΤΥ ΔΙΑΣΩΣΗΣ: σε κινητό το 36 κρύβει ΟΛΑ τα .dock-item. Ένα παράθυρο που
   ελαχιστοποιήθηκε σε desktop και μετά στένεψε το παράθυρο του browser θα
   έμενε απρόσιτο — το chip του παραμένει ορατό ώστε να επιστρέφεται πάντα. */
@media (max-width:900px){
  .dock .wm-chip{display:block}
  .dock .wm-chip .dock-tip{display:none}
}

/* ---------- MDI: πολλά παράθυρα ταυτόχρονα (module 43-window-mdi) ----------
   Το ΕΣΤΙΑΣΜΕΝΟ παράθυρο ζει στο #modalRoot (z-index 100 του .overlay),
   τα υπόλοιπα σε πλαίσια μέσα στο #mdiDeck (z-index 99) ⇒ το ενεργό είναι
   ΠΑΝΤΑ μπροστά χωρίς κανέναν υπολογισμό z-index. */
#mdiDeck{position:fixed;inset:0;z-index:99;pointer-events:none}

@media (min-width:901px){
  /* ΤΟ «ΚΑΠΑΚΙ» ΦΕΥΓΕΙ — η πιο κερδοφόρα γραμμή του module:
     το overlay δεν δέχεται πλέον κλικ, άρα τα **51** inline
     `if(event.target===this)closeModal()/closeCard()` δεν πυροδοτούνται ΠΟΤΕ
     (δεν χρειάστηκε να πειραχτεί ούτε ένα) ΚΑΙ τα κλικ περνούν στην εφαρμογή
     από κάτω: μπορείς να πλοηγηθείς με τα popup ανοιχτά. */
  body.mdi .overlay,body.mdi .ai-ov,body.mdi .wp-ov{
    background:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}
  body.mdi .overlay>.modal,body.mdi .ai-ov>.ai-win,body.mdi .wp-ov>.wp{pointer-events:auto}
  body.mdi .overlay>.calc{pointer-events:auto}   /* αριθμομηχανή: δεν είναι .modal */
  /* `position:relative` πάντα: το ::after του ανενεργού παραθύρου πρέπει να
     αγκυρώνεται στο ΠΑΡΑΘΥΡΟ — αλλιώς θα άπλωνε σε όλη την οθόνη. */
  body.mdi .overlay>.modal{position:relative}
  body.mdi .mdi-host{position:fixed;inset:0;pointer-events:none}

  /* Ανενεργό παράθυρο: πιο ήσυχο, όπως η ανενεργή μπάρα τίτλου των Windows */
  body.mdi .mdi-idle>.modal{box-shadow:0 10px 26px rgba(21,36,59,.15)}
  body.mdi .mdi-idle .modal-h{filter:saturate(.8) brightness(1.03)}
  body.mdi .mdi-idle>.modal::after{content:"";position:absolute;inset:0;z-index:3;
    border-radius:inherit;background:rgba(21,36,59,.05);pointer-events:none}
  body.mdi .mdi-idle>.modal .wd-rz{display:none}   /* αλλαγή μεγέθους μόνο στο ενεργό */
}

/* Το dock ΜΠΡΟΣΤΑ από τα παράθυρα (μόνο σε MDI — χωρίς αυτό θα φώτιζε πάνω
   από το σκούρο φόντο του κλασικού modal). Πάνω από τα 99/100 των παραθύρων,
   κάτω από chat (140) / ειδοποιήσεις (145) / μηνύματα (200). */
body.mdi .dock{z-index:110}

/* ΜΕΤΑΚΙΝΗΣΗ ΠΑΡΑΘΥΡΟΥ ≠ ΑΝΟΙΓΜΑ: όταν ένας κόμβος αλλάζει γονέα (παρκάρισμα,
   εστίαση, προαγωγή) ο browser ΞΑΝΑΠΑΙΖΕΙ όλα τα animations του — γι' αυτό
   «ανανεώνονταν» τα άλλα παράθυρα όταν ελαχιστοποιούσες κάποιο. Η κλάση
   μπαίνει για λίγο γύρω από τη μετακίνηση και τα σβήνει. */
.mdi-quiet,.mdi-quiet *{animation:none!important}

/* ---------- EXPOSÉ: όλα τα παράθυρα με μια ματιά (module 44) ---------- */
#xpVeil{position:fixed;inset:0;z-index:98;background:rgba(15,23,40,.5);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .3s ease}
#xpVeil.on{opacity:1}
/* Κουμπί dock: τέσσερα τετραγωνάκια = «όλα τα παράθυρα».
   ΤΟ `place-items:stretch` ΕΙΝΑΙ ΑΠΑΡΑΙΤΗΤΟ: το `.dock-ic` έχει
   `place-items:center`, που θα συρρίκνωνε τα κενά <i> στο μηδέν —
   το εικονίδιο θα έβγαινε τελείως άδειο. Ίδιος λόγος για τα rows. */
.xp-ic{background:linear-gradient(135deg,#5b8def,#1e3a8a);
  grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;
  place-items:stretch;gap:3.5px;padding:11px}
.xp-ic i{display:block;background:rgba(255,255,255,.94);border-radius:2.5px}
@media (min-width:901px){
  /* Το παράθυρο ταξιδεύει προς το κελί του. Το `transition` μπαίνει ΜΟΝΟ εδώ:
     το .modal έχει δικό του transition σε width/max-height (19-modal) και δεν
     πρέπει να το πειράξουμε. */
  .xp-win{transition:transform var(--xp-dur,340ms) cubic-bezier(.22,1,.36,1)!important;
    cursor:pointer;will-change:transform}
  /* Μία στιγμή χωρίς μετάβαση: εκεί «κλειδώνει» η αφετηρία του FLIP αφού το
     παράθυρο έχει ήδη αλλάξει γονέα (δες xpFlipFrom). */
  .xp-win.xp-nofx{transition:none!important}
  .xp-win.xp-min{opacity:.86}
  /* Ασπίδα κλικ: στο exposé ένα κλικ σημαίνει ΜΟΝΟ «διάλεξέ με» */
  .xp-hit{position:absolute;inset:0;z-index:20;cursor:pointer;background:transparent}
  .xp-win:hover{box-shadow:0 0 0 3px rgba(46,111,216,.75),0 26px 60px rgba(21,36,59,.4)!important}
  /* Όσο είμαστε σε exposé: καμία σκίαση ανενεργού, όλα ισότιμα */
  body.xp .mdi-idle>.modal::after{display:none}
  body.xp .mdi-idle .modal-h{filter:none}
  body.xp .wd-rz{display:none}
}
/* ============================================================
   ΔΙΠΛΩΜΑ ΠΛΑΪΝΟΥ ΜΕΝΟΥ — λωρίδα εικονιδίων 72px (901–1400px)
   ------------------------------------------------------------
   Ζώνη-στόχος: tablet landscape (1133–1368) + μικρά laptop, όπου
   τα 240px του μενού κοστίζουν. >1400px & ≤900px: ΑΘΙΚΤΑ
   (≤900 έχει ήδη το off-canvas drawer του 36-mobile).

   ΚΑΝΟΝΑΣ: ΜΟΝΟ `transition` σε στοιχεία που ΔΕΝ ξαναχτίζονται
   (το <aside> ζει πάντα· το #sidebar innerHTML αλλάζει συνεχώς από
   το renderSidebar). Καμία `animation` εδώ — θα ξανάπαιζε σε κάθε
   re-render («η δεύτερη ανανέωση»).

   ΠΛΑΤΟΣ 72px, όχι 64: τα badges φτάνουν τα 3 ψηφία («128 tasks»)
   και στα 64px κόβονταν από την άκρη της λωρίδας.
   ============================================================ */

/* Εκτός εύρους: το κουμπί δεν υπάρχει καν. */
.side-fold{display:none}

@media (min-width:901px) and (max-width:1400px){

  /* ---------- Το ίδιο το πλάτος ---------- */
  /* Το 37-transitions δίνει μόνο `transform`· εδώ προσθέτουμε το width
     με ΤΗΝ ΙΔΙΑ διάρκεια/καμπύλη ώστε να κινούνται μαζί. Το
     `body.tr-off aside` του 37 έχει μεγαλύτερη ειδικότητα → ο
     καθολικός διακόπτης God Mode εξακολουθεί να το σβήνει. */
  aside.sidebar-wrap{transition:transform var(--tr-in) var(--tr-ein),
                                width var(--tr-in) var(--tr-ein)}
  body.sb-fold aside.sidebar-wrap{width:72px}

  /* ---------- Κουμπί διπλώματος: ΣΤΗ ΓΡΑΜΜΗ ΤΟΥ ΛΟΓΟΤΥΠΟΥ ----------
     Δική του σειρά θα κατέβαζε ΟΛΟ το μενού μια γραμμή. Εδώ κάθεται
     δεξιά στο `.side-brand` (margin-left:auto) και δεν κοστίζει ύψος.
     Κλειστό: το σήμα φεύγει και μένει ΜΟΝΟ το βελάκι, κεντραρισμένο —
     στα 72px δεν χωρούν και τα δύο χωρίς να στριμωχτούν. */
  .side-fold{display:grid;place-items:center;width:30px;height:30px;padding:0;
    margin-left:auto;flex:none;
    border:none;border-radius:8px;background:rgba(255,255,255,.08);color:#cdd7e8;
    cursor:pointer;
    transition:background .15s ease,color .15s ease,transform var(--tr-in) var(--tr-ein)}
  .side-fold:hover{background:rgba(255,255,255,.18);color:#fff}
  .side-fold svg{width:17px;height:17px;display:block}
  body.sb-fold .side-fold{transform:rotate(180deg);margin:0}

  body.sb-fold .side-brand{justify-content:center;padding:14px 0 10px}
  body.sb-fold .side-brand .mark{display:none}
  body.sb-fold .side-brand .brandtxt{display:none}

  /* ---------- Στοιχεία μενού: font-size 0 αντί για clip ----------
     Το ΚΟΨΙΜΟ (overflow:hidden) θα άφηνε μισά γράμματα, γιατί τα labels
     είναι γυμνά text nodes χωρίς wrapper. Το font-size:0 τα εξαφανίζει
     καθαρά και ΚΙΝΕΙΤΑΙ — «μαζεύονται» μαζί με το πλάτος.
     Το εικονίδιο (20px) κεντράρεται με padding-left 16:
     10 (#sidebar) + 16 + 10 (μισό εικονίδιο) = 36 = 72/2. */
  .nav-item{transition:font-size var(--tr-in) var(--tr-ein)}
  body.sb-fold #sidebar{overflow-x:hidden}
  body.sb-fold .nav-item{font-size:0;position:relative;padding:11px 0 11px 16px}

  /* Το badge βγαίνει από τη ροή (το margin-left:auto θα το έσπρωχνε έξω)
     και κεντράρεται ΠΑΝΩ ΣΤΗ ΔΕΞΙΑ ΑΚΜΗ του εικονιδίου. Έτσι μεγαλώνει
     συμμετρικά: 3 ψηφία = ~26px → 33…59px, μέσα στα 72 με περιθώριο. */
  body.sb-fold .nav-item .cnt{position:absolute;top:2px;left:36px;
    transform:translateX(-50%);margin:0;
    font-size:9.5px;line-height:1.65;padding:0 4px;min-width:16px;
    text-align:center;white-space:nowrap;box-shadow:0 0 0 2px #17263f}
  body.sb-fold .nav-item.active .cnt{box-shadow:0 0 0 2px #e8622d}

  /* Σημείωμα ιδιωτικότητας: άσχημο και άχρηστο σε λωρίδα 72px. */
  body.sb-fold .priv-note{display:none}

  /* ---------- Έξοδος μέσα στο μενού (όπως στο κινητό) ---------- */
  /* Τα οπτικά του .m-logout ορίζονται ΜΙΑ φορά στο 36-mobile.css (base)·
     εδώ μόνο το εμφανίζουμε και το συμπυκνώνουμε στη λωρίδα. */
  .m-logout{display:flex;margin:6px 10px 12px;
    transition:background .15s ease,color .15s ease,font-size var(--tr-in) var(--tr-ein)}
  .m-logout:hover{background:rgba(255,90,71,.22);color:#fff}
  body.sb-fold .m-logout{font-size:0;gap:0;margin:6px 10px 12px;padding:11px 0}

  /* Το topbar «Έξοδος» φεύγει — ένα κουμπί εξόδου, ένα μέρος. */
  #topbar #logoutBtn{display:none}

  /* ---------- Topbar: να ΜΗΝ σπάει σε δεύτερη γραμμή ----------
     Η βασική διόρθωση είναι στο 02-live-search (`flex:1 1 0%`).
     Εδώ κερδίζουμε κι άλλο πλάτος για τη στενή ζώνη: τα μίνι labels
     «ΡΟΛΟΣ»/«ΤΜΗΜΑ» είναι διακοσμητικά (τα selects λένε ήδη τι είναι),
     και το όνομα χρήστη κόβεται με «…» αντί να σπρώχνει τη γραμμή.
     Σε πραγματική συνεδρία τα roleWrap/deptWrap είναι ήδη display:none
     (applySessionUI) — αυτό αφορά κυρίως το mock/demo mode. */
  #topbar .hdr-ctrl{padding:5px 6px}
  #topbar .hdr-ctrl label{display:none}
  #topbar .hdr-ctrl select{max-width:130px}
  #topbar .user-chip{flex:none;min-width:0}
  #topbar .user-chip .nm,#topbar .user-chip .rl{max-width:130px;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap}
}

/* Σεβασμός στη ρύθμιση «χωρίς κίνηση» (God Mode) και στη συσκευή. */
body.tr-off aside.sidebar-wrap,body.tr-off .nav-item,
body.tr-off .m-logout,body.tr-off .side-fold{transition:none}
@media (prefers-reduced-motion:reduce){
  aside.sidebar-wrap,.nav-item,.m-logout,.side-fold{transition:none!important}
}
/* =====================================================================
   35y — ΣΚΟΤΕΙΝΟ ΘΕΜΑ: UI του διακόπτη (module 82). Φορτώνεται ΠΑΝΤΑ (και στο φωτεινό).
   Τα ίδια τα σκοτεινά χρώματα είναι στο ξεχωριστό app.<hash>.dk.css (darkgen + zz-dark.css).
===================================================================== */
/* Διακόπτης στο πλαϊνό μενού, γραμμή λογοτύπου, τέρμα δεξιά (desktop · tablet · συρτάρι κινητού).
   Το .brandtxt τεντώνει (flex:1) → φεγγάρι και βελάκι διπλώματος πάνε δεξιά ΚΑΙ όταν το φεγγάρι είναι κρυφό. */
.side-brand .brandtxt{flex:1 1 auto;min-width:0}
.side-dk{display:grid;place-items:center;width:30px;height:30px;padding:0;flex:none;border:none;border-radius:8px;
  background:rgba(255,255,255,.08);color:#cdd7e8;cursor:pointer;transition:background .15s ease,color .15s ease}
.side-dk:hover{background:rgba(255,255,255,.18);color:#fff}
.side-dk svg{width:17px;height:17px;display:block}
body.sd-light .side-dk{color:#475569;background:rgba(255,255,255,.6)}
body.sd-light .side-dk:hover{background:#fff;color:#1e293b}
@media (min-width:901px) and (max-width:1400px){
  /* Ανοιχτό (240px): φεγγάρι + βελάκι χωρούν δίπλα στο όνομα μόνο με στενότερα περιθώρια */
  .side-brand{gap:4px;padding-right:10px}
  .side-brand .mark{margin-right:2px}
  .side-brand .brow{gap:4px}
  .side-brand .side-dk,.side-brand .side-fold{width:26px;height:26px}
  /* Διπλωμένο (72px): βελάκι πάνω, φεγγάρι από κάτω */
  body.sb-fold .side-brand{flex-direction:column;gap:6px;padding-right:0}
  body.sb-fold .side-fold{order:-1}
}
@media (min-width:901px){
  body.sd-rail aside.sidebar-wrap:not(:hover) .side-dk{display:none}
}
#dkBtn svg{transition:transform .35s ease}
#dkBtn:active svg{transform:rotate(-30deg) scale(.9)}

/* God Mode → «Εμφάνιση & Κίνηση» → κάρτα «Σκοτεινό θέμα» (οι γραμμές/διακόπτης είναι του 38: tr-set/tr-row/tr-sw) */
.dk-try{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}
.dk-try .btn{display:inline-flex;align-items:center;gap:6px}
.dk-try svg{width:14px;height:14px}

/* Ομαλή μετάβαση ΜΟΝΟ τη στιγμή του κλικ (όχι σε κάθε hover της εφαρμογής) */
html.dk-sw body,html.dk-sw body *{transition:background-color .3s ease,color .3s ease,border-color .3s ease !important}
/* ---------- Brand: OMNIK (brand/omnik) — μπαίνει ΤΕΛΕΥΤΑΙΟ στο CSS από το build.py ----------
   Γραμματοσειρά: Quebra Expa Bold (Vanarchiv) — ΜΟΝΟ τα γράμματα O M N I K (o m n i k),
   subset woff2 ~2 KB ενσωματωμένο. Πηγή: brand/omnik/QuebraExpa-Bold.otf. Για άλλα γράμματα:
   pyftsubset QuebraExpa-Bold.otf --text="…" --flavor=woff2 --output-file=omnik-subset.woff2  */
@font-face{font-family:"Quebra Expa";font-weight:700;font-style:normal;font-display:block;
  src:url(data:font/woff2;base64,d09GMk9UVE8AAAiUAA0AAAAADcgAAAhDAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY89GhYbgWgcghoGYABcEQgBNgIkA0QEBgWDBAcgG+AMEdWszaD5WWA3vjQ0nHBCGZglJ+FPOBfKEDMppEcZeltWLl4AaGwQ5yrdGsGKydnwjf/Dzkw3GDpkytZiHlQKvLunfIAjyiabvTttmtTVVzZpkOAwggThNOi3z/1MZeYJ02rd8ScLfMjZ/AJ+SArE6siisCfMKUYVrqI4pQM+V2tq7xJ2/y07QInCsGahalTClw1jFTCOr9F1dQCoEISqrKywbARqpNunqsDVg4iMTL4jgVhAiBByyG21OMzbvOXmxU9aCWurJmsGoMUH4sITdFqiXosQ87k8H//6/x7ILMG98/H9YUwJBX4RcFDU/LSMXFfNrnSnMzNrn/0Mhem2shzb0cN7CitEhjUrPTPpsgCFxhyT4X3dXMfNpa8zUKXv14IuaudfyxEvqMZgdq35ZwFBGnA5kF5gN3vZX6A74SOC0AIC0WUGYsIOYVpn0T2qv6h/QlwpPgshtMLX0Fp0E++VZsp+i2JpSFUvv6KhZsK9LEpWITchRe7m0XDGiJt4NJTY+o7fQ2whux+/Sx8PNs41zpq7xFIyJTNmRP1TrJWtOMVQ2svkE3bgORZXNQH5YuSRLTzkEI+Hji675gDhD7EoNC3MmEYUtePnhzDr4ldeecCYHk2NfdWyqSHB+LN0qSozZnK+SATUMnEvi/YMQ74IuRX+Cv8B1iP+GfvRbUKeiBSll8dMBR/imNDLcbSKmf2TiiMBjdcup6XhbhalqJAbkSz3jjQNvxfXdfw7tbVuzZGElGrZBI/cwi4d2NhX6BE6jQ3S/VRDL1lFS+WNil5OV2LV9AhaEx1iqzG993pw1j5rHTQ9dU+tuGAx1RFOJg4Iwr9G/AxNTad8H+GbMLVE81M2FWKWFsq33vJMqsaVm8YnEB7Obo5kGzG9P90rVNQ2B/odCHsBPdV+x3HelXemC3CWOLG1i6cF2w6PI6/6eDvhL6KjNE/3VDBrXQ9zkmZav7az1NWtGg3ZO1iecPBCRg8cXq0n2jFNImmpcGuVNC6zK1rLvIoSSqIQofEJ1jWpFVFG7jZ/kydFheVdbs0HD1y35TdEUWCbwivgJGnyOztLQap69QnfYxQ/RNvHOUfOkTonttOkzNgipE6wdhZW+MWuGfmEnThgpk9GFb5j/HJY33EkfM4xBrUFSJni8fXevV5ugDMm3MIToKRt/mZfQdHNLfjqsVqyAaqc6yFaCuAM8SzcGKmNqzrjSkzHuH6Tqchait44FV1D1YV+lK2K++AmnnFgqVMm/Fi7MWXwyDNcpISno6304PbZ3PK7LuT3gXAj2k9PHuaWkjpUP3xkQR6GvL4+vgjynfvGsOsXkcrB1zIS8U6jJ+l1XhwnKaQiDiSVoy6+ol7DGkxZyN4XeSgl/BA6Qk8dni8jdahh4FDNYImr2auVNlaFvqEv5+8YpVXVHd6i17Dr3bmzjrCdvflsSng14uvo8o2Um8hO7B/py41fGyjJZrbIzzC9IVmU0pLlZBvE8pDyls7NA9x6wgkbrcB0v9O2nxKeh4qoM6lIRTYU0SCJf8jOa6bIP9FfHY8t8EH3Y/qVY57UQZLRUZpzXO5UU1cXUQuZMTXrRTWnerLjmjtK+EK+N3Kw7jkCmRW93jKUZn/imsGd15Bb0Y7uulP2CXNG3orpHUr1QX+i29rlHgrIiqn3uuqi/vzs8NoLkoy8tCrWkDpLXRvIkzSz9N4W20fdkK1EH7SM59j3WJnafA21U/idVrWCkqfWLcmXoXXd8jZMx6rvvQvOtCu34JAS6/jGzhKRqt58RfWz+/tjX6f40Dmn7Rk2NnCb+Hu0zcAGdIZkZbtBRSHFb5h/G3oF+84TFotkpQP5FPUGNdP6zdhTTjZqclq/ZUX4NC8N1zC1TXILOShhaTQyoo4wIiSKkFzeWFQ9DKu6fMIDH2ReqXg1NWEyl6E4Z5q/NYdcTGu1JHSwtWarZ3OrpuFi/ODsSNOpzaeeLC5SGUWs4muSK+i3uZsayRwZy8gpQiY0qVtXLm4FDdWy8VZaocAzIkXDrHNMBFXzsLh1KxEyApVO2gslzHdLaqvDFK5AnpsFOxsx/bItAQCBEtCVHSEEcVx/aVbS79v3HgURD5/DBiJeZlcpiCACANz1t3laHaWAAAgl0oXr+EuAQJoWhIEwAxtcJ2BvS6uzSkFIkr9LWjle+rvVBYgOhBF+/AmTxIJNT0xBVwcBi0YDoNPodRVc0dy2k6kYkhC1ttPbDCBqlaEnAvoSHhDsmuJttrlA3OOJHSS8NYXxEcVQOi/ZNGIpGW1uPShQtp1yNROizQYhLbYgASkJgQrS5f4kes4lSAodkuCRCdSlqUOAKIHoOmF/iQjBFlMcj0gM7U+nCt5Ne0HENtQjMKD7lgMAsEdMSLhAtj+QQjjQsePEfsFgl7LSLoUIG8XQRFOhwk/3iMqwIQEIEmGBAFq0E6QFWh3ZZY8DChUrW1LD3IdKXtjMzSiSlQCHsKwMBvsD1vONhy8Er/0TP/0PAACfHUwjRNtIn4jDv/Z8M0hHES+6lsS2897V8wyWC63VjDkLDveXDs+YwP80TbMxW8DO3p3z5lt+Hyk+AFbmL7rmsPmTYSdRJduAlO3ajMBBIBQA2OlN0G78AABFQClaEKUoWoeojdZbqjVaZPBINJTpk+0iCxMItihTzsehUL4CLr7YKIdJkGyQ7NRmYGGaGxxnVspMkxyruJBHehi2iY2t6yTAWSZWga3EY5Fc1naIWxJLQMxE8TZe5VrxZmVsIFk2ZKZN1zhmjxP2691Gklnqxeh1kt0JOL4AkzsVKlPKMBOyPbRtsqdV7bL6MzuDXlLQJbVsAAAA) format("woff2")}
/* Το νέο σήμα έχει δικό του φόντο (τιρκουάζ, στρογγυλεμένο) → χωρίς το λευκό πλαίσιο */
.side-brand[data-brand="omnik"] .mark{background:transparent;padding:0;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.side-brand[data-brand="omnik"] .mark img{border-radius:9px}
.side-brand[data-brand="omnik"] .brow{align-items:center}
.side-brand[data-brand="omnik"] .bname{font-family:"Quebra Expa",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:700;font-size:15px;letter-spacing:.04em;line-height:1.05;color:#dc8033}
/* Οθόνη σύνδεσης (brand/omnik/login.html · brandLoginMark στο 22) — το ίδιο αρχείο με το εικονίδιο της εφαρμογής */
.login-card .brand-login-img{display:block;margin:0 auto;width:92px;height:92px;border-radius:21px;
  box-shadow:0 6px 18px rgba(21,36,59,.28)}
.login-card .brand-login-sub{font-size:10px;color:var(--muted);letter-spacing:.5px;margin:8px 0 6px}
/* Εφέ σύνδεσης/εξόδου (40): το εικονίδιο της εφαρμογής ΧΩΡΙΣ λευκό πλαίσιο + «OMNIK» στη γραμματοσειρά του brand */
html[data-brand="omnik"] .li-mark .li-ic{background:transparent;padding:0}
html[data-brand="omnik"] .li-mark .li-ic img{object-fit:cover;border-radius:15px}
html[data-brand="omnik"] .li-mark .li-txt small.li-bn{font-family:"Quebra Expa",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:700;font-size:12.5px;letter-spacing:.08em;color:#dc8033;margin-top:5px}
