/* Élelmiszeripari cégek – svájci rács, visszafogott.
   Elvek: egy betűcsalád, táblázatos számjegyek, hajszálvonalak, semmi árnyék és lekerekítés,
   két jelzőszín (Cibus zöld / piros), a felület maga a rács. */
:root{
  color-scheme: light;
  --paper:#f6f6f4; --surface:#fff; --ink:#15171a; --ink-2:#5f656c; --ink-3:#8a9097;
  --rule:rgba(21,23,26,.16); --rule-soft:rgba(21,23,26,.08);
  --green:#0ba245; --red:#d4232a;
  --c1:#eef1ee; --c2:#dbe6dc; --c3:#bfd6c4; --c4:#9cc2a8; --c5:#71a885; --c6:#3f8a5c;
  --gut:16px; --pad:24px;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font:400 15px/1.45 "Helvetica Neue",Inter,system-ui,-apple-system,Arial,sans-serif;
  font-variant-numeric:tabular-nums; letter-spacing:-.004em;
}
h1,h2,h3{margin:0; font-weight:600; letter-spacing:-.018em}
p{margin:0}
.muted{color:var(--ink-2)}
.num,.r{font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:50}

/* ---------- fejléc: hajszálvonal alatta, logó + cím ---------- */
.top{border-bottom:1px solid var(--ink); background:var(--paper); position:sticky; top:0; z-index:20}
.top-in{max-width:1440px;margin:0 auto;padding:14px var(--pad);display:flex;align-items:center;gap:20px}
.brand{flex:0 0 auto;display:block;line-height:0}
.brand img{height:26px;width:auto;display:block}
.titles{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;min-width:0}
h1{font-size:19px}

/* ---------- rács ---------- */
main{max-width:1440px;margin:0 auto;padding:0 var(--pad) 48px}
.panel,.stats,.mapsec,.tablesec{border-bottom:1px solid var(--rule)}

