/* Carbon Desk - stilus. A quickdesk vizualis nyelve (sotet fejlec, meleg papir,
   feher kartyak, kis kapitalis szekciocimek, pill-ek, lepessor) a Carbon Desk
   teal akcentjevel. Tokenek: 8-as racs, betulepcso, 44 px-es cel (docs/UX-UI.md). */
:root{
  /* alap */
  --hatter:#F6F3EE;--kartya:#FFFFFF;--kartya-2:#F8F5F0;
  --szoveg:#161B1F;--szoveg-2:#4E5651;--halvany:#6F7770;
  --vonal:#EAE3DA;--vonal-2:#D9D1C6;
  --tinta:#161B1F;--tinta-2:#23292E;
  /* akcent: interakcio, aktiv allapot, elsodleges gomb */
  --akcent:#00736B;--akcent-mely:#0B4A44;--akcent-soft:#DDEEEA;--akcent-gradiens:linear-gradient(135deg,#0B4A44,#00736B);
  /* kategoria-szin: joghatosag */
  --eu:#2B5F8A;--eu-soft:#DBE7F1;
  /* statusz: rendben / figyelem / hiba - dekoraciora tilos */
  --ok:#237A47;--ok-soft:#E3F4EA;--figyelem:#9A6A05;--figyelem-soft:#FAF0D9;--hiba:#B93838;--hiba-soft:#FBE9E9;
  /* recency skala */
  --fresh:#237A47;--recent:#6E8F35;--stale:#B5822A;--dormant:#A39D96;
  /* orokolt nevek (regi szabalyok) */
  --paper:var(--hatter);--surface:var(--kartya);--surface-2:var(--kartya-2);--ink:var(--szoveg);--ink-2:var(--szoveg-2);--ink-3:var(--halvany);--rule:var(--vonal);--rule-2:var(--vonal-2);
  --live:var(--akcent);--live-soft:var(--akcent-soft);--red:var(--hiba);--red-soft:var(--hiba-soft);--amber-soft:var(--figyelem-soft);--ok-soft2:var(--ok-soft);
  --arnyek:0 4px 16px rgba(22,27,31,.05);--arnyek-nagy:0 12px 32px rgba(22,27,31,.12);
  /* tavolsag */
  --t1:4px;--t2:8px;--t3:12px;--t4:16px;--t5:24px;--t6:32px;--t7:48px;--t8:64px;
  /* lekerekites */
  --r-kicsi:8px;--r-kozep:12px;--r-nagy:16px;--r-pill:999px;
  /* betulepcso */
  --b-apro:11px;--b-kis:12px;--b-alap:14px;--b-mezo:16px;--b-kiemelt:18px;--b-cim:20px;--b-nagy:24px;--b-oriasi:32px;
  --cel:44px;
  --font:"IBM Plex Sans",system-ui,sans-serif;--font-cim:"IBM Plex Sans Condensed",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;max-width:100%;overflow-x:clip}
body{background:var(--hatter);color:var(--szoveg);font-family:var(--font);font-size:var(--b-alap);line-height:1.5;-webkit-font-smoothing:antialiased}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
a{color:var(--akcent)}
[hidden]{display:none!important}
code{font-family:var(--font-mono);font-size:var(--b-kis);background:var(--kartya-2);padding:0 var(--t1);border-radius:var(--r-kicsi)}

/* --- globalis: tapintasi cel, mezo-betu, fokuszgyuru --- */
button,.btn,[role=button],select,summary,input:not([type=checkbox]):not([type=radio]),textarea{min-height:var(--cel)}
input,select,textarea,button{font-family:inherit}
input,select,textarea{font-size:var(--b-mezo)}
button,.btn{font-size:var(--b-alap)}
:focus-visible{outline:2px solid var(--akcent);outline-offset:2px}
.cel-kiterjeszt{position:relative;min-height:0}
.cel-kiterjeszt::after{content:"";position:absolute;left:0;right:0;top:50%;height:var(--cel);transform:translateY(-50%)}

