/* Identitate Transilvania Nuts: verde PMS 7728 (#006746), Plus Jakarta Sans pentru text, Altair pentru titluri */
@font-face{font-family:"Jakarta";src:url(/fonts/PlusJakartaSans-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Jakarta";src:url(/fonts/PlusJakartaSans-Medium.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"Jakarta";src:url(/fonts/PlusJakartaSans-SemiBold.ttf) format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"Jakarta";src:url(/fonts/PlusJakartaSans-Bold.ttf) format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:"Altair";src:url(/fonts/Altair-Bold.otf) format("opentype");font-weight:700;font-display:swap}
:root{
  --bg:#f4f5f1; --surface:#fff; --sunk:#eef0ea; --line:#e0e3db; --line2:#cfd3c9;
  --ink:#16241e; --ink2:#46544d; --ink3:#77837c;
  --acc:#006746; --acc-dark:#004d34; --acc2:#e3efe9; --acc-ink:#fff;
  --warn:#9a6a12; --warn-bg:#fbf1dc; --bad:#a8321f; --bad-bg:#fbe7e2; --ok:#006746;
  --r:8px; --shadow:0 1px 2px rgba(0,0,0,.05),0 4px 16px rgba(0,0,0,.06);
  font-family:"Jakarta",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color-scheme:light;
}
h1,.login h1{font-family:"Altair","Jakarta",Georgia,serif;font-weight:700;letter-spacing:0}
/* silueta copacului de pe punga TN: fixa, taiata de marginea din dreapta, in spatele continutului */
body::before{content:"";position:fixed;right:-4vw;bottom:0;height:82vh;aspect-ratio:666/1300;
  background:url(/img/tn-copac.png) no-repeat right bottom/contain;opacity:.09;pointer-events:none;z-index:-1}
body.is-login::before{height:96vh;right:-6vw;opacity:.2}
body.is-login{background:#fbfbf8}
.brandlogo{height:30px;width:auto;display:block}
.appname{font-size:12px;font-weight:500;color:#cfe3da;border-left:1px solid rgba(255,255,255,.25);padding-left:12px;white-space:nowrap}
.foot{max-width:1680px;margin:0 auto;padding:0 20px 24px;display:flex;justify-content:space-between;gap:28px;font-size:11px;color:var(--ink3)}
.foot a{color:inherit;text-decoration:none} .foot a:hover{color:var(--ink2)}
.login .foot{position:fixed;bottom:0;left:0;right:0;justify-content:center}
.login .loglogo{height:44px;width:auto;margin-bottom:18px}
.remember{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink2);cursor:pointer}
.remember input{width:16px;height:16px;accent-color:var(--acc);margin:0}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--acc)}
.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.muted{color:var(--ink3)} .small{font-size:12px}
h1{font-size:22px;margin:0;letter-spacing:-.01em} h2{font-size:16px;margin:0 0 10px} h3{font-size:14px;margin:0 0 8px}

/* bara de sus */
.top{position:sticky;top:0;z-index:20;background:var(--acc);color:#fff;display:flex;align-items:center;gap:16px;padding:0 20px;height:56px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.nav{display:flex;gap:2px;overflow-x:auto;flex:1}
.nav a{color:#d5e8df;text-decoration:none;padding:7px 11px;border-radius:6px;white-space:nowrap;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.1);color:#fff}
.nav a.on{background:rgba(255,255,255,.18);color:#fff}
.top select{background:var(--acc-dark);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:6px;padding:5px 8px}
.who{display:flex;align-items:center;gap:6px}
.av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--acc-dark);color:#d5e8df;position:relative}
.av.on::after{content:"";position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:#7ee0ad;border:2px solid var(--acc)}
.av.me{background:#fff;color:var(--acc)}
.linkbtn{background:none;border:0;color:#d5e8df;cursor:pointer;padding:6px}
.linkbtn:hover{color:#fff}

main{max-width:1680px;margin:0 auto;padding:22px 20px 60px}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.head p{margin:4px 0 0;color:var(--ink3)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.kpi .l{color:var(--ink3);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.kpi .v{font-size:24px;font-weight:650;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .s{color:var(--ink2);font-size:12px;margin-top:2px}

/* butoane si campuri */
.btn{border:1px solid var(--line2);background:var(--surface);border-radius:6px;padding:7px 13px;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--ink3)}
.btn.pri{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}
.btn.pri:hover{filter:brightness(1.08)}
.btn.bad{color:var(--bad)} .btn.sm{padding:4px 9px;font-size:13px}
.btn:disabled{opacity:.5;cursor:default}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.filters input,.filters select{min-width:140px}
input,select,textarea{border:1px solid var(--line2);border-radius:6px;padding:7px 9px;background:#fff;min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid #9cc7b4;outline-offset:0;border-color:var(--acc)}
textarea{resize:vertical;min-height:60px;width:100%}
label.f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink2)}
label.f > input,label.f > select,label.f > textarea{font-size:14px;color:var(--ink)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form .full{grid-column:1/-1}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:6px;overflow:hidden}
.seg button{border:0;background:#fff;padding:6px 11px;cursor:pointer}
.seg button.on{background:var(--acc);color:#fff}

/* tabele */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{border-collapse:collapse;width:100%}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{font-size:12px;font-weight:600;color:var(--ink2);background:#faf9f6;position:sticky;top:0;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tr.click{cursor:pointer} tr.click:hover td{background:#f7f8f5}
tfoot td{font-weight:650;background:#faf9f6;border-top:1px solid var(--line2)}
.chip{display:inline-block;padding:1px 7px;border-radius:10px;background:var(--sunk);font-size:12px;color:var(--ink2);white-space:nowrap}
.chip.warn{background:var(--warn-bg);color:var(--warn)} .chip.bad{background:var(--bad-bg);color:var(--bad)}
.chip.ok{background:var(--acc2);color:var(--acc)}
.lockb{display:inline-block;padding:1px 7px;border-radius:10px;background:var(--warn-bg);color:var(--warn);font-size:12px;white-space:nowrap}
.prog{height:6px;border-radius:3px;background:var(--sunk);overflow:hidden;min-width:70px}
.prog i{display:block;height:100%;background:var(--acc)}
.prog.over i{background:var(--bad)} .prog.near i{background:#c28a1c}

/* matrice */
/* matricea incape in latimea paginii: coloane egale, antete pe doua randuri */
.mx{table-layout:fixed;min-width:980px;font-size:12.5px}
.mx td,.mx th{padding:6px 5px}
.mx th{white-space:normal;line-height:1.2;vertical-align:bottom;font-size:11.5px}
.mx th.b,.mx td.b{position:sticky;left:0;background:#fff;z-index:1;width:150px}
.mx th.t,.mx td.t{width:100px}
.mx th.b{background:#faf9f6;z-index:2}
.mx tr.grp td{background:#f4f6f3;font-weight:650} .mx tr.grp td.b{background:#f4f6f3}
.mx tr.sub td.b{padding-left:22px;color:var(--ink2)}
.mx td.c{cursor:pointer}
.mx td.c:hover{background:#f3f7f4}
.mx .v1{font-weight:600} .mx .v2{font-size:11px;color:var(--ink3)}
.mx td.c.over .v1{color:var(--bad)} .mx td.c.warn .v1{color:var(--warn)}
.mx td.empty{color:#c6c3ba}
.mx .prog{height:4px;margin-top:3px;min-width:0}
/* coloana Total ramane vizibila in dreapta cand tabelul e mai lat decat ecranul */
.mx th.t,.mx td.t{position:sticky;right:0;z-index:1;background:#f7f8f4;border-left:1px solid var(--line2)}
.mx th.t{z-index:2}
.mx tr.grp td.t,.mx tr.tot td.t{background:#eef2ec}
.mx tr.tot td{font-weight:650;border-top:1px solid var(--line2);background:#faf9f6}
.mx tr.tot td.b{background:#faf9f6}

/* alerte */
.alerts{display:flex;flex-direction:column;gap:6px}
.alert{padding:8px 12px;border-radius:6px;background:var(--warn-bg);color:#6b4a0c;font-size:13px}
.alert.bad{background:var(--bad-bg);color:#7b2416}
.alert a{color:inherit;font-weight:600}

/* dialog si panou lateral */
dialog{border:0;border-radius:12px;padding:0;box-shadow:0 20px 60px rgba(0,0,0,.25);width:min(640px,94vw);max-height:92vh}
dialog.wide{width:min(900px,96vw)}
dialog::backdrop{background:rgba(20,26,23,.45)}
.dh{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.db{padding:18px 20px;overflow:auto;max-height:calc(92vh - 130px)}
.df{display:flex;justify-content:space-between;gap:8px;padding:12px 20px;border-top:1px solid var(--line);background:#faf9f6}
.x{background:none;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--ink3)}
.err{color:var(--bad);background:var(--bad-bg);padding:8px 10px;border-radius:6px;margin-bottom:12px;font-size:13px}
.hint{background:var(--sunk);padding:8px 10px;border-radius:6px;font-size:12px;color:var(--ink2)}
.drawer{position:fixed;top:52px;right:0;bottom:0;width:min(620px,100vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow);z-index:15;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .18s ease}
.drawer.open{transform:none}
.drawer .db{max-height:none;flex:1}
.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;font-size:13px}
.kv dt{color:var(--ink3)} .kv dd{margin:0}
.allocrow{display:grid;grid-template-columns:1fr 130px 32px;gap:8px;margin-bottom:8px}

/* autentificare */
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login .card{width:min(380px,100%);padding:28px}
.login h1{margin-bottom:4px}
.login form{display:flex;flex-direction:column;gap:12px;margin-top:18px}

/* grafic */
.chart svg{width:100%;height:auto;display:block}
.chart text{font-size:11px;fill:var(--ink3)}
.legend{display:flex;gap:14px;font-size:12px;color:var(--ink2);flex-wrap:wrap}
.legend i{display:inline-block;width:14px;height:3px;vertical-align:middle;margin-right:5px}

#toasts{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:100;align-items:center}
.toast{background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;box-shadow:var(--shadow);font-size:13px;max-width:90vw}
.toast.warn{background:#6b4a0c} .toast.bad{background:var(--bad)}
.empty-state{padding:40px;text-align:center;color:var(--ink3)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:900px){.split,.form{grid-template-columns:1fr}.who .linkbtn{display:none}}
@media print{.top,.filters,.btn,.bar,#toasts,.drawer{display:none!important}main{padding:0;max-width:none}.tw{border:0}body{background:#fff}}

/* ================================================================
   Interfata prietenoasa: text mai mare (baza 16px, nimic sub 13px),
   mai mult aer, colturi mai rotunde, butoane mai mari.
   ================================================================ */
body{font-size:16px;line-height:1.5}
.small,.muted.small{font-size:13.5px}
h1{font-size:30px;letter-spacing:0} h2{font-size:19px} h3{font-size:16.5px}
.head{margin-bottom:22px} .head p{font-size:15px;margin-top:6px}
main{padding:30px 28px 70px}
.top{height:64px;padding:0 24px;gap:20px}
.brandlogo{height:34px}
.appname{font-size:13.5px}
.nav a{font-size:15.5px;padding:8px 13px;border-radius:8px}
.top select{font-size:15px;padding:6px 10px;border-radius:8px}
.av{width:32px;height:32px;font-size:13.5px}
.linkbtn{font-size:15px}
.card{border-radius:14px;padding:22px;border-color:#e6e8e1;box-shadow:0 1px 2px rgba(22,36,30,.04)}
.grid{gap:18px}
.kpi .l{font-size:13px;letter-spacing:.05em}
.kpi .v{font-size:32px;font-weight:700;margin-top:6px}
.kpi .s{font-size:14px;margin-top:4px}
.btn{font-size:15px;padding:10px 18px;border-radius:10px;font-weight:500}
.btn.sm{font-size:14px;padding:6px 12px}
.seg{border-radius:10px} .seg button{font-size:14.5px;padding:8px 14px}
input,select,textarea{font-size:15px;padding:10px 12px;border-radius:10px}
label.f{font-size:14px;gap:6px}
label.f > input,label.f > select,label.f > textarea{font-size:16px}
.form{gap:16px}
.filters{gap:10px;margin-bottom:16px}
.tw{border-radius:14px}
th,td{padding:12px 14px}
th{font-size:13.5px}
td{font-size:15px}
.chip,.lockb{font-size:13.5px;padding:2px 10px}
.prog{height:8px;border-radius:4px}
.alert{font-size:15px;padding:12px 16px;border-radius:10px;border-left:4px solid #d9a441}
.alert.bad{border-left-color:#c2533f}
.alerts{gap:8px}
.hint{font-size:14px;padding:12px 14px;border-radius:10px}
.err{font-size:14.5px;padding:12px 14px;border-radius:10px}
dialog{border-radius:16px}
.dh{padding:20px 24px} .db{padding:22px 24px} .df{padding:16px 24px}
.kv{font-size:15px;grid-template-columns:150px 1fr;gap:8px 14px}
.toast{font-size:15px;padding:12px 18px;border-radius:10px}
.foot{font-size:13px}
.remember{font-size:15px}
.login .card{width:min(420px,100%);padding:34px}
/* matricea: text mai mare; coloanele goale se ascund ca sa incapa */
.mx{font-size:15px;min-width:1000px}
.mx td,.mx th{padding:10px 7px}
.mx th{font-size:13px}
.mx th.b,.mx td.b{width:170px;font-size:15px}
.mx th.t,.mx td.t{width:112px}
.mx .v1{font-size:15px}
.mx .v2{font-size:13px}
.mx .prog{height:5px;margin-top:5px}
.chart text{font-size:13px}
.legend{font-size:14px}

/* caseta "De verificat" de sub tabel: cate un rand pe culoare, detaliile se deschid la click */
.attn{margin-top:26px}
.attn h2{margin-bottom:12px}
.ag{border-radius:10px;margin-top:8px;border-left:5px solid}
.ag.bad{background:var(--bad-bg);border-color:#c2533f}
.ag.warn{background:var(--warn-bg);border-color:#d9a441}
.ag.info{background:var(--sunk);border-color:#9aa59f}
.ag summary{cursor:pointer;padding:12px 16px;font-size:16px;list-style:none;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ag summary::-webkit-details-marker{display:none}
.ag summary::before{content:"▸";color:var(--ink3);width:14px}
.ag[open] summary::before{content:"▾"}
.ag summary b{font-size:18px}
.ag ul{margin:0;padding:0 18px 14px 44px;font-size:15px}
.ag li{padding:4px 0}
.ag a{color:inherit;font-weight:600}

/* Mihai: tot textul cu 20% mai mare. zoom scaleaza proportional textul, spatiile si butoanele. */
html{zoom:1.2}

/* bara de sus pe doua randuri: logo, an si utilizatori sus; meniul pe tot randul de dedesubt */
.top{height:auto;flex-wrap:wrap;row-gap:0;padding:10px 24px 0}
.top .who{margin-left:auto}
.top .nav{order:5;flex-basis:100%;padding:6px 0 8px;overflow:visible;flex-wrap:wrap}
.drawer{top:0;z-index:25}

/* subsolul sta aproape de marginea de jos a ferestrei, si cand pagina e scurta */
/* 100vh e marit si el cu zoom 1.2, deci il impartim ca subsolul sa ramana in fereastra */
#app{min-height:calc(100vh / 1.2);display:flex;flex-direction:column}
#app > main{flex:1;width:100%;padding-bottom:36px}
.foot{padding:10px 24px 14px;width:100%}
.login .foot{bottom:0;padding-bottom:14px}

/* primul rand al barei (logo + Buget Marketing) mai inalt si mai aerisit */
.top{padding:18px 28px 0}
.top .logo{padding-bottom:12px;gap:16px}
.brandlogo{height:42px}
.appname{font-size:15.5px;padding-left:16px}
.top .nav{border-top:1px solid rgba(255,255,255,.14);padding-top:8px}


/* logo mai aerisit: aceeasi marime (42px), mai mult spatiu deasupra, dedesubt si pana la "Buget Marketing" */
.top{padding:28px 32px 0}
.top .logo{padding-bottom:22px;gap:22px}
.appname{padding-left:22px}
.top .nav{padding-top:10px;padding-bottom:10px}

/* textul din grafic e in unitatile graficului, care se mareste cu latimea; il tinem proportional cu restul paginii */
.chart text{font-size:10px}
.chart text.gol{font-size:11px;fill:var(--ink2)}

.click-kpi{cursor:pointer}
.click-kpi:hover{border-color:var(--acc)}

/* primul rand: toate elementele pe aceeasi linie de mijloc; spatiul de sub logo trece sub tot randul */
.top{align-items:center}
.top .logo{padding-bottom:0;align-self:center}
.top .nav{margin-top:22px}
.top select,.top .who,.top .linkbtn{align-self:center}

/* numele aplicatiei langa logo (nefolosit acum; bara arata logo-ul TN) */
.appname{display:flex;flex-direction:column;justify-content:center;line-height:1.15;gap:3px}
.appname b{font-family:"Altair","Jakarta",Georgia,serif;font-size:24px;letter-spacing:.06em;color:#fff;font-weight:700}
.appname small{font-size:13px;color:#cfe3da;font-weight:500;letter-spacing:.01em}
.login .appsub{font-size:16px;color:var(--acc);font-weight:600;margin:2px 0 6px}

/* varianta C: bara cu locul de lucru, sub meniu */
#sbar:empty{display:none}
.sb{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 32px;font-size:15.5px;border-bottom:1px solid var(--line)}
.sb.ok{background:var(--acc2);color:var(--acc-dark)}
.sb.ro{background:#e9ece6;color:var(--ink2)}
.sb.warn{background:var(--warn-bg);color:#6b4a0c}
/* cine doar citeste nu vede butoanele de modificare */
body.ro #newP,body.ro #newI,body.ro #newE,body.ro #newS,body.ro #edit,body.ro #dedit,body.ro #ddel,body.ro #dinv,
body.ro #snap,body.ro #saveCodes,body.ro #fxs,body.ro #newY,body.ro #bk,body.ro #pw,body.ro [data-merge]{display:none!important}

/* bara de sus: primul element in stanga, colegele in dreapta */
.appname{border-left:0;padding-left:0}
.top .tnright{margin-left:auto;align-self:center}
.top .who{margin-left:0}
.login .loglogo-bottom{display:block;height:44px;margin:26px 0 0}

/* istoricul modificarilor bugetului aprobat */
.hist{margin:0;padding-left:0;list-style:none}
.hist > li{padding:12px 0;border-bottom:1px solid var(--line)}
.hist > li:last-child{border-bottom:0}
.hist ul{margin:6px 0 0;padding-left:20px}
.hist ul li{padding:2px 0}

/* logo-ul Transilvania Nuts centrat pe pagina, pe primul rand al barei */
.top{position:sticky}
.top .tnright{position:absolute;left:50%;transform:translateX(-50%);top:var(--tn-top,28px);margin:0}
.top .who{margin-left:auto}

/* nume mai mare cu 15% si mai mult loc pana la lista cu anii */
.appname b{font-size:27.6px}
.appname small{font-size:15px}
.top #yearSel{margin-left:40px}

/* pozitia verticala a logo-ului centrat (nefolosit acum) */
.top{--tn-top:33px}

/* subsol: linie subtire deasupra, text stanga, logo Transilvania Nuts centrat pe pagina, Anathomia dreapta */
.foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;border-top:1px solid var(--line);padding-top:16px}
.foot > span:first-child{justify-self:start}
.foot > span:last-child{justify-self:end}
.foot-logo{height:34px;width:auto;display:block;opacity:.9}
.login .foot{border-top:0}
.login .foot-logo{display:none}

/* subsol fara logo: numele aplicatiei in stanga, Anathomia in dreapta */
.foot{display:flex;justify-content:space-between}

/* bara de sus: logo Transilvania Nuts | MARKETING */
.top .logo{gap:22px}
.section-name{display:flex;align-items:center;align-self:stretch;border-left:1.5px solid rgba(255,255,255,.4);padding-left:22px;
  font-size:24px;font-weight:600;letter-spacing:.16em;color:#fff;line-height:1}

/* logo Transilvania Nuts mai mare in bara de sus (cu ~20%) */
.top .brandlogo{height:50px}

/* "Project Management" pe doua randuri: coloana ei putin mai lata, fara despartire in silabe */
.mx th.c-pm{width:104px}

/* latimile coloanelor din matrice le calculeaza aplicatia (fitMatrix); aici doar valorile de pornire */
.mx{min-width:0}
.mx th.c-pm{width:auto}
.mx th{overflow-wrap:normal;word-break:normal;hyphens:manual}

/* mai putin spatiu lateral in celulele matricei, ca sumele sa incapa fara derulare */
.mx td,.mx th{padding-left:5px;padding-right:5px}

/* fundalul randurilor din matrice: Nutribon (total) verde deschis, ramurile lui o nuanta mai deschisa din acelasi verde,
   celelalte branduri toate pe alb; culoarea tine tot randul, inclusiv coloanele fixe Brand si Total */
.mx tbody tr.grp td,.mx tbody tr.grp td.b,.mx tbody tr.grp td.t{background:#dcebe3}
.mx tbody tr.sub td,.mx tbody tr.sub td.b,.mx tbody tr.sub td.t{background:#eef6f1}
.mx tbody tr:not(.grp):not(.sub) td,.mx tbody tr:not(.grp):not(.sub) td.b,.mx tbody tr:not(.grp):not(.sub) td.t{background:#fff}
.mx tbody tr.sub td.b{color:var(--ink)}
.mx tbody td.c:hover{background:#e6f1ea}

/* campurile din modul Modifica: cat coloana, fara latime fixa, ca tabelul sa incapa */
.mx .mx-in{width:100%;min-width:0;padding:6px 4px;text-align:right}

/* Nutribon (total) arata ca celelalte branduri (Dolabela etc.): fundal alb, text normal; doar ramurile lui au nuanta verde */
.mx tbody tr.grp td,.mx tbody tr.grp td.b,.mx tbody tr.grp td.t{background:#fff;font-weight:400}

/* nota de sub tabelele cu sume */
.tva-note{font-size:13.5px;color:var(--ink3);margin:8px 2px 0}

/* antetele de tabel aliniate la fel peste tot: aceeasi marime si grosime, asezate pe aceeasi linie de jos */
th{vertical-align:bottom}
.mx thead th,.mx thead th.b{font-size:13px;font-weight:600;line-height:1.25;vertical-align:bottom;padding-top:12px;padding-bottom:12px;color:var(--ink2)}

/* PDF din Rapoarte: A4 pe orizontala, cu cap de pagina; fara meniu, butoane, filtre si fundal */
.print-head{display:none}
@media print{
  @page{size:A4 landscape;margin:12mm}
  html{zoom:1}
  body{background:#fff!important;font-size:10pt}
  body::before,.foot,#sbar,.top,.filters,.btn,.bar,.head,#view .card{display:none!important}
  .print-head{display:flex;gap:16px;align-items:center;margin:0 0 12px;font-size:10pt;color:#16241e}
  .print-head img{height:32px;width:auto}
  .print-head .ph-title{font-size:13pt;font-weight:700}
  .tw{border:0;overflow:visible}
  table{font-size:9.5pt}
  th,td{padding:4px 6px}
  .prog{display:none}
  .tva-note{font-size:9pt}
}

/* PDF cu designul aplicatiei: cadrul .pw e invizibil pe ecran; in PDF bara verde doar pe prima pagina, subsolul lipit de marginea de jos a fiecarei pagini */
.pw,.pw>tbody,.pw>tbody>tr,.pw>tbody>tr>td{display:contents}
.pw>.pw-h,.pw>.pw-f,.pw>.pw-sp{display:none}
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* marginea paginii 0: browserul nu mai are unde scrie adresa (localhost), data si titlul; marginile le fac spatiile de mai jos */
  @page{size:A4 landscape;margin:0}
  .pw{display:table;width:100%;border-collapse:collapse}
  .pw>.pw-sp{display:table-header-group}
  .pw>.pw-sp>tr>td{height:10mm}
  .pw>.pw-h{display:table-row-group}
  .pw>.pw-f{display:table-footer-group}
  .pw>tbody{display:table-row-group}
  .pw>thead>tr,.pw>tfoot>tr,.pw>tbody>tr{display:table-row}
  .pw>thead>tr>td,.pw>tfoot>tr>td,.pw>tbody>tr>td{display:table-cell;padding:0 10mm;border:0;background:none}
  .pw-bar{display:flex;align-items:center;gap:14px;background:#006746;color:#fff;padding:10px 16px;border-radius:6px}
  .pw-bar img{height:30px;width:auto}
  .pw-sec{border-left:1px solid rgba(255,255,255,.45);padding-left:14px;font-weight:600;letter-spacing:.16em;font-size:12pt;color:#fff}
  .pw-title{font-family:"Altair","Jakarta",Georgia,serif;font-size:16pt;font-weight:700;margin:12px 0 4px;color:#16241e}
  .pw-sel{display:flex;flex-wrap:wrap;gap:3px 16px;font-size:9.5pt;color:#46544d}
  .pw-sel b{font-weight:600;color:#16241e}
  .pw-meta{font-size:9pt;color:#77837c;margin:4px 0 10px}
  .pw>tfoot>tr>td{height:16mm}  /* loc liber, ca tabelul sa nu intre sub subsol */
  .pw-foot{display:flex;justify-content:space-between;position:fixed;left:calc(10mm + 20px);right:calc(10mm + 20px);bottom:7mm;background:#fff;border-top:1px solid #e0e3db;padding-top:6px;font-size:8.5pt;color:#77837c}
}

/* cine doar citeste nu poate adauga sau sterge date demo */
body.ro #demoAdd,body.ro #demoDel{display:none!important}

/* panoul unui proiect: cat ii trebuie continutului (carduri, tabel de furnizori), nu o latime fixa ingusta */
.drawer{width:min(980px,94vw)}
.drawer .db{overflow-x:auto}
.drawer .kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}
.drawer .kpi .v{font-size:28px}
.drawer .tw table td:first-child{min-width:200px}

/* formularele incap in fereastra: campurile se ingusteaza, nu ies in dreapta */
dialog.wide{width:min(1100px,96vw)}
/* cu zoom 1.2 pe pagina, 92vh ar iesi din ecran: impartim la 1.2 ca fereastra sa incapa mereu */
dialog{max-height:calc(92vh / 1.2);max-width:calc(96vw / 1.2)}
.db{max-height:calc(92vh / 1.2 - 150px)}
details.more{grid-column:1/-1;border:1px solid var(--line);border-radius:8px;padding:10px 14px}
details.more > summary{cursor:pointer;font-weight:600;color:var(--ink2)}
details.more[open] > summary{margin-bottom:10px}
details.more .form{margin-top:4px}
.form > *{min-width:0}
label.f > input,label.f > select,label.f > textarea{width:100%;box-sizing:border-box}
.allocrow{grid-template-columns:minmax(0,1fr) 160px 44px}
.aa[readonly]{background:var(--sunk);color:var(--ink2)}

/* comutatorul de module din bara de sus: Buget / Status saptamanal */
.mods{display:flex;gap:4px;margin-left:10px;background:rgba(0,0,0,.16);padding:4px;border-radius:10px;align-self:center}
.mods a{color:#d5e8df;text-decoration:none;padding:7px 14px;border-radius:7px;font-weight:600;font-size:15px;white-space:nowrap}
.mods a:hover{color:#fff}
.mods a.on{background:#fff;color:var(--acc)}
/* status saptamanal */
.st td{vertical-align:top}
.st .st-txt,.timeline .st-txt{white-space:pre-wrap;min-width:320px;line-height:1.45}
.st .st-obj{min-width:180px}
.st .st-nr{width:40px;color:var(--ink3)}
.st-sec{margin:30px 0 10px;font-size:20px}
.nowrap{white-space:nowrap}
.owners{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px}
.own{display:flex;align-items:center;gap:6px;font-size:15px;color:var(--ink)}
.st-prev{white-space:pre-wrap;margin-top:6px;max-height:180px;overflow:auto}
.timeline .tl{padding:12px 0;border-bottom:1px solid var(--line)}
.timeline .tl:last-child{border-bottom:0}
.tl-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
body.ro #stNew,body.ro #evNew,body.ro [data-ed],body.ro [data-newinv]{display:none!important}
@media print{.noprint{display:none!important}}
/* agenda de evenimente */
.st .ev-items{min-width:260px}
.ev-cnt{font-weight:600;font-size:14px;margin-bottom:4px}
.ev-it{display:inline-block;margin:0 6px 4px 0;padding:2px 8px;border-radius:6px;background:#f4f5f1;font-size:14px}
.ev-it.done{background:#e6f2ec;color:var(--acc)}
.ev-past td{color:var(--ink2)}
.ev-check{display:grid;gap:10px;margin-top:8px}
.ev-check .own{align-items:flex-start}
/* liste de bifat lungi (furnizori, proiecte): cu derulare */
.owners.pick{max-height:190px;overflow:auto;flex-direction:column;flex-wrap:nowrap;gap:6px;border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-top:6px}
.drawer .st-txt{white-space:pre-wrap;line-height:1.45}
@media print{
  .st .st-txt{min-width:0}
  .st td,.st th{font-size:8.5pt;padding:3px 5px}
  .st-sec{font-size:12pt;margin:10px 0 4px}
  .chip{border:1px solid #cfd3c9}
}

/* celula cu un proiect depasit: bara rosie in stanga si textul sub suma */
.mx td.c.hasover{box-shadow:inset 4px 0 0 var(--bad)}
.mx .v3{color:var(--bad);font-size:12px;font-weight:600;margin-top:4px;white-space:nowrap}

th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--acc)}

/* cod de culoare Brand x item (varianta A): verde, cald, fierbinte, rosu */
.mx td.c.lv1,.mx tr td.c.lv1{background:#cfe9d9}  .mx td.c.lv1 .v1,.mx td.c.lv1 .v2{color:#0d4a31}
.mx td.c.lv2,.mx tr td.c.lv2{background:#fbe2a8}  .mx td.c.lv2 .v1,.mx td.c.lv2 .v2{color:#5b4200}
.mx td.c.lv3,.mx tr td.c.lv3{background:#f3a67c}  .mx td.c.lv3 .v1,.mx td.c.lv3 .v2{color:#5a2206}
.mx td.c.lv4,.mx tr td.c.lv4{background:#c8321c}  .mx td.c.lv4 .v1,.mx td.c.lv4 .v2,.mx td.c.lv4 .v3{color:#fff}
.mx td.c.lv4 .prog{background:rgba(255,255,255,.3)} .mx td.c.lv4 .prog i{background:#fff}
.mx td.c.lv4.hasover{box-shadow:inset 4px 0 0 #7a1a0b}
.mx td.c[class*=lv]:hover{filter:brightness(.96)}
.mx td.c[class*=lv] .v2{opacity:.85}
.mxleg{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin:10px 0 2px;font-size:14px}
.mxleg i{display:inline-block;width:16px;height:16px;border-radius:4px;vertical-align:-3px;margin-right:6px;border:1px solid rgba(0,0,0,.12)}
.mxleg i.lv1{background:#cfe9d9} .mxleg i.lv2{background:#fbe2a8} .mxleg i.lv3{background:#f3a67c} .mxleg i.lv4{background:#c8321c}
@media print{.mx td.c[class*=lv]{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

.kpi.kpi-bad{border-color:#c8321c;background:#fdf0ed}
.kpi.kpi-bad .v{color:#c8321c}

/* fundalul umple celula in proportia folosita din aprobat (restul ramane deschis); peste 100% e plina */
.mx td.c.lv1{--lc:#b9dfc8} .mx td.c.lv2{--lc:#f7d27e} .mx td.c.lv3{--lc:#ef8f5c} .mx td.c.lv4{--lc:#c8321c}
.mx td.c[class*=lv],.mx tr td.c[class*=lv]{background:linear-gradient(90deg,var(--lc) calc(var(--p) * 1%),#f7f7f3 calc(var(--p) * 1%))}
.mx td.c.lv4,.mx tr td.c.lv4{background:#c8321c}

/* continutul paginilor aliniat la stanga, nu centrat */
main,.foot{margin-left:0;margin-right:auto}
main{padding-left:56px}
.foot{padding-left:56px}

/* lista saptamanilor din panoul din dreapta */
.drawer:has(.wklist){width:min(420px,94vw)}
.wklist{display:grid;gap:4px}
.wklist .wk{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:8px;cursor:pointer}
.wklist .wk:hover{background:#f4f6f3}
.wklist .wk.cur{background:var(--acc2);box-shadow:inset 3px 0 0 var(--acc)}

/* butonul de export PDF: culoare proprie, diferita de verdele actiunilor */
#stPdf{background:#c8652a;border-color:#c8652a;color:#fff;font-weight:600}
#stPdf:hover{background:#b0561f;border-color:#b0561f}

/* mai mult aer in jurul logo-ului din bara de sus */
.top .logo{gap:34px;padding:8px 40px 8px 0}
.top .section-name{padding-left:34px}