/* ---------- szűrők ---------- */
.panel{padding:0}
.panel>summary{display:none}
.filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px 22px;padding:18px 0 22px}
.fg{display:flex;flex-direction:column;gap:6px;min-width:0}
.span2{grid-column:span 2}
.span3{grid-column:span 3}
.right{justify-self:end;align-self:end}
.reset{justify-content:flex-end;align-items:flex-start}
.fg>label,.lab,.sec-h{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);font-weight:600}
input[type=search],select{
  appearance:none;-webkit-appearance:none;width:100%;min-height:34px;padding:4px 20px 5px 0;
  border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;
  color:var(--ink);font:inherit;font-size:14.5px;
}
select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 9px) 15px,calc(100% - 4px) 15px;background-size:5px 5px;background-repeat:no-repeat}
input[type=search]::placeholder{color:var(--ink-3)}
input:focus-visible,select:focus-visible,.btn:focus-visible,.seg button:focus-visible,.pill:focus-within{outline:2px solid var(--green);outline-offset:2px}
.checks{display:flex;flex-wrap:wrap;gap:6px;padding-top:2px}
.pill{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 11px 5px 9px;border:1px solid var(--rule);background:var(--surface);cursor:pointer;font:400 13px/1.3 inherit;letter-spacing:0;text-transform:none;color:var(--ink-2)}
.pill input{appearance:none;-webkit-appearance:none;width:13px;height:13px;border:1px solid var(--ink-3);background:#fff;margin:0;flex:0 0 auto}
.pill.on{border-color:var(--ink);color:var(--ink)}
.pill.on input{background:var(--green);border-color:var(--green);
  background-image:linear-gradient(45deg,transparent 42%,#fff 42%,#fff 54%,transparent 54%),linear-gradient(-45deg,transparent 56%,#fff 56%,#fff 68%,transparent 68%)}
.btn{min-height:34px;padding:7px 14px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}
.btn:hover{background:var(--ink);color:#fff}
.btn[disabled]{opacity:.35;cursor:default}
.btn[disabled]:hover{background:transparent;color:var(--ink)}

/* ---------- mérőszámsor: cellák hajszálvonallal elválasztva ---------- */
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:0;padding:0}
.stat{padding:16px 18px;border-left:1px solid var(--rule-soft);display:flex;flex-direction:column;gap:3px;min-width:0}
.stat:first-child{border-left:0;padding-left:0}
.stat .v{font-size:clamp(17px,1.5vw,23px);font-weight:600;letter-spacing:-.022em;line-height:1.15;white-space:nowrap}
.stat .l{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);font-weight:600}
.stat .v.neg{color:var(--red)}

.sec-h{display:flex;align-items:baseline;gap:10px;padding:14px 0 2px}
.sec-h .no{font-variant-numeric:tabular-nums;color:var(--green)}
.sec-h .of{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-3);font-size:11px}

/* ---------- térkép ---------- */
.mapsec{padding:20px 0 24px}
.mapctl{display:flex;flex-wrap:wrap;gap:var(--gut) 28px;padding-bottom:16px}
.seg{display:inline-flex;border:1px solid var(--ink)}
.seg button{min-height:34px;padding:6px 12px;border:0;border-left:1px solid var(--ink);background:transparent;color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer}
.seg button:first-child{border-left:0}
.seg button[aria-pressed=true]{background:var(--ink);color:#fff}
.mapgrid{display:grid;grid-template-columns:8fr 4fr;gap:0;border:1px solid var(--rule);background:var(--surface)}
.mapbox{position:relative;margin:0;min-width:0;touch-action:pan-y}
.mapbox svg{display:block;width:100%;height:auto}
.maptools{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:-1px;z-index:5}
.maptools button{width:34px;height:34px;border:1px solid var(--ink);border-bottom:0;background:rgba(255,255,255,.92);color:var(--ink);font:inherit;font-size:15px;line-height:1;cursor:pointer}
.maptools button:last-child{border-bottom:1px solid var(--ink)}
.maptools button:hover{background:var(--ink);color:#fff}
.maplegend{padding:10px 12px 12px;border-top:1px solid var(--rule-soft);font-size:11.5px;color:var(--ink-2);display:grid;gap:6px}
.maplegend .sw{display:inline-block;width:11px;height:11px;margin-right:5px;vertical-align:-1px}
.county{fill:#fff;stroke:var(--ink);stroke-width:.5;vector-effect:non-scaling-stroke}
.pt{fill:var(--ink);fill-opacity:.66;stroke:#fff;stroke-width:.75;vector-effect:non-scaling-stroke;cursor:pointer}
.pt.neg{fill:var(--red);fill-opacity:.72}
.pt.sel{fill:var(--green);fill-opacity:1;stroke:var(--ink)}
.tesz{fill:none;stroke:var(--green);stroke-width:1.6;vector-effect:non-scaling-stroke}
.detail{border-left:1px solid var(--rule);padding:18px;min-width:0;max-height:560px;overflow:auto}
.detail h3{font-size:17px;margin:2px 0 12px}
.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);font-weight:600}
.kv{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;margin:0 0 14px;font-size:13.5px}
.kv dt{color:var(--ink-2);font-size:11px;text-transform:uppercase;letter-spacing:.06em;align-self:center}
.kv dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.toplist{list-style:none;margin:0;padding:0;counter-reset:t;display:grid}
.toplist li{display:flex;gap:10px;align-items:baseline;justify-content:space-between;border-top:1px solid var(--rule-soft);padding:7px 0;cursor:pointer;font-size:13.5px}
.toplist li:hover{background:#f2f4f2}
.toplist li::before{counter-increment:t;content:counter(t,decimal-leading-zero);color:var(--ink-3);font-size:11px;min-width:18px}
.toplist .n{flex:1;min-width:0}
.toplist .v{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink-2)}
.sites{margin:0;padding:0;list-style:none;display:grid;gap:7px;font-size:13px;max-height:220px;overflow:auto}
.sites li{border-top:1px solid var(--rule-soft);padding-top:6px}

/* ---------- táblázat ---------- */
.tablesec{padding:22px 0 18px}
.tbl-wrap{overflow:auto;max-height:620px;border:1px solid var(--rule);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:13.5px}
thead th{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--ink);padding:9px 10px;text-align:left;
  font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);font-weight:600;white-space:nowrap;cursor:pointer}
thead th.r{text-align:right}
tbody td{border-bottom:1px solid var(--rule-soft);padding:8px 10px;vertical-align:top}
tbody td.r{text-align:right;font-variant-numeric:tabular-nums}
tbody tr{cursor:pointer}
tbody tr:hover{background:#f2f4f2}
tbody tr.sel{background:#eaf3ec;box-shadow:inset 3px 0 0 var(--green)}
.arr{color:var(--green);margin-left:4px}
.chip{display:inline-block;padding:1px 6px;border:1px solid var(--rule);font-size:11px;color:var(--ink-2);white-space:nowrap}
.chip.neg{border-color:var(--red);color:var(--red)}
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;font-size:12.5px;color:var(--ink-2);flex-wrap:wrap}
.pager .pg{display:flex;gap:8px}


/* ---------- súgó ---------- */
.tip{position:fixed;z-index:60;max-width:320px;background:var(--ink);color:#fff;padding:8px 10px;font-size:12.5px;line-height:1.4;pointer-events:none}
.tip b{font-weight:600}

/* ---------- mobil ---------- */
@media (max-width:1080px){
  .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .span3{grid-column:span 2}
  .right{justify-self:start}
  .stats{grid-template-columns:repeat(3,1fr)}
  .mapgrid{grid-template-columns:1fr}
  .detail{border-left:0;border-top:1px solid var(--rule);max-height:none}
}
@media (max-width:720px){
  :root{--pad:16px}
  .top-in{gap:12px;padding:10px var(--pad)}
  .brand img{height:22px}
  h1{font-size:16px}
  .titles{gap:2px;flex-direction:column}
  .panel>summary{display:flex;align-items:baseline;gap:10px;padding:12px 0;cursor:pointer;list-style:none}
  .panel>summary::-webkit-details-marker{display:none}
  .panel>summary::after{content:"▾";margin-left:auto;color:var(--ink-2)}
  .panel[open]>summary::after{content:"▴"}
  .sum-lab{font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:600}
  .sum-n{font-size:12.5px;color:var(--ink-2)}
  .filters{grid-template-columns:1fr;padding:4px 0 16px;gap:14px}
  .span3{grid-column:span 1}
  input[type=search],select{min-height:44px;font-size:16px}
  .pill{min-height:40px;font-size:13.5px}
  .span2{grid-column:span 1}
  .reset{align-items:stretch}
  .reset .btn{width:100%}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat{padding:10px 10px;border-top:1px solid var(--rule-soft)}
  .stat .v{font-size:17px}
  .sec-h{padding:12px 0 2px}
  .stat:nth-child(odd){border-left:0;padding-left:0}
  .stat:nth-child(-n+2){border-top:0}
  .mapctl{gap:10px 16px;padding-bottom:12px}
  .mapctl .fg{flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}
  .mapctl .lab{min-width:58px}
  .seg button{padding:7px 10px;font-size:12.5px}
  .maptools button{width:38px;height:38px}
  .tbl-wrap{max-height:none}
  tbody td,thead th{padding:8px 8px}
  tbody td:first-child,thead th:first-child{position:sticky;left:0;background:var(--surface);box-shadow:1px 0 0 var(--rule-soft)}
  tbody tr:hover td:first-child{background:#f2f4f2}
  tbody tr.sel td:first-child{background:#eaf3ec}
  .tip{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
