/* ============================================================================
   FLS × CIBINNO AI — stiluri pentru modulele noi.
   Extinde limbajul vizual din app.html (aceleași variabile CSS, aceleași
   raze/umbre/tipografie). Nimic din stilurile existente nu se suprascrie.
   ========================================================================== */

/* ---------- Butoane & controale ---------- */
.fbtn{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);
  border-radius:8px;padding:7px 12px;font-family:inherit;font-size:11.5px;font-weight:600;
  color:var(--ink);cursor:pointer;white-space:nowrap;transition:border-color .13s,background .13s,box-shadow .13s}
.fbtn:hover{border-color:var(--blue);color:var(--blue);background:#F7F9FF}
.fbtn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.fbtn.primary:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff}
.fbtn.dark{background:#1E1B4B;border-color:#1E1B4B;color:#fff}
.fbtn.dark:hover{background:#312E81;border-color:#312E81;color:#fff}
.fbtn.ghost{background:transparent}
.fbtn.sm{padding:5px 9px;font-size:11px}
.fbtn:disabled{opacity:.45;cursor:not-allowed}
.fbtn.on{background:var(--blue-bg);border-color:var(--blue);color:var(--blue-dark)}
.fbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.fbar .sp{flex:1}
.fseg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.fseg button{background:#fff;border:none;border-right:1px solid var(--line);padding:6px 11px;
  font-family:inherit;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer}
.fseg button:last-child{border-right:none}
.fseg button.on{background:var(--blue);color:#fff}
.fseg button:hover:not(.on){background:#F4F6FB;color:var(--ink)}
.finput,.fsel{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-family:inherit;
  font-size:11.5px;color:var(--ink);background:#fff;min-width:0}
.finput:focus,.fsel:focus{outline:none;border-color:var(--blue)}
.fsearch{position:relative;display:inline-flex;align-items:center}
.fsearch input{padding-left:28px}
.fsearch::before{content:"⌕";position:absolute;left:10px;color:var(--muted);font-size:13px}

th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--blue)}
th.sorted::after{content:"▾";margin-left:4px;color:var(--blue)}
th.sorted[data-asc="1"]::after{content:"▴"}

/* ---------- Toast ---------- */
#fls-toasts{position:fixed;right:18px;bottom:18px;z-index:400;display:flex;flex-direction:column;gap:8px}
.fls-toast{display:flex;align-items:center;gap:9px;background:#16182E;color:#fff;font-size:12px;
  font-weight:500;padding:11px 15px;border-radius:10px;box-shadow:0 12px 30px rgba(10,15,40,.34);
  animation:flsIn .22s cubic-bezier(.2,.9,.3,1.3);max-width:340px}
.fls-toast .ic{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;
  border-radius:50%;background:var(--green);font-size:11px;font-weight:700;flex-shrink:0}
.fls-toast.warn .ic{background:var(--amber)}
.fls-toast.err .ic{background:var(--red)}
.fls-toast.out{animation:flsOut .24s forwards}
@keyframes flsIn{from{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:none}}
@keyframes flsOut{to{opacity:0;transform:translateX(30px)}}

/* ---------- Drawer lateral ---------- */
#fls-drawer{position:fixed;inset:0;z-index:250;pointer-events:none}
#fls-drawer .dw-ov{position:absolute;inset:0;background:rgba(17,22,45,.5);opacity:0;transition:opacity .24s}
#fls-drawer .dw-pane{position:absolute;top:0;right:0;height:100%;width:min(560px,100%);background:#fff;
  display:flex;flex-direction:column;box-shadow:-16px 0 46px rgba(10,15,40,.3);
  transform:translateX(100%);transition:transform .26s cubic-bezier(.3,.8,.3,1)}
#fls-drawer.on{pointer-events:auto}
#fls-drawer.on .dw-ov{opacity:1}
#fls-drawer.on .dw-pane{transform:none}
.dw-head{background:linear-gradient(120deg,#1E1B4B,#312E81);color:#fff;padding:17px 20px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-shrink:0}
.dw-t{font-family:'Poppins';font-size:15.5px;font-weight:600}
.dw-s{font-size:11px;color:#C7CBF0;margin-top:3px}
.dw-x{background:rgba(255,255,255,.16);color:#fff;border:none;width:28px;height:28px;border-radius:8px;
  font-size:13px;cursor:pointer;flex-shrink:0;font-family:inherit}
.dw-x:hover{background:rgba(255,255,255,.3)}
.dw-tabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--line);background:#FAFBFE;
  overflow-x:auto;flex-shrink:0;-webkit-overflow-scrolling:touch}
.dw-tab{background:none;border:none;border-bottom:2px solid transparent;padding:10px 10px;
  font-family:inherit;font-size:11.5px;font-weight:500;color:var(--muted);cursor:pointer;white-space:nowrap}
.dw-tab:hover{color:var(--ink)}
.dw-tab.active{color:var(--blue);font-weight:600;border-bottom-color:var(--blue)}
.dw-body{padding:16px 20px;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}
.dw-body h5{font-family:'Poppins';font-size:11px;color:var(--blue-dark);margin:15px 0 7px;
  text-transform:uppercase;letter-spacing:.05em}
.dw-body h5:first-child{margin-top:0}
.dw-body p{font-size:12.5px;color:#444;margin-bottom:7px}
.dw-body ul{margin:4px 0 9px 18px}
.dw-body li{font-size:12.5px;margin-bottom:4px;color:#444}

/* linii cheie-valoare în drawer */
.dw-kv{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:12px;margin-bottom:10px}
.dw-kv dt{color:var(--muted)}
.dw-kv dd{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}

/* ---------- Stat grid ---------- */
/* Un singur rând pe desktop, oricâte casete ar fi (unele view-uri au 10).
   Dacă nu încap, se derulează lateral — nu se rup pe al doilea rând. */
.fstats{display:flex;gap:9px;margin-bottom:12px;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.fstats::-webkit-scrollbar{height:5px}
.fstats::-webkit-scrollbar-thumb{background:#D3D9E8;border-radius:3px}
.fstats::-webkit-scrollbar-track{background:transparent}
.fstat{background:#F6F8FC;border:1px solid var(--line);border-radius:9px;padding:10px 12px;
  flex:1 1 0;min-width:96px}
.fstat b{font-family:'Poppins';font-size:17px;color:var(--blue);display:block;line-height:1.2;
  font-variant-numeric:tabular-nums}
.fstat span{display:block;font-size:9.5px;color:var(--muted);margin-top:2px;text-transform:uppercase;
  letter-spacing:.04em;font-weight:600}
.fstat.green b{color:var(--green)} .fstat.red b{color:var(--red)}
.fstat.amber b{color:var(--amber)} .fstat.purple b{color:var(--purple)}

/* ---------- Loading / empty ---------- */
.fls-loading{display:flex;align-items:center;gap:9px;padding:22px;color:var(--muted);font-size:12px}
.fls-loading .sp{width:15px;height:15px;border:2px solid var(--line);border-top-color:var(--blue);
  border-radius:50%;animation:flsSpin .7s linear infinite;display:inline-block}
@keyframes flsSpin{to{transform:rotate(360deg)}}
.fls-empty{text-align:center;padding:34px 18px;color:var(--muted)}
.fls-empty .ic{font-size:30px;color:#C9D0E3;margin-bottom:6px}
.fls-empty b{display:block;font-size:13px;color:var(--ink);margin-bottom:3px}
.fls-empty span{font-size:11.5px}

/* ---------- Legendă & axe pentru SVG ---------- */
.fls-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;font-size:10.5px;color:var(--muted)}
.fls-legend span{display:inline-flex;align-items:center;gap:5px}
.fls-legend i{width:9px;height:9px;border-radius:2px;display:inline-block}
.fls-xaxis{display:flex;font-size:9.5px;color:var(--muted);margin-top:3px}
.fls-xaxis span{text-align:center;flex-shrink:0}

/* ============================================================================
   GANTT
   ========================================================================== */
.gantt{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff}
.gantt-scroll{overflow-x:auto;overflow-y:auto;max-height:620px;-webkit-overflow-scrolling:touch;position:relative}
.gantt-grid{display:grid;min-width:max-content;position:relative}
/* coloana stângă (WBS) — sticky */
.g-left{position:sticky;left:0;z-index:3;background:#fff;border-right:2px solid var(--line);
  width:290px;min-width:290px}
.g-hd{background:#F6F8FC;border-bottom:1px solid var(--line);font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:.045em;color:var(--muted);padding:8px 10px;
  position:sticky;top:0;z-index:4;height:56px;display:flex;align-items:flex-end}
.g-left .g-hd{z-index:6}
.g-row{display:flex;align-items:center;gap:7px;height:31px;padding:0 10px;font-size:11.5px;
  border-bottom:1px solid var(--rowline);white-space:nowrap;overflow:hidden;cursor:pointer}
.g-row:hover{background:#F5F7FE}
.g-row.sel{background:var(--blue-bg)}
.g-row.grp{background:#F6F8FC;font-weight:700}
.g-row .tw{cursor:pointer;color:var(--muted);width:11px;flex-shrink:0;font-size:9px}
.g-row .nm{overflow:hidden;text-overflow:ellipsis;flex:1}
.g-row .nm small{color:var(--muted);font-weight:400;margin-right:5px;font-variant-numeric:tabular-nums}
.g-row.crit .nm{color:var(--red)}
.g-row .ic{font-size:10px;flex-shrink:0}

/* zona timeline */
.g-time{position:relative;background:#fff}
.g-time .g-hd{padding:0;display:block;height:56px}
.g-months{display:flex;height:26px;border-bottom:1px solid var(--line)}
.g-month{border-right:1px solid var(--line);font-size:10px;font-weight:700;color:var(--ink);
  padding:5px 7px;white-space:nowrap;overflow:hidden;background:#F6F8FC;box-sizing:border-box}
.g-ticks{display:flex;height:30px}
.g-tick{border-right:1px solid var(--rowline);font-size:8.5px;color:var(--muted);text-align:center;
  padding-top:9px;box-sizing:border-box;background:#FAFBFE;flex-shrink:0}
.g-tick.we{background:#F1F3F9}
.g-tick.today{background:#FDECEC;color:var(--red);font-weight:700}
.g-lanes{position:relative}
.g-lane{height:31px;border-bottom:1px solid var(--rowline);position:relative}
.g-lane:hover{background:#FAFBFE}
.g-lane.grp{background:#F6F8FC}
.g-lane.sel{background:var(--blue-bg)}
/* linii verticale de grilă */
.g-vline{position:absolute;top:0;bottom:0;width:1px;background:var(--rowline);pointer-events:none}
.g-vline.we{background:#F1F3F9;width:var(--gw,10px)}
.g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--red);z-index:2;pointer-events:none}
.g-today::before{content:"AZI";position:absolute;top:-19px;left:50%;transform:translateX(-50%);
  background:var(--red);color:#fff;font-size:8px;font-weight:700;padding:1px 5px;border-radius:3px;letter-spacing:.05em}

/* bare */
.g-bar{position:absolute;top:6px;height:15px;border-radius:4px;background:var(--blue);cursor:grab;
  display:flex;align-items:center;overflow:visible;box-shadow:0 1px 2px rgba(20,30,70,.14);
  transition:box-shadow .12s,filter .12s}
.g-bar:hover{box-shadow:0 4px 12px rgba(20,30,70,.26);filter:brightness(1.06);z-index:3}
.g-bar:active{cursor:grabbing}
.g-bar.dragging{opacity:.75;z-index:9;box-shadow:0 8px 22px rgba(20,30,70,.34)}
.g-bar .fill{position:absolute;left:0;top:0;bottom:0;background:rgba(255,255,255,.42);border-radius:4px 0 0 4px;
  pointer-events:none}
.g-bar .lbl{position:absolute;left:calc(100% + 7px);font-size:10px;color:var(--muted);white-space:nowrap;
  pointer-events:none;line-height:15px}
.g-bar.crit{background:var(--red)}
.g-bar.done{background:var(--green)}
.g-bar.late{background:var(--amber)}
.g-bar.plan{background:#9AA6C4}
.g-bar.grp{background:#312E81;height:9px;top:9px;border-radius:2px}
.g-bar.grp::before,.g-bar.grp::after{content:"";position:absolute;bottom:-4px;border:5px solid transparent;
  border-top-color:#312E81}
.g-bar.grp::before{left:0} .g-bar.grp::after{right:0}
/* handle de resize */
.g-bar .rz{position:absolute;top:0;bottom:0;width:6px;cursor:ew-resize;z-index:2}
.g-bar .rz.l{left:-2px} .g-bar .rz.r{right:-2px}
.g-bar:hover .rz{background:rgba(255,255,255,.5)}
/* baseline (bară fantomă sub bara curentă) */
.g-base{position:absolute;top:23px;height:4px;border-radius:2px;background:#C9D0E3;pointer-events:none}
/* realizat */
.g-actual{position:absolute;top:23px;height:4px;border-radius:2px;background:var(--green);pointer-events:none}
/* milestone */
.g-ms{position:absolute;top:8px;width:12px;height:12px;background:var(--purple);transform:rotate(45deg);
  cursor:pointer;box-shadow:0 1px 3px rgba(20,30,70,.28)}
.g-ms.late{background:var(--red)}
.g-ms:hover{filter:brightness(1.15)}
/* dependențe */
.g-deps{position:absolute;inset:0;pointer-events:none;z-index:1}
.g-deps path{stroke:#94A3C4;stroke-width:1.2;fill:none;marker-end:url(#garrow)}
.g-deps path.crit{stroke:var(--red);stroke-width:1.6}
/* semnale pe bară */
.g-flag{position:absolute;top:-4px;font-size:9px;line-height:1}
.g-flag.warn{color:var(--amber)} .g-flag.err{color:var(--red)}

.gantt-legend{display:flex;gap:13px;flex-wrap:wrap;padding:9px 14px;border-top:1px solid var(--line);
  background:#FAFBFE;font-size:10.5px;color:var(--muted)}
.gantt-legend span{display:inline-flex;align-items:center;gap:5px}
.gantt-legend i{width:14px;height:7px;border-radius:2px;display:inline-block}
.gantt-legend i.ms{width:9px;height:9px;transform:rotate(45deg);border-radius:0}

/* fullscreen */
.gantt.fs{position:fixed;inset:12px;z-index:260;margin:0;box-shadow:0 30px 70px rgba(10,15,40,.4)}
.gantt.fs .gantt-scroll{max-height:calc(100vh - 120px)}

/* ============================================================================
   RESOURCE SCHEDULER
   ========================================================================== */
.rs{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff}
.rs-scroll{overflow:auto;max-height:600px;-webkit-overflow-scrolling:touch}
.rs-grid{display:flex;min-width:max-content}
.rs-left{position:sticky;left:0;z-index:3;background:#fff;border-right:2px solid var(--line);
  width:220px;min-width:220px}
.rs-hd{background:#F6F8FC;border-bottom:1px solid var(--line);height:46px;position:sticky;top:0;z-index:4;
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.045em;color:var(--muted);
  display:flex;align-items:center;padding:0 11px}
.rs-left .rs-hd{z-index:6}
.rs-cat{background:#EEF1F8;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  color:var(--blue-dark);padding:5px 11px;border-bottom:1px solid var(--line);height:24px;
  display:flex;align-items:center}
.rs-res{display:flex;align-items:center;gap:8px;height:38px;padding:0 11px;border-bottom:1px solid var(--rowline);
  font-size:11.5px;cursor:pointer}
.rs-res:hover{background:#F5F7FE}
.rs-res .av{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.rs-res .av.ok{background:var(--green)} .rs-res .av.busy{background:var(--amber)}
.rs-res .av.cf{background:var(--red)} .rs-res .av.mnt{background:var(--muted)}
.rs-res .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.rs-res .nm small{display:block;font-weight:400;color:var(--muted);font-size:9.5px}
.rs-time{position:relative;background:#fff;flex:1}
.rs-days{display:flex;height:46px;position:sticky;top:0;z-index:2;background:#F6F8FC;
  border-bottom:1px solid var(--line)}
.rs-day{border-right:1px solid var(--rowline);text-align:center;font-size:9px;color:var(--muted);
  padding-top:7px;box-sizing:border-box;flex-shrink:0;line-height:1.35}
.rs-day b{display:block;font-size:10.5px;color:var(--ink)}
.rs-day.we{background:#EDEFF5}
.rs-day.today{background:#FDECEC;color:var(--red)}
.rs-day.today b{color:var(--red)}
.rs-catrow{height:24px;border-bottom:1px solid var(--line);background:#EEF1F8}
.rs-lane{height:38px;border-bottom:1px solid var(--rowline);position:relative}
.rs-lane:hover{background:#FAFBFE}
.rs-lane.drop{background:var(--blue-bg);box-shadow:inset 0 0 0 2px var(--blue)}
.rs-alloc{position:absolute;top:6px;height:26px;border-radius:6px;padding:0 8px;display:flex;
  align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:#fff;cursor:grab;overflow:hidden;
  white-space:nowrap;box-shadow:0 1px 3px rgba(20,30,70,.2);transition:box-shadow .12s,filter .12s}
.rs-alloc:hover{box-shadow:0 5px 14px rgba(20,30,70,.28);filter:brightness(1.07);z-index:3}
.rs-alloc:active{cursor:grabbing}
.rs-alloc.dragging{opacity:.7;z-index:9}
.rs-alloc small{opacity:.8;font-weight:400}
.rs-alloc.conflict{background:repeating-linear-gradient(45deg,#DC2626,#DC2626 6px,#B91C1C 6px,#B91C1C 12px)!important;
  animation:rsPulse 1.5s ease-in-out infinite}
@keyframes rsPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.5)}50%{box-shadow:0 0 0 4px rgba(220,38,38,0)}}
.rs-alloc .rz{position:absolute;top:0;bottom:0;width:7px;cursor:ew-resize}
.rs-alloc .rz.l{left:0} .rs-alloc .rz.r{right:0}
.rs-load{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.35)}
.rs-load i{display:block;height:100%;background:rgba(255,255,255,.9)}

/* ---------- Heatmap capacitate ---------- */
.hm{display:grid;gap:2px;overflow-x:auto}
.hm-cell{height:30px;border-radius:4px;display:flex;align-items:center;justify-content:center;
  font-size:9.5px;font-weight:700;color:#fff;cursor:pointer;min-width:38px;transition:transform .1s}
.hm-cell:hover{transform:scale(1.08);z-index:2;box-shadow:0 4px 12px rgba(20,30,70,.25)}
.hm-lbl{font-size:10px;color:var(--muted);display:flex;align-items:center;height:30px;
  font-weight:600;white-space:nowrap;padding-right:7px}
.hm-hd{font-size:9px;color:var(--muted);text-align:center;font-weight:700;padding-bottom:3px}

/* ============================================================================
   KANBAN (pipeline licitații)
   ========================================================================== */
.kb{display:flex;gap:11px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}
.kb-col{min-width:236px;width:236px;flex-shrink:0;background:#F6F8FC;border:1px solid var(--line);
  border-radius:10px;padding:9px;transition:background .14s,box-shadow .14s}
.kb-col.over{background:var(--blue-bg);box-shadow:inset 0 0 0 2px var(--blue)}
.kb-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--blue-dark)}
.kb-h .n{background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 7px;
  font-size:10px;color:var(--muted)}
.kb-h .v{font-size:9.5px;color:var(--muted);font-weight:600;text-transform:none;letter-spacing:0}
.kb-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 11px;margin-bottom:7px;
  cursor:grab;transition:box-shadow .13s,transform .1s,border-color .13s}
.kb-card:hover{box-shadow:0 6px 18px rgba(20,30,70,.14);transform:translateY(-1px);border-color:#C9D3F0}
.kb-card:active{cursor:grabbing}
.kb-card.dragging{opacity:.45;transform:scale(.97)}
.kb-card .a{font-size:12px;font-weight:700;line-height:1.3}
.kb-card .o{font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.35}
.kb-card .m{display:flex;justify-content:space-between;align-items:center;margin-top:8px;
  padding-top:7px;border-top:1px solid var(--rowline);font-size:10.5px}
.kb-card .m b{font-variant-numeric:tabular-nums}
.kb-card .tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}
.kb-card .tag{font-size:9px;font-weight:600;padding:2px 6px;border-radius:5px;background:var(--grey-bg);color:var(--muted)}
.kb-card .tag.red{background:var(--red-bg);color:var(--red)}
.kb-card .tag.amber{background:var(--amber-bg);color:var(--amber)}
.kb-card .tag.green{background:var(--green-bg);color:var(--green)}
.kb-card .tag.blue{background:var(--blue-bg);color:var(--blue-dark)}
.kb-empty{border:1.5px dashed var(--line);border-radius:8px;padding:14px;text-align:center;
  font-size:10.5px;color:#B6BECF}

/* scor GO/NO-GO */
.score-ring{position:relative;width:104px;height:104px;flex-shrink:0}
.score-ring .v{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;font-family:'Poppins'}
.score-ring .v b{font-size:26px;font-weight:700;line-height:1}
.score-ring .v span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:1px}
.score-row{display:grid;grid-template-columns:1fr 74px 34px;align-items:center;gap:9px;
  padding:5px 0;font-size:11.5px;border-bottom:1px solid var(--rowline)}
.score-row:last-child{border-bottom:none}
.score-row .sb{height:6px;background:#EBEEF5;border-radius:999px;overflow:hidden}
.score-row .sb i{display:block;height:100%;border-radius:999px;background:var(--blue)}
.score-row .sv{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}

/* ============================================================================
   HARTĂ — Leaflet + tile-uri CARTO (același model ca mockup-ul GEWISS)
   ========================================================================== */
#flsMap{height:460px;border-radius:11px;overflow:hidden;border:1px solid var(--line);
  position:relative;z-index:0;max-width:100%}
.leaflet-container{font-family:'Inter',sans-serif;background:#e8eef3}
.leaflet-popup-content{margin:11px 13px;font-family:'Inter',sans-serif}
.leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 16px 40px rgba(20,30,70,.24)}
/* marker rotund colorat, ca .pmk din GEWISS */
.fmk{border-radius:50%;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);cursor:pointer}
.fmk.pulse{animation:fmkPulse 2s ease-out infinite}
@keyframes fmkPulse{0%{box-shadow:0 0 0 0 rgba(220,38,38,.55)}70%{box-shadow:0 0 0 12px rgba(220,38,38,0)}
  100%{box-shadow:0 0 0 0 rgba(220,38,38,0)}}
/* licitație în pipeline = cerc gol, punctat */
.fmk-lic{border-radius:50%;border:2px dashed #7C3AED;background:#fff;cursor:pointer}
/* bază/depozit = pătrat */
.fmk-base{border-radius:3px;border:2px solid #fff;background:#1E1B4B;
  box-shadow:0 2px 6px rgba(0,0,0,.35);cursor:pointer}
.fpop h4{font-family:'Poppins';font-size:13px;margin-bottom:1px}
.fpop .sub{font-size:10.5px;color:var(--muted);margin-bottom:8px}
.fpop dl{display:grid;grid-template-columns:1fr auto;gap:3px 12px;margin-bottom:9px}
.fpop dt{color:var(--muted);font-size:11px}
.fpop dd{font-weight:600;text-align:right;font-size:11px;font-variant-numeric:tabular-nums}
.fpop .go{display:block;text-align:center;background:var(--blue);color:#fff;font-weight:600;
  font-size:11px;padding:7px;border-radius:7px;text-decoration:none}
.fpop .go:hover{background:var(--blue-dark)}

.map-wrap{position:relative;background:linear-gradient(160deg,#F7F9FE,#EEF1F8);border:1px solid var(--line);
  border-radius:11px;overflow:hidden}
.map-wrap svg{display:block;width:100%;height:auto}
.map-ro{fill:#E4E9F4;stroke:#C3CBE0;stroke-width:1.2}
.map-pin{cursor:pointer;transition:transform .12s}
.map-pin:hover{transform:scale(1.22)}
.map-pin circle.h{opacity:.22}
.map-pin.pulse circle.h{animation:mapPulse 2.1s ease-out infinite}
@keyframes mapPulse{0%{r:8;opacity:.5}100%{r:22;opacity:0}}
.map-lbl{font-size:9px;fill:#4B5568;font-weight:600;pointer-events:none}
.map-base{fill:#1E1B4B}
.map-legend{display:flex;gap:13px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--line);
  background:#fff;font-size:10.5px;color:var(--muted)}
.map-legend span{display:inline-flex;align-items:center;gap:5px}
.map-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
/* quick view pe hartă */
.map-qv{position:absolute;background:#fff;border:1px solid var(--line);border-radius:11px;
  box-shadow:0 16px 40px rgba(20,30,70,.24);padding:13px 15px;width:270px;z-index:5;font-size:11.5px}
.map-qv h4{font-family:'Poppins';font-size:13px;margin-bottom:2px}
.map-qv .sub{font-size:10.5px;color:var(--muted);margin-bottom:9px}
.map-qv dl{display:grid;grid-template-columns:1fr auto;gap:3px 10px;margin-bottom:9px}
.map-qv dt{color:var(--muted);font-size:11px}
.map-qv dd{font-weight:600;text-align:right;font-variant-numeric:tabular-nums;font-size:11px}
.map-qv .x{position:absolute;top:8px;right:9px;cursor:pointer;color:var(--muted);font-size:13px;
  background:none;border:none;font-family:inherit}

/* ============================================================================
   ALERT CENTER
   ========================================================================== */
.alert-card{border:1px solid #F1C9C9;background:#FDF4F4;border-radius:10px;padding:12px 14px;margin-bottom:9px;
  transition:box-shadow .13s}
.alert-card:hover{box-shadow:0 5px 16px rgba(20,30,70,.1)}
.alert-card.amber{border-color:#EAD6A8;background:#FCF7EC}
.alert-card.green{border-color:#BFE3C8;background:#F0FAF2}
.alert-card.blue{border-color:#C6D2F7;background:#F2F5FE}
.alert-card .ah{display:flex;align-items:flex-start;gap:9px;margin-bottom:5px}
.alert-card .sev{width:20px;height:20px;border-radius:6px;background:var(--red);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;font-weight:700}
.alert-card.amber .sev{background:var(--amber)}
.alert-card.green .sev{background:var(--green)}
.alert-card.blue .sev{background:var(--blue)}
.alert-card h4{font-size:12.5px;color:var(--red);flex:1;line-height:1.35}
.alert-card.amber h4{color:var(--amber)}
.alert-card.green h4{color:var(--green)}
.alert-card.blue h4{color:var(--blue-dark)}
.alert-card p{font-size:11.5px;color:#4A4A4A;margin-bottom:8px;line-height:1.5}
.alert-acts{display:flex;gap:6px;flex-wrap:wrap}
.alert-acts .fbtn{padding:4px 9px;font-size:10.5px}

/* ============================================================================
   REPORT BUILDER  (portat din platforma Euro Fittings — aceleași clase rb-*)
   ========================================================================== */
.rb-chip{display:inline-flex;align-items:center;gap:6px;cursor:grab;user-select:none;font-size:11.5px;
  font-weight:700;border-radius:10px;padding:6px 11px;box-shadow:0 1px 2px rgba(16,24,40,.06);
  transition:transform .13s cubic-bezier(.2,.7,.3,1),box-shadow .13s,opacity .15s,filter .15s}
.rb-chip:hover{transform:translateY(-1.5px);box-shadow:0 6px 16px rgba(16,24,40,.16)}
.rb-chip:active{cursor:grabbing;transform:scale(.96)}
.rb-chip.rb-drag-src{opacity:.4;transform:scale(.94)}
.rb-chip--dim{color:#1d4ed8;background:linear-gradient(135deg,#eff6ff,#e0ecff);border:1px solid #bfdbfe}
.rb-chip--meas{color:#6d28d9;background:linear-gradient(135deg,#f5f3ff,#ede9fe);border:1px solid #ddd6fe}
.rb-chip--calc{color:#0f766e;background:linear-gradient(135deg,#f0fdfa,#ccfbf1);border:1px solid #99f6e4}
.rb-chip--used{opacity:.4;filter:grayscale(.35)}
.rb-chip--used::after{content:'✓';font-size:10px;color:#16a34a;font-weight:900}
.rb-zone{border:1.6px dashed var(--line);border-radius:13px;padding:10px 12px;min-height:58px;
  background:#fcfcfd;transition:border-color .16s,background .16s,box-shadow .16s,transform .12s}
body.rb-drag-dim .rb-zone[data-accept="dim"],body.rb-drag-meas .rb-zone[data-accept="meas"]{
  border-color:#93c5fd;border-style:solid;background:#f6faff}
.rb-zone.rb-over{border-color:#2563eb!important;background:#eaf2ff!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.16),0 10px 26px rgba(37,99,235,.2)!important;transform:translateY(-1px)}
.rb-zh{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);
  margin-bottom:7px;display:flex;align-items:center;gap:6px}
.rb-tok{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;background:#fff;
  border:1px solid var(--line);border-left:3px solid #2563eb;border-radius:9px;padding:6px 8px 6px 11px;
  box-shadow:0 1px 3px rgba(16,24,40,.09);transition:transform .1s,box-shadow .1s;
  animation:rbPop .18s cubic-bezier(.2,.9,.3,1.4)}
.rb-tok:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(16,24,40,.14)}
.rb-tok--meas{border-left-color:#7c3aed}
.rb-tok-x{cursor:pointer;color:#b91c1c;font-weight:800;font-size:15px;line-height:1;opacity:.5;transition:opacity .1s}
.rb-tok-x:hover{opacity:1}
@keyframes rbPop{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
.rb-hint{font-size:11px;color:#b3b3bd;font-style:italic}
.rb-grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.rb-pal{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;align-items:center}
.rb-pal .div{width:1px;align-self:stretch;background:var(--line);margin:0 3px}
.rb-lbl{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);
  margin:2px 0 6px}
.rb-tpl{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;background:#f3e8ff;
  color:#6b21a8;border:1px solid #e9d5ff;border-radius:8px;padding:4px 6px 4px 10px}
.rb-tpl .n{cursor:pointer}
.rb-tpl .x{cursor:pointer;color:#dc2626;font-weight:800}
.rb-res table{width:100%;font-variant-numeric:tabular-nums}
.rb-res th{position:sticky;top:0;background:#0e1526;color:#dbe4f5;font-size:10.5px;letter-spacing:.02em;z-index:1}
.rb-res .tbl-scroll{overflow:auto;max-height:560px}
.rb-res tfoot td{font-weight:800;background:#EEF1F8;border-top:2px solid #0e1526}
.rb-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:13px}
.rb-kc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 16px;
  box-shadow:0 1px 3px rgba(16,24,40,.06)}
.rb-kc.tot{background:var(--blue-bg);border-color:var(--blue)}
.rb-kc .k{font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.rb-kc .v{font-family:'Poppins';font-size:21px;font-weight:700;line-height:1.1;margin-top:3px;
  letter-spacing:-.4px;font-variant-numeric:tabular-nums}
.rb-kc.tot .v{color:var(--blue-dark)}
.rb-kc .s{font-size:10.5px;color:var(--muted);margin-top:2px}

/* ---------- Waterfall ---------- */
.wf-bar{position:relative}
.wf-bar rect{transition:opacity .12s}
.wf-bar:hover rect{opacity:.82}

/* ============================================================================
   WIZARD (import Intersoft)
   ========================================================================== */
.wz-steps{display:flex;gap:0;margin-bottom:18px;flex-wrap:wrap}
.wz-step{flex:1;min-width:110px;position:relative;padding:9px 12px 9px 22px;background:#F6F8FC;
  border:1px solid var(--line);border-right:none;font-size:11px;color:var(--muted)}
.wz-step:first-child{border-radius:9px 0 0 9px;padding-left:14px}
.wz-step:last-child{border-radius:0 9px 9px 0;border-right:1px solid var(--line)}
.wz-step::after{content:"";position:absolute;right:-11px;top:50%;transform:translateY(-50%) rotate(45deg);
  width:20px;height:20px;background:#F6F8FC;border-top:1px solid var(--line);border-right:1px solid var(--line);z-index:2}
.wz-step:last-child::after{display:none}
.wz-step.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.wz-step.on::after{background:var(--blue);border-color:var(--blue)}
.wz-step.done{background:var(--green-bg);border-color:#BFE3C8;color:var(--green);font-weight:600}
.wz-step.done::after{background:var(--green-bg);border-color:#BFE3C8}
.wz-step b{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;opacity:.75}
.wz-drop{border:2px dashed var(--line);border-radius:12px;padding:34px 20px;text-align:center;
  background:#FAFBFE;transition:border-color .15s,background .15s;cursor:pointer}
.wz-drop:hover,.wz-drop.over{border-color:var(--blue);background:var(--blue-bg)}
.wz-drop .ic{font-size:34px;color:#C0C9DE;margin-bottom:8px}
.wz-drop b{display:block;font-size:13px;margin-bottom:3px}
.wz-drop span{font-size:11.5px;color:var(--muted)}
.wz-file{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);
  border-radius:9px;padding:10px 13px;margin-bottom:9px}
.wz-file .ic{width:32px;height:32px;border-radius:7px;background:var(--green-bg);color:var(--green);
  display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}

/* mapare coloane */
.map-row{display:grid;grid-template-columns:1fr 28px 1fr 90px;align-items:center;gap:9px;
  padding:7px 0;border-bottom:1px solid var(--rowline);font-size:11.5px}
.map-row:last-child{border-bottom:none}
.map-row .src{font-family:'SF Mono',Menlo,monospace;font-size:11px;background:#F6F8FC;
  border:1px solid var(--line);border-radius:6px;padding:5px 8px}
.map-row .ar{text-align:center;color:var(--blue);font-weight:700}

/* ============================================================================
   SCENARII / WHAT-IF
   ========================================================================== */
.sc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:11px}
.sc-card{border:1px solid var(--line);border-radius:11px;padding:13px 15px;background:#fff;
  cursor:pointer;transition:border-color .13s,box-shadow .13s,transform .1s}
.sc-card:hover{border-color:var(--blue);box-shadow:0 8px 22px rgba(20,30,70,.13);transform:translateY(-1px)}
.sc-card.sel{border-color:var(--blue);border-width:2px;background:#F7F9FF;padding:12px 14px}
.sc-card.base{background:#F6F8FC}
.sc-card .h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.sc-card .h b{font-family:'Poppins';font-size:13px}
.sc-card dl{display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:11.5px}
.sc-card dt{color:var(--muted)}
.sc-card dd{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.sc-card .rec{margin-top:9px;padding-top:8px;border-top:1px solid var(--rowline);font-size:10.5px;
  color:var(--green);font-weight:600}

/* ============================================================================
   FLUX (breadcrumb narativ: licitație → deviz → … → profit)
   ========================================================================== */
.chain{display:flex;align-items:center;gap:0;flex-wrap:wrap;background:#fff;border:1px solid var(--line);
  border-radius:11px;padding:11px 14px;margin-bottom:16px;overflow-x:auto}
.chain-s{display:flex;align-items:center;gap:7px;padding:5px 13px 5px 9px;border-radius:8px;
  font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap;cursor:pointer;
  transition:background .12s,color .12s}
.chain-s:hover{background:#F4F6FB;color:var(--blue)}
.chain-s.on{background:var(--blue-bg);color:var(--blue-dark)}
.chain-s.done{color:var(--green)}
.chain-s .n{width:17px;height:17px;border-radius:50%;background:var(--grey-bg);color:var(--muted);
  display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}
.chain-s.on .n{background:var(--blue);color:#fff}
.chain-s.done .n{background:var(--green);color:#fff}
.chain-a{color:#C3CBE0;font-size:13px;flex-shrink:0}

/* ============================================================================
   RESPONSIVE
   ========================================================================== */
@media(max-width:820px){
  .g-left{width:180px;min-width:180px}
  .rs-left{width:150px;min-width:150px}
  .gantt-scroll,.rs-scroll{max-height:440px}
  #fls-drawer .dw-pane{width:100%}
  .dw-body{padding:14px}
  .kb-col{min-width:212px;width:212px}
  .rb-grid2{grid-template-columns:1fr}
  .rb-zone{min-height:48px}
  .rb-chip{font-size:11px;padding:7px 11px}
  .rb-kpi{grid-template-columns:1fr 1fr}
  .rb-res table{font-size:10.5px}
  .rb-res td,.rb-res th{padding:6px 7px}
  .map-qv{width:min(270px,86vw)}
  /* pe mobil rămân tot pe un rând, derulabil lateral (nu se strâng ilizibil) */
  .fstat{flex:0 0 auto;min-width:118px}
  .wz-steps{flex-direction:column}
  .wz-step{border-right:1px solid var(--line);border-bottom:none;border-radius:0!important;padding-left:14px}
  .wz-step:first-child{border-radius:9px 9px 0 0!important}
  .wz-step:last-child{border-bottom:1px solid var(--line);border-radius:0 0 9px 9px!important}
  .wz-step::after{display:none}
  .map-row{grid-template-columns:1fr;gap:4px}
  .map-row .ar{text-align:left}
  .gantt.fs{inset:0;border-radius:0}
  #fls-toasts{left:12px;right:12px;bottom:12px}
  .fls-toast{max-width:none}
}
@media(max-width:480px){
  .rb-kpi{grid-template-columns:1fr}
  .score-ring{width:88px;height:88px}
  .chain{padding:9px 10px}
}

/* ============================================================================
   VIZUALIZARE MOBILĂ OPERAȚIONALĂ (șef de echipă în teren)
   Nu e desktop-ul micșorat — e un flux dedicat.
   ========================================================================== */
.mob-only{display:none}
@media(max-width:820px){
  .mob-only{display:block}
  .desk-only{display:none!important}
}
.mob-hero{background:linear-gradient(125deg,#1E1B4B,#312E81 62%,#3F3AA8);border-radius:12px;
  padding:15px 17px;color:#fff;margin-bottom:13px}
.mob-hero .d{font-size:10.5px;color:#C7CBF0;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.mob-hero h3{font-family:'Poppins';font-size:17px;font-weight:600;margin-top:3px}
.mob-hero p{font-size:11.5px;color:#C7CBF0;margin-top:4px}
.mob-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:13px}
.mob-tile{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 13px;cursor:pointer}
.mob-tile:active{background:#F4F6FB}
.mob-tile .ic{font-size:18px;margin-bottom:5px;display:block}
.mob-tile b{font-size:12.5px;display:block}
.mob-tile span{font-size:10.5px;color:var(--muted)}
.mob-task{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);
  border-radius:10px;padding:11px 13px;margin-bottom:7px}
.mob-task .st{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.mob-task .b{flex:1;min-width:0}
.mob-task b{font-size:12px;display:block}
.mob-task span{font-size:10.5px;color:var(--muted)}

/* ============================================================================
   FAZA 2 — bara transversală (căutare globală · AI · notificări)
   ========================================================================== */
#gsBtn,#aiBtn,#notifBtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:#fff;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:11.5px;
  font-weight:600;color:var(--muted);padding:8px 11px;cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:border-color .13s,color .13s,background .13s}
#gsBtn:hover,#aiBtn:hover,#notifBtn:hover{border-color:var(--blue);color:var(--blue);background:#F7F9FF}
#gsBtn{min-width:120px;justify-content:flex-start}
#aiBtn{background:#1E1B4B;border-color:#1E1B4B;color:#fff}
#aiBtn:hover{background:#312E81;border-color:#312E81;color:#fff}
#notifBtn{position:relative;min-width:38px}
#notifDot{position:absolute;top:4px;right:5px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;
  background:var(--red);color:#fff;font-size:8.5px;font-weight:700;font-style:normal;line-height:15px;
  text-align:center;display:none}
#notifDot.on{display:block}
@media(max-width:980px){#gsBtn{min-width:0}#gsBtn span{display:none}}
@media(max-width:820px){#gsBtn,#aiBtn,#notifBtn{padding:7px 9px}}

/* --- Overlay căutare globală (⌘K) --- */
#gsOv{position:fixed;inset:0;z-index:320;background:rgba(17,22,45,.55);display:none;
  align-items:flex-start;justify-content:center;padding:80px 18px 18px}
#gsOv.on{display:flex}
.gs-box{background:#fff;border-radius:14px;width:100%;max-width:620px;max-height:76vh;display:flex;
  flex-direction:column;box-shadow:0 30px 70px rgba(10,15,40,.45);overflow:hidden}
.gs-in{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line)}
.gs-in input{flex:1;border:none;outline:none;font-family:inherit;font-size:16px;color:var(--ink);background:none}
.gs-in .k{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:2px 6px}
.gs-res{overflow-y:auto;padding:8px}
.gs-grp{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
  padding:9px 10px 4px}
.gs-it{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer}
.gs-it:hover,.gs-it.sel{background:var(--blue-bg)}
.gs-it .t{font-size:12.5px;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-it .s{font-size:10.5px;color:var(--muted);white-space:nowrap}

/* --- Panou AI Assistant --- */
#aiPane{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);z-index:310;background:#fff;
  box-shadow:-16px 0 46px rgba(10,15,40,.3);transform:translateX(100%);transition:transform .26s cubic-bezier(.3,.8,.3,1);
  display:flex;flex-direction:column}
#aiPane.on{transform:none}
.ai-h{background:linear-gradient(120deg,#1E1B4B,#312E81);color:#fff;padding:16px 18px;
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.ai-h b{font-family:'Poppins';font-size:14.5px;font-weight:600}
.ai-h small{display:block;font-size:10.5px;color:#C7CBF0;margin-top:2px}
.ai-h button{background:rgba(255,255,255,.16);color:#fff;border:none;width:28px;height:28px;
  border-radius:8px;cursor:pointer;font-family:inherit}
.ai-body{flex:1;overflow-y:auto;padding:16px}
.ai-foot{border-top:1px solid var(--line);padding:11px 14px;flex-shrink:0}
.ai-foot input{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 12px;
  font-family:inherit;font-size:12.5px}
.ai-foot input:focus{outline:none;border-color:var(--blue)}

/* --- Panou notificări / action center --- */
#nfPane{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);z-index:310;background:#fff;
  box-shadow:-16px 0 46px rgba(10,15,40,.3);transform:translateX(100%);transition:transform .26s cubic-bezier(.3,.8,.3,1);
  display:flex;flex-direction:column}
#nfPane.on{transform:none}
.nf-it{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid var(--rowline);cursor:pointer}
.nf-it:hover{background:#F7F9FF}
.nf-it.unread{background:#F7F9FF}
.nf-it .p{width:4px;border-radius:2px;flex-shrink:0}
.nf-it .p.Critical{background:var(--red)} .nf-it .p.High{background:var(--amber)}
.nf-it .p.Normal{background:var(--blue)} .nf-it .p.Information{background:#C3CBE0}
.nf-it b{font-size:12px;display:block;margin-bottom:2px}
.nf-it p{font-size:11px;color:var(--muted);margin:0;line-height:1.45}
.nf-it .d{font-size:9.5px;color:#9AA3B8;margin-top:4px}

/* --- Organigramă --- */
.org{display:flex;flex-direction:column;align-items:center;gap:0;overflow-x:auto;padding:8px 0}
.org-lvl{display:flex;gap:12px;justify-content:center;position:relative;padding:16px 0}
.org-lvl::before{content:"";position:absolute;top:0;left:50%;width:1px;height:16px;background:var(--line)}
.org-lvl:first-child::before{display:none}
.org-n{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 13px;min-width:140px;
  text-align:center;cursor:pointer;transition:border-color .13s,box-shadow .13s}
.org-n:hover{border-color:var(--blue);box-shadow:0 6px 16px rgba(20,30,70,.12)}
.org-n b{font-size:12px;display:block}
.org-n span{font-size:10px;color:var(--muted)}
.org-n.ceo{background:#1E1B4B;border-color:#1E1B4B;color:#fff}
.org-n.ceo span{color:#C7CBF0}

/* --- Matrice competențe --- */
.sk-grid{overflow-x:auto}
.sk-grid table{min-width:640px}
.sk-c{width:26px;height:26px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;cursor:pointer}
.sk-c.ok{background:var(--green-bg);color:var(--green)}
.sk-c.soon{background:var(--amber-bg);color:var(--amber)}
.sk-c.exp{background:var(--red-bg);color:var(--red)}
.sk-c.no{background:var(--grey-bg);color:#C3CBE0}

/* --- Funnel vânzări --- */
.fun{display:flex;flex-direction:column;gap:4px}
.fun-s{display:grid;grid-template-columns:130px 1fr 90px;align-items:center;gap:10px;font-size:11.5px}
.fun-b{height:26px;border-radius:5px;display:flex;align-items:center;padding-left:9px;color:#fff;
  font-size:10.5px;font-weight:700;transition:filter .12s;cursor:pointer}
.fun-b:hover{filter:brightness(1.08)}

/* ============================================================================
   CONSTRUCTOR DOSAR DE DEPUNERE (Licitații) — experți AI + validare manager
   ========================================================================== */
.bd-flow{display:flex;gap:0;margin-bottom:16px;flex-wrap:wrap}
.bd-st{flex:1;min-width:96px;position:relative;padding:9px 12px 9px 20px;background:#F6F8FC;
  border:1px solid var(--line);border-right:none;font-size:11px;color:var(--muted);text-align:center}
.bd-st:first-child{border-radius:9px 0 0 9px}
.bd-st:last-child{border-radius:0 9px 9px 0;border-right:1px solid var(--line)}
.bd-st::after{content:"";position:absolute;right:-10px;top:50%;transform:translateY(-50%) rotate(45deg);
  width:18px;height:18px;background:#F6F8FC;border-top:1px solid var(--line);border-right:1px solid var(--line);z-index:2}
.bd-st:last-child::after{display:none}
.bd-st.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.bd-st.on::after{background:var(--blue);border-color:var(--blue)}
.bd-st.done{background:var(--green-bg);border-color:#BFE3C8;color:var(--green);font-weight:600}
.bd-st.done::after{background:var(--green-bg);border-color:#BFE3C8}
.bd-st b{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;opacity:.8}

/* selector de rol / expert */
.bd-roles{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.bd-role{flex:1;min-width:150px;border:1.5px solid var(--line);border-radius:11px;padding:11px 13px;
  cursor:pointer;background:#fff;transition:border-color .13s,box-shadow .13s,transform .1s;position:relative}
.bd-role:hover{box-shadow:0 6px 16px rgba(20,30,70,.12);transform:translateY(-1px)}
.bd-role.on{border-width:2px;padding:10px 12px}
.bd-role .ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:15px;color:#fff;margin-bottom:7px}
.bd-role b{font-size:12.5px;display:block}
.bd-role .r{font-size:10px;color:var(--muted);margin-top:1px;line-height:1.35}
.bd-role .pr{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:10px;color:var(--muted)}
.bd-role .pr .bar{flex:1}
.bd-role.ilum{border-color:#E4B85C} .bd-role.ilum.on{border-color:#D98800} .bd-role.ilum .ic{background:#D98800}
.bd-role.digi{border-color:#B9A7EE} .bd-role.digi.on{border-color:#7C3AED} .bd-role.digi .ic{background:#7C3AED}
.bd-role.ofer{border-color:#9DB4F0} .bd-role.ofer.on{border-color:#2C53E0} .bd-role.ofer .ic{background:#2C53E0}
.bd-role.mgr{border-color:#8FA0BE} .bd-role.mgr.on{border-color:#1E1B4B} .bd-role.mgr .ic{background:#1E1B4B}

/* secțiune de dosar (grup de piese pe expert) */
.bd-sec{border:1px solid var(--line);border-radius:11px;margin-bottom:12px;overflow:hidden;background:#fff}
.bd-sec-h{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#FAFBFE;
  border-bottom:1px solid var(--line);cursor:pointer}
.bd-sec-h .ic{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;
  font-size:13px;color:#fff;flex-shrink:0}
.bd-sec-h.ilum .ic{background:#D98800} .bd-sec-h.digi .ic{background:#7C3AED} .bd-sec-h.ofer .ic{background:#2C53E0}
.bd-sec-h b{font-size:12.5px;flex:1}
.bd-sec-h b small{display:block;font-weight:400;color:var(--muted);font-size:10px}
.bd-sec-h .exp{font-size:10px;color:var(--muted)}
.bd-piesa{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;
  padding:9px 14px;border-bottom:1px solid var(--rowline);font-size:12px}
.bd-piesa:last-child{border-bottom:none}
.bd-piesa:hover{background:#F7F9FF}
.bd-piesa .stx{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;flex-shrink:0}
.bd-piesa .stx.gol{background:var(--grey-bg);color:#B6BECF}
.bd-piesa .stx.generat{background:var(--amber-bg);color:var(--amber)}
.bd-piesa .stx.revizuit{background:var(--blue-bg);color:var(--blue-dark)}
.bd-piesa .stx.final{background:var(--green-bg);color:var(--green)}
.bd-piesa .nm{overflow:hidden}
.bd-piesa .nm b{font-weight:600}
.bd-piesa .nm small{color:var(--muted);display:block;font-size:10px}
.bd-piesa .oblig{font-size:8.5px;font-weight:700;color:var(--red);letter-spacing:.03em}
.bd-piesa .acts{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}

/* card de validare manager */
.bd-validate{border:1.5px solid #C6D2F7;background:#F2F5FE;border-radius:11px;padding:14px 16px;margin-bottom:14px}
.bd-validate.ok{border-color:#BFE3C8;background:#F0FAF2}
.bd-validate.wait{border-color:#EAD6A8;background:#FCF7EC}
.bd-validate h4{font-size:13px;margin-bottom:4px;display:flex;align-items:center;gap:8px}
.bd-gen-ov{position:fixed;inset:0;z-index:280;background:rgba(17,22,45,.55);display:flex;
  align-items:center;justify-content:center;padding:18px}
.bd-gen{background:#fff;border-radius:14px;max-width:460px;width:100%;padding:22px 24px;
  box-shadow:0 24px 64px rgba(10,15,40,.45)}
.bd-gen h4{font-family:'Poppins';font-size:15px;margin-bottom:3px}
.bd-gen .sub{font-size:11.5px;color:var(--muted);margin-bottom:14px}
.bd-gen-step{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:12px;color:var(--muted)}
.bd-gen-step .d{width:16px;height:16px;border-radius:50%;flex-shrink:0;border:2px solid var(--line)}
.bd-gen-step.on{color:var(--ink);font-weight:600}
.bd-gen-step.on .d{border-color:var(--blue);border-top-color:transparent;animation:flsSpin .7s linear infinite}
.bd-gen-step.done{color:var(--green)}
.bd-gen-step.done .d{border-color:var(--green);background:var(--green)}

/* ============================================================================
   SCANNER BONURI FISCALE (Financiar)
   ========================================================================== */
.rc-drop{border:2px dashed var(--line);border-radius:12px;padding:26px 20px;text-align:center;
  background:#FAFBFE;cursor:pointer;transition:border-color .15s,background .15s;
  display:flex;flex-direction:column;align-items:center;justify-content:center}
.rc-drop:hover{border-color:var(--blue);background:var(--blue-bg)}
.rc-drop .ic{font-size:38px;margin-bottom:8px}
.rc-drop b{font-size:14px;margin-bottom:4px}
.rc-drop span{font-size:11.5px;color:var(--muted);line-height:1.5}
.rc-cats{margin-top:12px}
.rc-cat{display:grid;grid-template-columns:150px 1fr 78px;align-items:center;gap:9px;
  font-size:11.5px;padding:4px 0}
.rc-cat b{text-align:right;font-variant-numeric:tabular-nums}
.rc-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);
  border-radius:11px;padding:11px 13px;margin-bottom:8px}
.rc-thumb{width:46px;height:56px;border-radius:8px;background:linear-gradient(135deg,#eef1f7,#dbe1ee);
  display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.rc-body{flex:1;min-width:0}
.rc-body b{font-size:12.5px}
.rc-meta{font-size:10.5px;color:var(--muted);margin-top:2px}
.rc-alert{font-size:10.5px;color:var(--red);margin-top:3px}
.rc-conf{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:8px;margin-top:6px;
  font-size:10px;color:var(--muted)}
.rc-acts{display:flex;flex-direction:column;gap:5px;flex-shrink:0}
.rc-form{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;align-items:center;margin:4px 0 10px}
.rc-form label{font-size:11.5px;color:var(--muted);font-weight:600}
.rc-form .finput,.rc-form .fsel{width:100%}
@media(max-width:640px){
  .rc-card{flex-wrap:wrap}
  .rc-acts{flex-direction:row;width:100%}
  .rc-cat{grid-template-columns:1fr 60px}
  .rc-cat .bar{display:none}
  .rc-form{grid-template-columns:1fr}
  .rc-form label{margin-top:4px}
}

/* ============================================================================
   OPTIMIZĂRI — Executive Pulse casete KPI + banda de flux dosar
   ========================================================================== */
/* Casetele KPI din Command Center: grilă uniformă (aceeași lățime pe toate
   secțiunile, înălțime egală pe rând), în loc de flex care variază per rând. */
#m-overview .kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:11px;margin-bottom:16px}
#m-overview .kpi{min-width:0;flex:none;display:flex;flex-direction:column;justify-content:center;
  padding:14px 16px}
#m-overview .kpi .v{font-size:23px}
#m-overview .kpi .l{margin-top:6px;line-height:1.4}
@media(max-width:640px){#m-overview .kpis{grid-template-columns:1fr 1fr}}
@media(max-width:400px){#m-overview .kpis{grid-template-columns:1fr}}

/* Banda de flux a dosarului — mai aerisită, titlu și subtitlu clar separate */
.bd-st{padding:11px 15px 11px 23px;line-height:1.4}
.bd-st b{margin-bottom:4px;font-size:9.5px}

/* Cele 8 casete executive-cheie din Command Center: 4×2 desktop · 2×4 mobil */
#m-overview .ex-kpi8{grid-template-columns:repeat(4,1fr)}
@media(max-width:760px){#m-overview .ex-kpi8{grid-template-columns:1fr 1fr}}
@media(max-width:400px){#m-overview .ex-kpi8{grid-template-columns:1fr 1fr}}

/* ============================================================================
   CONSTRUCTOR DOSAR LICITAȚII — etape, radar, semnături, ștampile
   ========================================================================== */
/* navigarea pe etape */
.ds-etape{display:flex;gap:7px;margin-bottom:16px;overflow-x:auto;padding-bottom:3px}
.ds-etapa{flex:1;min-width:132px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;
  background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:10px 13px;cursor:pointer;
  font-family:inherit;text-align:left;transition:border-color .13s,box-shadow .13s,transform .1s}
.ds-etapa:hover{box-shadow:0 6px 16px rgba(20,30,70,.1);transform:translateY(-1px)}
.ds-etapa .ic{font-size:16px;color:var(--blue)}
.ds-etapa b{font-size:12px;color:var(--ink)}
.ds-etapa small{font-size:9.5px;color:var(--muted)}
.ds-etapa.on{border-color:var(--blue);border-width:2px;background:var(--blue-bg);padding:9px 12px}
.ds-etapa.on .ic,.ds-etapa.on b{color:var(--blue-dark)}

/* nota de expert */
.ds-tip{display:flex;gap:11px;background:#FCF9EF;border:1px solid #EAD9A8;border-radius:11px;
  padding:13px 15px;margin-bottom:14px}
.ds-tip .ic{width:24px;height:24px;border-radius:7px;background:#B8860B;color:#fff;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;font-style:italic}
.ds-tip b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#8A6D1E;margin-bottom:3px}
.ds-tip div{font-size:12px;color:#5c4d24;line-height:1.55}

/* radar — carduri de licitație cu scor */
.ds-radar{display:flex;gap:13px;align-items:center;background:#fff;border:1px solid var(--line);
  border-radius:11px;padding:12px 14px;margin-bottom:9px}
.ds-radar-scor{width:64px;height:64px;border-radius:12px;flex-shrink:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-family:'Poppins';font-size:23px;font-weight:700;color:#fff}
.ds-radar-scor small{font-size:8.5px;font-weight:400;opacity:.85}
.ds-radar-scor.green{background:var(--green)} .ds-radar-scor.amber{background:var(--amber)} .ds-radar-scor.red{background:var(--red)}
.ds-radar-body{flex:1;min-width:0}
.ds-radar-body b{font-size:12.5px}
.ds-radar-meta{font-size:10.5px;color:var(--muted);margin-top:2px}
.ds-radar-crit{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.ds-radar-crit span{font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:5px}
.ds-radar-crit .ok{background:var(--green-bg);color:var(--green)}
.ds-radar-crit .md{background:var(--amber-bg);color:var(--amber)}
.ds-radar-crit .no{background:var(--red-bg);color:var(--red)}
.ds-radar-act{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex-shrink:0}

/* semnături olografe */
.ds-sign-grid,.ds-stamp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:11px;margin-bottom:14px}
.ds-sign{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px 14px}
.ds-sign svg{flex-shrink:0}
.ds-sign-info b{font-size:12.5px;display:block}
.ds-sign-info small{font-size:10.5px;color:var(--muted);display:block}
.ds-sign-tag{display:inline-block;margin-top:5px;font-size:9.5px;font-weight:600;background:var(--grey-bg);
  color:var(--muted);padding:2px 7px;border-radius:5px}
.ds-sign-tag.green{background:var(--green-bg);color:var(--green)}
.ds-stamp{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px 14px}
.ds-stamp b{font-size:12.5px;display:block}
.ds-stamp small{font-size:10.5px;color:var(--muted);display:block}
.ds-stamp.qes{background:linear-gradient(120deg,#1E1B4B,#312E81);border:none;color:#fff}
.ds-stamp.qes b{color:#fff} .ds-stamp.qes small{color:#C7CBF0}
.ds-qes-ic{width:52px;height:52px;border-radius:11px;background:rgba(255,255,255,.14);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:24px}
.semn-tag{font-size:8.5px;font-weight:700;color:#2C53E0;background:var(--blue-bg);padding:1px 5px;border-radius:4px}

/* document semnat (în modal) */
.ds-doc-sign{display:flex;gap:16px;align-items:center;background:#F7F9FF;border:1px solid var(--line);
  border-radius:10px;padding:14px}
.ds-doc-sign-info b{font-size:12.5px;display:block}
.ds-doc-sign-info small{font-size:10.5px;color:var(--muted);display:block}

/* revenire */
.ds-rev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:11px;margin-bottom:14px}
.ds-rev{background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px 15px}
.ds-rev.off{opacity:.55}
.ds-rev-ic{width:30px;height:30px;border-radius:8px;background:var(--blue-bg);color:var(--blue-dark);
  display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;margin-bottom:8px}
.ds-rev b{font-size:12.5px;display:block}
.ds-rev p{font-size:11px;color:var(--muted);margin:4px 0 9px;line-height:1.45}

@media(max-width:640px){
  .ds-radar{flex-wrap:wrap}
  .ds-radar-act{flex-direction:row;width:100%;justify-content:flex-start}
  .ds-etapa{min-width:120px}
}