/* ===== fejlec: sotet sav ===== */
header{background:var(--tinta);color:#fff;position:sticky;top:0;z-index:30}
.masthead{max-width:1620px;margin:0 auto;padding:var(--t2) var(--t5);display:flex;justify-content:space-between;align-items:center;gap:var(--t4);min-height:56px}
h1{font-family:var(--font-cim);font-weight:700;font-size:var(--b-cim);letter-spacing:.01em;margin:0;line-height:1;display:flex;align-items:center;gap:var(--t3)}
h1 .logo{width:28px;height:28px;border-radius:50%;background:var(--akcent-gradiens);display:inline-flex;align-items:center;justify-content:center;font-size:var(--b-kis);font-weight:700}
.sub{display:none}
.asof{font-size:var(--b-kis);color:rgba(255,255,255,.72);display:flex;align-items:center;gap:var(--t4);flex-wrap:wrap;justify-content:flex-end}
.asof b{color:#fff;font-weight:600}
.asof .sor{display:flex;gap:var(--t2);align-items:center;flex-wrap:wrap}
.asof .btn{background:transparent;color:#fff;border-color:rgba(255,255,255,.35);min-height:36px}
.asof .btn:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}

/* ===== fo navigacio: feher sav a fejlec alatt, ikonos fulek ===== */
.tabs{background:var(--kartya);border-bottom:1px solid var(--vonal-2);position:sticky;top:56px;z-index:29;display:flex;gap:0;padding:0 var(--t5);max-width:none;margin:0;overflow-x:auto}
.tabs-belso{display:flex;gap:var(--t1);max-width:1620px;margin:0 auto;width:100%}
.tab{font-family:var(--font);font-weight:600;font-size:var(--b-alap);padding:0 var(--t4);border:none;border-bottom:3px solid transparent;border-radius:0;background:none;color:var(--szoveg-2);cursor:pointer;text-decoration:none;min-height:52px;display:inline-flex;align-items:center;gap:var(--t2);white-space:nowrap}
.tab:hover{color:var(--szoveg);background:var(--kartya-2)}
.tab[aria-current=page]{color:var(--akcent-mely);border-bottom-color:var(--akcent)}
.tab svg{width:18px;height:18px;flex:none}
.tab .n{font-family:var(--font-mono);font-size:var(--b-apro);color:var(--halvany);background:var(--kartya-2);border-radius:var(--r-pill);padding:0 var(--t2);min-width:20px;text-align:center;line-height:18px}
.tab[aria-current=page] .n{background:var(--akcent-soft);color:var(--akcent-mely)}
.tab.warn .n{background:var(--hiba-soft);color:var(--hiba)}
/* masodik szint: szegmens-sav */
.alnav{display:flex;gap:var(--t1);padding:var(--t3) 0 0;flex-wrap:wrap}
.alnav a{display:inline-flex;align-items:center;min-height:36px;padding:0 var(--t4);border-radius:var(--r-pill);background:var(--kartya);border:1px solid var(--vonal-2);color:var(--szoveg-2);text-decoration:none;font-weight:500;font-size:var(--b-kis)}
.alnav a:hover{border-color:var(--akcent);color:var(--akcent)}
.alnav a[aria-current=page]{background:var(--tinta);border-color:var(--tinta);color:#fff}

.wrap{max-width:1620px;margin:0 auto;padding:0 var(--t5) var(--t6)}
.panel{display:none}.panel[data-active]{display:block}

/* ===== kartya, szekcio, cim ===== */
.kartya{background:var(--kartya);border:1px solid var(--vonal);border-radius:var(--r-nagy);box-shadow:var(--arnyek);padding:var(--t4);margin:var(--t4) 0}
.kartya.szoros{padding:0;overflow:hidden}
.kartya.kiemelt{border:2px solid var(--akcent);background:linear-gradient(0deg,var(--kartya),var(--kartya)),var(--akcent-soft)}
.kartya.kiemelt > .szc{color:var(--akcent-mely)}
.szc{font-size:var(--b-apro);letter-spacing:.09em;text-transform:uppercase;color:var(--akcent-mely);font-weight:700;margin:0 0 var(--t3);display:flex;align-items:center;gap:var(--t2);flex-wrap:wrap}
.szc .pont{width:8px;height:8px;border-radius:50%;background:var(--akcent);display:inline-block}
.szc .pont.ok{background:var(--ok)}.szc .pont.figyelem{background:var(--figyelem)}.szc .pont.hiba{background:var(--hiba)}.szc .pont.szurke{background:#C6BCB4}
.szc .n{font-family:var(--font-mono);letter-spacing:0;text-transform:none;color:var(--halvany);font-weight:500}
.szc .btn{text-transform:none;letter-spacing:0;font-weight:500;margin-left:auto}
.szc .spacer{flex:1}

/* muszerfal-allapot egyetlen szoval */
.allapot{display:flex;align-items:center;gap:var(--t3);padding:var(--t4) 0 0;flex-wrap:wrap}
.allapot .szo{font-family:var(--font-cim);font-weight:700;font-size:var(--b-kiemelt);letter-spacing:.06em;padding:var(--t1) var(--t3);border-radius:var(--r-kicsi);color:#fff}
.allapot .szo.ok{background:var(--ok)}.allapot .szo.figyelem{background:var(--figyelem)}.allapot .szo.hiba{background:var(--hiba)}
.allapot ul{list-style:none;margin:0;padding:0;display:flex;gap:var(--t4);flex-wrap:wrap;font-size:var(--b-kis);color:var(--szoveg-2)}

/* stat-csempek: kartyak, nagy szammal */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--t3);padding:var(--t4) 0 0}
.stat{background:var(--kartya);border:1px solid var(--vonal);border-radius:var(--r-nagy);box-shadow:var(--arnyek);padding:var(--t3) var(--t4);margin:0;min-width:0}
.stat .k{font-size:var(--b-apro);letter-spacing:.08em;text-transform:uppercase;color:var(--halvany);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat .v{font-family:var(--font-cim);font-weight:700;font-size:var(--b-nagy);display:block;margin-top:2px;font-variant-numeric:tabular-nums;line-height:1.1}
.stat .u{font-size:var(--b-apro);color:var(--szoveg-2);margin-left:var(--t1);font-weight:400;font-family:var(--font)}
.stat.live .v{color:var(--ok)}.stat.dorm .v{color:var(--dormant)}.stat.eu .v{color:var(--eu)}.stat.red .v{color:var(--hiba)}.stat.amber .v{color:var(--figyelem)}

/* szurosav: kartyaban, ragados */
.controls{padding:var(--t2) var(--t4);display:flex;gap:var(--t2);align-items:center;flex-wrap:wrap;position:sticky;top:108px;background:var(--kartya);z-index:20;border:1px solid var(--vonal);border-radius:var(--r-nagy);box-shadow:var(--arnyek);margin:var(--t4) 0 var(--t2)}
input[type=search],input[type=text],input[type=number],input[type=date],input[type=datetime-local],input[type=email],input[type=password],input[type=url],select,textarea{color:var(--szoveg);background:var(--kartya);border:1px solid var(--vonal-2);border-radius:var(--r-kicsi);padding:var(--t2) var(--t3);outline:none}
input[type=search]{min-width:220px;flex:1 1 220px}
input:focus,select:focus,textarea:focus{border-color:var(--akcent);box-shadow:0 0 0 3px var(--akcent-soft)}
select{cursor:pointer;max-width:220px}
textarea{width:100%;min-height:72px;resize:vertical}
input[type=file]{font-size:var(--b-kis)}
.seg{display:inline-flex;border:1px solid var(--vonal-2);border-radius:var(--r-pill);overflow:hidden;background:var(--kartya-2);padding:2px}
.seg button{padding:0 var(--t3);border:none;background:none;cursor:pointer;color:var(--szoveg-2);border-radius:var(--r-pill);min-height:36px}
.seg button[aria-pressed=true]{background:var(--tinta);color:#fff;font-weight:600}
.euchip{display:inline-flex;align-items:center;gap:var(--t2);font-weight:600;padding:0 var(--t3);border:1px solid var(--eu);border-radius:var(--r-pill);background:var(--kartya);color:var(--eu);cursor:pointer;white-space:nowrap;min-height:36px}
.euchip:hover{background:var(--eu-soft)}
.euchip[aria-pressed=true]{background:var(--eu);color:#fff}
.euchip .dot{width:8px;height:8px;border-radius:50%;background:currentColor}
.chk{display:inline-flex;align-items:center;gap:var(--t2);font-size:var(--b-kis);color:var(--szoveg-2);cursor:pointer;white-space:nowrap;min-height:36px}
.chk input{accent-color:var(--akcent);cursor:pointer;width:18px;height:18px}
.spacer{flex:1}
.count{font-size:var(--b-kis);color:var(--szoveg-2);white-space:nowrap}
.count b{font-family:var(--font-mono);color:var(--szoveg);font-weight:700}
/* gomb-hierarchia: .btn masodlagos (korvonal), .btn.primary elsodleges (EGY szakaszonkent), .btn.danger veszelyes (halk) */
.btn{padding:var(--t2) var(--t4);border:1px solid var(--vonal-2);background:var(--kartya);border-radius:var(--r-kozep);cursor:pointer;color:var(--szoveg);white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--t2);font-weight:600}
.btn:hover{border-color:var(--akcent);color:var(--akcent)}
.btn.primary{background:var(--akcent-gradiens);color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(0,115,107,.22)}
.btn.primary:hover{filter:brightness(1.08);color:#fff}
.btn.ghost{background:var(--kartya-2);border-color:transparent}
.btn.danger{color:var(--hiba);border-color:rgba(185,56,56,.4);background:transparent}
.btn.danger:hover{background:var(--hiba-soft)}
.btn.small{font-size:var(--b-kis);padding:var(--t1) var(--t3);min-height:32px;position:relative;font-weight:500}
.btn.small::after{content:"";position:absolute;left:0;right:0;top:50%;height:var(--cel);transform:translateY(-50%)}
.btn:disabled{opacity:.5;cursor:default}
.btn[aria-busy=true]{opacity:.7;cursor:progress}
/* lehetosegek: a fo muveletek sora, kiemelten */
.lehetosegek{display:flex;gap:var(--t2);flex-wrap:wrap;align-items:center}
.allapotsav{display:flex;gap:var(--t3);flex-wrap:wrap;align-items:flex-end;padding:var(--t2) var(--t3);margin:0 0 var(--t3);background:var(--akcent-soft);border-radius:var(--r-kicsi)}
.allapotsav label{display:flex;flex-direction:column;gap:2px;font-size:var(--b-apro);font-weight:600;color:var(--szoveg-2);text-transform:uppercase;letter-spacing:.04em}
.allapotsav select{min-height:36px;font-size:var(--b-kis)}
.allapotsav .btn{margin-left:auto}
.lehetosegek .btn{min-height:var(--cel)}

/* ===== tablazat ===== */
.tabla{max-width:100%;background:var(--kartya);border:1px solid var(--vonal);border-radius:var(--r-nagy);box-shadow:var(--arnyek)}
/* A ragados fejlec csak akkor mukodik, ha a tabla NEM gorgetheto tarolóban van: asztalon nincs overflow, mobilon van (es ott a fejlec statikus). */
@media (max-width:920px){.tabla{overflow-x:auto}}
table{width:100%;border-collapse:collapse}
thead th{font-size:var(--b-apro);letter-spacing:.08em;text-transform:uppercase;color:var(--halvany);text-align:left;font-weight:700;padding:var(--t3) var(--t3);border-bottom:1px solid var(--vonal-2);position:sticky;top:calc(108px + var(--controls-h,0px) + var(--t2));background:var(--kartya);z-index:10;white-space:nowrap;cursor:pointer;user-select:none}
thead th.na{cursor:default}
thead th .ar{opacity:0;margin-left:3px}
thead th[data-on] .ar{opacity:1;color:var(--akcent)}
tbody tr{border-bottom:1px solid var(--vonal);cursor:pointer}
tbody tr:last-child{border-bottom:none}
tbody tr:hover{background:var(--kartya-2)}
tbody tr:focus-visible{outline:2px solid var(--akcent);outline-offset:-2px;background:var(--kartya-2)}
tbody tr.sel{background:var(--akcent-soft)}
tbody td{padding:var(--t3);vertical-align:middle}
.pname{font-weight:600;line-height:1.3;max-width:420px;overflow-wrap:anywhere}
.psub{font-size:var(--b-kis);color:var(--halvany);margin-top:2px}
.num{text-align:right;white-space:nowrap}
.num.big{font-weight:700}
.meta{font-size:var(--b-kis);color:var(--szoveg-2)}
td.meta{white-space:nowrap}
/* pill-ek: statuszszin csak jelentessel */
.tag{display:inline-block;font-size:var(--b-apro);font-weight:600;padding:2px var(--t2);border-radius:var(--r-pill);color:#5C565A;white-space:nowrap;background:#F2ECE6;vertical-align:1px;border:none;line-height:1.5}
.tag.eu{background:var(--eu-soft);color:var(--eu)}
.tag.sanc{background:var(--hiba-soft);color:var(--hiba)}
.tag.live{background:var(--akcent-soft);color:var(--akcent-mely)}
.tag.warn{background:var(--figyelem-soft);color:var(--figyelem)}
.tag.narancs{background:#FDE8D3;color:#B4520A}
.tag.bad{background:var(--hiba-soft);color:var(--hiba)}
.tag.ok{background:var(--ok-soft);color:var(--ok)}
.tag.stage{background:var(--tinta);color:#fff}
.flag{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--t2);vertical-align:0}
.f3{background:var(--ok)}.f1{background:var(--figyelem)}.f2{background:var(--hiba)}.f0{background:#C6BCB4}
tr[data-flag="2"] .pname{color:var(--hiba)}
.recency{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:var(--t2);vertical-align:0}
.track{position:relative;width:128px;height:16px;display:inline-block;vertical-align:middle}
.track::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--vonal-2)}
.track .tk{position:absolute;top:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;border:2px solid var(--kartya)}
.track .tk.f{background:var(--fresh)}.track .tk.r{background:var(--recent)}.track .tk.s{background:var(--stale)}.track .tk.d{background:var(--dormant)}
.tlabel{font-size:var(--b-apro);color:var(--szoveg-2);margin-top:1px}
.rf{background:var(--fresh)}.rr{background:var(--recent)}.rs{background:var(--stale)}.rd{background:var(--dormant)}
.never{font-size:var(--b-apro);color:var(--halvany);font-style:italic}
.due{font-weight:700}.due.late{color:var(--hiba)}.due.today{color:var(--figyelem)}
.rowchk{width:36px}.rowchk input{accent-color:var(--akcent);width:18px;height:18px}
.pipa{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:2px solid var(--vonal-2);color:transparent;font-size:var(--b-apro);vertical-align:-4px;margin-right:2px;font-weight:700}
.pipa.on{background:var(--ok);border-color:var(--ok);color:#fff}

/* ===== lepessor: mi kesz, hol tartasz, mi van hatra ===== */
.lepessor{display:flex;align-items:center;gap:0;margin:var(--t3) 0;flex-wrap:wrap;row-gap:var(--t2)}
.lepessor .lep{display:inline-flex;align-items:center;gap:var(--t2);font-size:var(--b-kis);color:var(--halvany);padding:var(--t1) var(--t2);border-radius:var(--r-pill);white-space:nowrap}
.lepessor .lep .kor{width:22px;height:22px;border-radius:50%;border:2px solid var(--vonal-2);display:inline-flex;align-items:center;justify-content:center;font-size:var(--b-apro);font-weight:700;color:var(--halvany);background:var(--kartya)}
.lepessor .lep.kesz{color:var(--ok)}.lepessor .lep.kesz .kor{background:var(--ok);border-color:var(--ok);color:#fff}
.lepessor .lep.aktiv{color:var(--akcent-mely);font-weight:700;background:var(--akcent-soft)}.lepessor .lep.aktiv .kor{background:var(--akcent);border-color:var(--akcent);color:#fff}
.lepessor .lep.vege{color:var(--hiba)}.lepessor .lep.vege .kor{background:var(--hiba);border-color:var(--hiba);color:#fff}
.lepessor .nyil{color:var(--vonal-2);padding:0 2px}

/* ===== fiok (drawer) ===== */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(720px,100%);background:var(--hatter);border-left:1px solid var(--vonal-2);box-shadow:var(--arnyek-nagy);transform:translateX(100%);transition:transform .22s cubic-bezier(.4,0,.2,1);overflow-y:auto;z-index:40;padding:var(--t4) var(--t5) var(--t7)}
.drawer[data-open]{transform:translateX(0)}
.drawer h2{font-family:var(--font-cim);font-size:var(--b-nagy);margin:0 var(--t7) var(--t1) 0;line-height:1.2;overflow-wrap:anywhere}
.drawer .kartya{margin:var(--t3) 0}
.dclose{position:absolute;top:var(--t2);right:var(--t2);border:none;background:var(--kartya);font-size:var(--b-nagy);cursor:pointer;color:var(--halvany);line-height:1;width:var(--cel);height:var(--cel);border-radius:50%;box-shadow:var(--arnyek)}
.dclose:hover{color:var(--szoveg)}
.drow{display:flex;justify-content:space-between;padding:var(--t2) 0;border-bottom:1px solid var(--vonal);font-size:var(--b-kis);gap:var(--t4)}
.drow:last-child{border-bottom:none}
.drow > span:first-child{color:var(--szoveg-2);flex:1 1 55%;min-width:0;overflow-wrap:anywhere}
.drow > span:last-child{text-align:right;flex:0 1 45%;min-width:0;overflow-wrap:anywhere;font-weight:500}
.drow[data-act]{cursor:pointer}.drow[data-act]:hover{background:var(--kartya-2)}
.dsec{font-size:var(--b-apro);letter-spacing:.09em;text-transform:uppercase;color:var(--akcent-mely);margin:var(--t4) 0 var(--t2);padding-bottom:var(--t1);border-bottom:1px solid var(--vonal-2);display:flex;justify-content:space-between;align-items:center;gap:var(--t2);flex-wrap:wrap;font-weight:700}
.dsec .btn{text-transform:none;letter-spacing:0}
details.nyilo{background:var(--kartya);border:1px solid var(--vonal);border-radius:var(--r-nagy);box-shadow:var(--arnyek);margin:var(--t3) 0;padding:0 var(--t4)}
details.nyilo > summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--t2);min-height:var(--cel);font-size:var(--b-apro);letter-spacing:.09em;text-transform:uppercase;color:var(--akcent-mely);font-weight:700;padding:var(--t2) 0}
details.nyilo > summary::-webkit-details-marker{display:none}
details.nyilo > summary::after{content:"▾";font-size:var(--b-mezo);color:var(--halvany);transition:transform .15s}
details.nyilo:not([open]) > summary::after{transform:rotate(-90deg)}
details.nyilo > summary .n{font-family:var(--font-mono);letter-spacing:0;color:var(--halvany);font-weight:500}
details.nyilo > summary .btn{text-transform:none;letter-spacing:0;margin-left:auto;font-weight:500}
details.nyilo > div{padding:0 0 var(--t3)}
.vbar{display:flex;align-items:center;gap:var(--t2);margin:var(--t1) 0;font-size:var(--b-kis)}
.vbar .y{width:38px;color:var(--szoveg-2)}
.vbar .b{height:14px;background:var(--ok);opacity:.85;min-width:2px;border-radius:3px}
.vbar .q{color:var(--szoveg-2);font-size:var(--b-apro)}
.dlink{display:inline-flex;align-items:center;color:var(--akcent);text-decoration:none;font-weight:600;min-height:var(--cel)}
/* mutatok a fiokban */
.mutatok{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--t2)}
.mutato{background:var(--kartya-2);border-radius:var(--r-kozep);padding:var(--t2) var(--t3)}
.mutato .k{font-size:var(--b-apro);letter-spacing:.06em;text-transform:uppercase;color:var(--halvany);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mutato .v{font-family:var(--font-cim);font-weight:700;font-size:var(--b-cim);font-variant-numeric:tabular-nums;line-height:1.2}
.mutato .v.ok{color:var(--ok)}.mutato .v.figyelem{color:var(--figyelem)}.mutato .v.hiba{color:var(--hiba)}
.mutato .u{font-size:var(--b-apro);color:var(--szoveg-2);font-family:var(--font);font-weight:400}
/* uzenetek */
.warnbox{background:var(--hiba-soft);border:1px solid #F0C9C9;border-radius:var(--r-kozep);padding:var(--t2) var(--t3);font-size:var(--b-kis);color:#8A2C2C;margin:var(--t2) 0 var(--t3)}
.infobox{background:var(--akcent-soft);border:1px solid #BDD6D0;border-radius:var(--r-kozep);padding:var(--t2) var(--t3);font-size:var(--b-kis);color:var(--akcent-mely);margin:var(--t2) 0 var(--t3)}
.amberbox{background:var(--figyelem-soft);border:1px solid #E8D5A6;border-radius:var(--r-kozep);padding:var(--t2) var(--t3);font-size:var(--b-kis);color:#6E4C12;margin:var(--t2) 0 var(--t3)}
.scrim{position:fixed;inset:0;background:rgba(22,27,31,.28);opacity:0;pointer-events:none;transition:opacity .22s;z-index:35}
.scrim[data-open]{opacity:1;pointer-events:auto}
.more{text-align:center;padding:var(--t4)}
.legend{display:flex;gap:var(--t4);font-size:var(--b-apro);color:var(--szoveg-2);align-items:center;flex-wrap:wrap;padding:var(--t3) 0 var(--t4)}
.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--t1);vertical-align:-1px}
.empty{padding:var(--t6) var(--t4);text-align:center;color:var(--szoveg-2)}
.foot{max-width:1620px;margin:0 auto;padding:var(--t4) var(--t5) var(--t6);font-size:var(--b-kis);color:var(--halvany);border-top:1px solid var(--vonal-2);line-height:1.6}

/* ===== urlapok ===== */
.form{display:grid;grid-template-columns:1fr 1fr;gap:var(--t3) var(--t3);margin:var(--t2) 0 var(--t2)}
.form .full{grid-column:1/-1}
.form label{display:flex;flex-direction:column;gap:var(--t1);font-size:var(--b-kis);color:var(--szoveg-2);font-weight:500}
.form label > input,.form label > select,.form label > textarea{width:100%;max-width:none}
.form .actions{grid-column:1/-1;display:flex;gap:var(--t2);align-items:center;justify-content:flex-end;padding-top:var(--t1);flex-wrap:wrap}
.form .err{grid-column:1/-1;color:var(--hiba);font-size:var(--b-kis);min-height:0}
.form .err:not(:empty){background:var(--hiba-soft);border:1px solid #F0C9C9;border-radius:var(--r-kicsi);padding:var(--t2) var(--t3)}
.form .kesz{grid-column:1/-1;color:var(--akcent-mely);background:var(--akcent-soft);border-radius:var(--r-kicsi);padding:var(--t2) var(--t3);font-size:var(--b-kis)}
.inline{display:flex;gap:var(--t2);align-items:center;flex-wrap:wrap}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{padding:var(--t3) 0 var(--t3) var(--t5);border-bottom:1px solid var(--vonal);font-size:var(--b-kis);overflow-wrap:anywhere;position:relative}
.timeline li::before{content:"";position:absolute;left:6px;top:var(--t4);width:10px;height:10px;border-radius:50%;background:var(--akcent);border:2px solid var(--kartya)}
.timeline li.be::before{background:var(--eu)}
.timeline li:last-child{border-bottom:none}
.timeline .when{color:var(--halvany);font-size:var(--b-apro);font-family:var(--font-mono)}
.timeline .who{color:var(--szoveg-2);font-weight:600}
.timeline .osszeg{font-size:var(--b-alap);color:var(--szoveg);margin-top:2px}
.timeline .next{margin-top:var(--t1);padding:var(--t1) var(--t2);background:var(--kartya-2);border-radius:var(--r-kicsi);display:inline-flex;gap:var(--t2);align-items:center;flex-wrap:wrap}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--t4);padding:var(--t4) 0}
.card{background:var(--kartya);border:1px solid var(--vonal);border-radius:var(--r-nagy);padding:var(--t4);box-shadow:var(--arnyek)}
.card h3{font-family:var(--font);font-size:var(--b-apro);letter-spacing:.09em;text-transform:uppercase;color:var(--akcent-mely);font-weight:700;margin:0 0 var(--t2);display:flex;justify-content:space-between;align-items:center}
.card h3 .n{font-family:var(--font-mono);letter-spacing:0;color:var(--halvany);font-weight:500}
.card ul{list-style:none;margin:0;padding:0}
.card li{padding:var(--t2) 0;border-bottom:1px solid var(--vonal);font-size:var(--b-kis);cursor:pointer;display:flex;justify-content:space-between;gap:var(--t3);min-height:var(--cel);align-items:center}
.card li > span:first-child{flex:1 1 55%;min-width:0;overflow-wrap:anywhere}
.card li > span:last-child{flex:0 1 45%;min-width:0;text-align:right}
.card li:last-child{border-bottom:none}
.card li:hover{color:var(--akcent)}
.funnel{display:flex;gap:var(--t2);flex-wrap:wrap;padding:var(--t3) 0}
.funnel .step{background:var(--kartya);border:1px solid var(--vonal);border-radius:var(--r-kozep);padding:var(--t2) var(--t3);font-size:var(--b-kis);cursor:pointer;min-width:110px;min-height:var(--cel);text-decoration:none;color:var(--szoveg-2);font-family:inherit;box-shadow:var(--arnyek);text-align:left}
.funnel .step b{display:block;font-family:var(--font-cim);font-size:var(--b-cim);font-weight:700;color:var(--szoveg)}
.funnel .step[aria-pressed=true]{border-color:var(--tinta);background:var(--tinta);color:#fff}.funnel .step[aria-pressed=true] b{color:#fff}
.kv{display:grid;grid-template-columns:auto 1fr;gap:var(--t1) var(--t4);font-size:var(--b-kis)}
.kv dt{color:var(--szoveg-2)}.kv dd{margin:0}
.toast{position:fixed;bottom:var(--t4);left:50%;transform:translateX(-50%);background:var(--tinta);color:#fff;padding:var(--t3) var(--t4);border-radius:var(--r-kozep);z-index:60;box-shadow:var(--arnyek-nagy);opacity:0;transition:opacity .2s;pointer-events:none;max-width:calc(100% - var(--t6))}
.toast[data-show]{opacity:1}
.toast.err{background:var(--hiba)}
.login{max-width:400px;margin:var(--t8) auto;background:var(--kartya);border:1px solid var(--vonal);padding:var(--t5);box-shadow:var(--arnyek-nagy);border-radius:var(--r-nagy)}
.login h1{margin-bottom:var(--t4);color:var(--szoveg)}
.login label{display:block;font-size:var(--b-kis);color:var(--szoveg-2);margin:var(--t3) 0 var(--t1);font-weight:500}
.login input{width:100%}
.login .btn{margin-top:var(--t4);width:100%}
.bar{height:6px;background:var(--akcent-soft);border-radius:3px;overflow:hidden;margin-top:3px;max-width:160px}
.bar > span{display:block;height:100%;background:var(--akcent)}
.chart{display:flex;align-items:flex-end;gap:var(--t1);height:120px;padding:var(--t2) 0;border-bottom:1px solid var(--vonal-2)}
.chart .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;min-width:0}
.chart .col .b{width:100%;background:var(--akcent);border-radius:3px 3px 0 0}
.chart .col .b.rej{background:var(--figyelem)}
.chart .col .l{font-size:var(--b-apro);color:var(--halvany);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.chart .col .v{font-size:var(--b-apro);font-family:var(--font-mono)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--t4)}
pre.naplo{max-height:320px;overflow:auto;white-space:pre-wrap;font-size:var(--b-apro);background:var(--kartya-2);border:1px solid var(--vonal);padding:var(--t2);border-radius:var(--r-kicsi);font-family:var(--font-mono)}
.kinalat td,.kinalat th{padding:var(--t1) var(--t2)}
/* elo folyamat-allapot */
.folyamat{background:var(--kartya);border:1px solid var(--vonal);border-radius:var(--r-nagy);padding:var(--t3) var(--t4);margin:var(--t2) 0;box-shadow:var(--arnyek)}
.folyamat .fej{display:flex;justify-content:space-between;align-items:center;gap:var(--t3);font-weight:600;flex-wrap:wrap}
.folyamat .fej .meta{font-family:var(--font-mono)}
.folyamat .sav{height:10px;background:var(--kartya-2);border-radius:var(--r-pill);overflow:hidden;margin:var(--t2) 0}
.folyamat .sav > span{display:block;height:100%;background:var(--akcent-gradiens);transition:width .4s}
.folyamat.kesz .sav > span{background:var(--ok)}.folyamat.hiba .sav > span{background:var(--hiba)}
.folyamat ol{list-style:none;margin:0;padding:0;font-size:var(--b-kis);color:var(--szoveg-2);max-height:180px;overflow:auto}
.folyamat li{padding:2px 0}.folyamat li .when{font-family:var(--font-mono);color:var(--halvany);margin-right:var(--t2)}
.folyamat li:last-child{color:var(--szoveg);font-weight:600}
@media (max-width:920px){.hide-s{display:none}.stat .v{font-size:var(--b-cim)}.form{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}thead th{top:0;position:static}.controls{position:static}.pname{max-width:none}.tabs{top:0;position:static}header{position:static}}
@media (max-width:600px){.masthead,.wrap,.tabs,.foot{padding-left:var(--t3);padding-right:var(--t3)}.drawer{padding:var(--t4) var(--t3) var(--t6)}select{max-width:100%}input[type=search]{min-width:0}.asof{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.controls,.tabs,header,.foot,.drawer,.scrim{display:none!important}}
/* ===== szakaszonkent elvalasztott folyamat (Beszerzes, Ertekesites) ===== */
.szakasz{background:var(--kartya);border:1px solid var(--vonal);border-left:6px solid var(--vonal-2);border-radius:var(--r-nagy);box-shadow:var(--arnyek);margin:var(--t4) 0;padding:var(--t3) var(--t4) var(--t4);scroll-margin-top:120px}
.szakasz.s0{border-left-color:#B9B1A8}.szakasz.s1{border-left-color:var(--akcent)}.szakasz.s2{border-left-color:var(--eu)}.szakasz.s3{border-left-color:var(--figyelem)}.szakasz.s4{border-left-color:var(--ok)}
.szakasz-fej{display:flex;align-items:center;gap:var(--t3);margin-bottom:var(--t2)}
.szakasz-fej .kor{width:40px;height:40px;border-radius:50%;background:var(--tinta);color:#fff;font-family:var(--font-cim);font-weight:700;font-size:var(--b-kiemelt);display:inline-flex;align-items:center;justify-content:center;flex:none}
.szakasz-fej h3{margin:0;font-family:var(--font-cim);font-size:var(--b-kiemelt);font-weight:700}
.szakasz .tabla{box-shadow:none;border-radius:var(--r-kozep)}
.szakasz .ures{padding:var(--t3) var(--t4);background:var(--kartya-2);border-radius:var(--r-kozep);color:var(--szoveg-2);font-size:var(--b-kis)}
.funnel .step{color:var(--szoveg-2)}
/* ragados fejlec csak a nagy listakon; kartyaban es fiokban statikus */
.szakasz thead th,.drawer thead th,.kinalat thead th,.card thead th,details.nyilo thead th{position:static}
.szakasz .pname,.drawer .pname{min-width:220px}
.szakasz td.rowchk,.szakasz th.rowchk{width:44px}
/* akciosav: nezet, pipak, szamlalo es a kiemelt akciogombok - a szurok alatt, kulon sorban */
.akciosav{display:flex;gap:var(--t2);align-items:center;flex-wrap:wrap;padding:var(--t2) var(--t4);background:var(--kartya);border:1px solid var(--vonal);border-radius:var(--r-nagy);box-shadow:var(--arnyek);margin:0 0 var(--t3)}
.akciosav .btn.primary{min-height:var(--cel);padding:0 var(--t5)}
/* a Piac soraiban latszik, hol tart a projekt a beszerzesben: szines bal szel + hatter */
tbody tr[data-stage]:not([data-stage=""]) td:first-child{box-shadow:inset 5px 0 0 var(--akcent)}
tbody tr[data-stage="selected"] td:first-child{box-shadow:inset 5px 0 0 #B9B1A8}
tbody tr[data-stage="contacted"] td:first-child{box-shadow:inset 5px 0 0 var(--akcent)}
tbody tr[data-stage="replied"] td:first-child{box-shadow:inset 5px 0 0 var(--eu)}
tbody tr[data-stage="negotiating"] td:first-child{box-shadow:inset 5px 0 0 var(--figyelem)}
tbody tr[data-stage="contracted"] td:first-child{box-shadow:inset 5px 0 0 var(--ok)}
tbody tr[data-stage="contracted"]{background:var(--ok-soft)}
tbody tr[data-stage="inactive"] td:first-child,tbody tr[data-stage="rejected"] td:first-child{box-shadow:inset 5px 0 0 var(--hiba)}
tbody tr[data-stage]:not([data-stage=""]):not([data-stage="contracted"]){background:var(--kartya-2)}
#tbStock .pname,#tbP .pname,#tbB .pname,#tbL .pname{min-width:240px}
/* ragados tablafejlec csak a nagy listakon (Piac projektek/vevok, Partnerek, Kreditcsomagok) */
thead th{position:static}
.tabla:has(#tbStock) thead th,.tabla:has(#tbB) thead th,.tabla:has(#tbP) thead th,.tabla:has(#tbL) thead th{position:sticky;top:calc(108px + var(--controls-h,0px));box-shadow:0 1px 0 var(--vonal-2)}
@media (max-width:920px){.tabla thead th{position:static!important}}
/* Semmi ne logjon tul: a tabla a kartyan belul marad. A fejlec es a meta-cellak sorra torhetnek,
   a szamok nem. 1200 px alatt a tabla a sajat tarolojaban gorget (ott a fejlec statikus). */
.tabla table{table-layout:auto;width:100%;max-width:100%}
thead th{white-space:normal;line-height:1.25;vertical-align:bottom}
td.meta{white-space:normal}
.tag{white-space:normal}
.num{white-space:nowrap}
.pname{max-width:none}
#tbStock .pname,#tbP .pname,#tbB .pname,#tbL .pname{min-width:180px}
.track{width:96px}
@media (max-width:1200px){.tabla{overflow-x:auto}.tabla thead th{position:static!important}}

/* feltoltesi mezo hibasora */
.fajlhiba{flex-basis:100%;margin-top:var(--t1)}.fajlhiba:empty{display:none}
