/* AZ ALAPRÉTEG — a keret, amiben a lapok élnek.
 *
 * Innen jön a lap háttere, a tartalmi doboz, a címsorok, a táblázatok, az
 * űrlapelemek, a gombok és a jelvények. Minden lap ezt kapja meg először,
 * és a témalapok (02…07) ezen finomítanak.
 *
 * Korábban ez a réteg a v1 közös stíluslapjából jött. Most a v2 sajátja:
 * ugyanazok a szabályok, ugyanabban a sorrendben, de tokenekkel - és a
 * v1-hez nincs több köze.
 */

* { box-sizing: border-box; }
body { font-family: var(--alap-betu); background: var(--alap-lap-hatter); margin: 0; color: var(--alap-szoveg); line-height: 1.45; }
.sticky-head { position: sticky; top: 0; z-index: 50; }
main { max-width: 1400px; margin: 28px auto; background: var(--alap-lap); border-radius: 14px; padding: 32px; box-shadow: var(--alap-arny-lap); }
h2 { margin-top: 0; font-weight: 700; letter-spacing: -.01em; }
h3 { margin-top: 0; font-weight: 700; }
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
th, td { padding: 10px; border-bottom: 1px solid var(--alap-keret); text-align: left; vertical-align: top; }
td { font-size: 13px; }
th { background: var(--alap-hatter-halk); font-weight: 700; color: var(--alap-szoveg-halk); text-transform: uppercase; font-size: 11px; letter-spacing: .04em; }
input, select, textarea { width: 100%; box-sizing: border-box; padding: 9px 11px; border: 1px solid var(--alap-keret); border-radius: 6px; font-size: 14px; font-family: inherit; background: var(--alap-lap); color: var(--alap-szoveg); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--alap-elsodleges); box-shadow: 0 0 0 3px var(--alap-fokusz-halo); }
textarea { min-height: 90px; }
label { display: block; font-size: 12.5px; font-weight: 700; margin-bottom: 5px; color: var(--alap-szoveg-halk); }
button, .button { display: inline-block; text-decoration: none; padding: 9px 16px 8px; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; border: 1px solid transparent; border-bottom-width: 3px; box-shadow: var(--alap-arny-gomb); transition: transform .08s, box-shadow .08s, background .12s, border-color .12s; }
button:active, .button:active { transform: translateY(2px); border-bottom-width: 1px; box-shadow: none; }
button, .button { background: var(--alap-elsodleges); color: white; border-color: var(--alap-elsodleges-sotet); }
button:hover, .button:hover { background: var(--alap-elsodleges-vilagos); }
.button-secondary { background: var(--alap-lap); color: var(--alap-szoveg); border-color: var(--alap-keret); border-bottom-color: var(--alap-gomb-el); }
.button-secondary:hover { background: var(--alap-hatter-halk); border-bottom-color: var(--alap-gomb-el-sotet); }
.button-danger { background: var(--alap-veszely); color: white; border-color: var(--alap-veszely-sotet); }
.button-danger:hover { background: var(--alap-veszely-vilagos); }
.badge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: var(--alap-jelveny); color: var(--alap-jelveny-szoveg); white-space: nowrap; }
.badge-green { background: var(--szin-rendben-halk); color: var(--szin-kuldetes); }
.badge-yellow { background: var(--szin-figyelem-halk); color: var(--alap-uzenet-figy-szoveg); }
.badge-blue { background: var(--szin-as-lap); color: var(--szin-as-szoveg); }
.badge-red { background: var(--szin-veszely-halk); color: var(--alap-jelveny-piros); }
.card { background: var(--alap-hatter-halk); border: 1px solid var(--alap-keret); border-radius: 10px; padding: 18px; margin-bottom: 20px; box-shadow: var(--alap-arny-kartya); transition: box-shadow .18s, transform .18s; }
/* A nagy fehér felületek nem laposak: egy alig látható szemcse ül rajtuk.
   Ez korábban a v1 stíluslapjából jött, és a v1 törlésekor tűnt el. */
main, .card { background-image: var(--alap-szemcse); }
.small { color: var(--alap-szoveg-halk); font-size: 13.5px; }
.error { background: var(--szin-veszely-lap); color: var(--alap-veszely-sotet); padding: 20px; border-radius: 10px; border: 1px solid var(--alap-uzenet-hiba-keret); }
.warning { background: var(--szin-hiany-lap); color: var(--alap-uzenet-figy-szoveg); padding: 14px; border-radius: 10px; margin-bottom: 20px; border: 1px solid var(--alap-uzenet-figy-keret); }
.success { background: var(--alap-uzenet-siker-lap); color: var(--szin-kuldetes); padding: 14px; border-radius: 10px; margin-bottom: 20px; border: 1px solid var(--alap-uzenet-siker-keret); }
.actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.scroll-x { overflow-x: auto; }

/* FRISSÍTÉS-ABLAK — akkor ugrik fel, ha új változat érkezett a szerverre.
   A jobb alsó sarokban áll, mint az értesítő buborékok, de nem tűnik el
   magától: döntést kér, nem hírt közöl. */
.frissul { position:fixed; right:14px; bottom:14px; z-index:90; display:flex; align-items:center; gap:12px;
  max-width:min(380px, calc(100vw - 28px)); padding:12px 14px; border-radius:var(--ker-nagy);
  background:var(--szin-sav); color:var(--szin-lap); box-shadow:var(--arny-ertesites);
  animation:frissul-be .2s ease-out; }
.frissul-szoveg { display:flex; flex-direction:column; gap:2px; min-width:0; }
.frissul-szoveg strong { font-size:var(--betu-urlap); }
.frissul-szoveg span { font-size:var(--betu-jelolo); color:var(--szin-sav-szoveg); }
.frissul .button { flex-shrink:0; }
.frissul-kesobb { background:none; border:0; box-shadow:none; color:var(--szin-sav-halk);
  font-size:var(--betu-alap); line-height:1; padding:4px; cursor:pointer; flex-shrink:0; }
.frissul-kesobb:hover { color:var(--szin-lap); }
@keyframes frissul-be { from { opacity:0; transform:translateY(14px); }
                        to   { opacity:1; transform:none; } }

/* CSONKOLÁS — a portál egészére érvényes szabály.
 *
 * Semmilyen szöveg nem feszítheti szét a lapot: ami nem fér ki, azt
 * pontokkal vágjuk, és a teljes szöveg rámutatásra jelenik meg. A címkét a
 * public/v2/dnd.js teszi ki, de CSAK oda, ahol tényleg vágás történt -
 * fölösleges buborék zavaró.
 *
 * Két dolog kell hozzá, és mindkettő fontos:
 *   - a hármas overflow/ellipsis/nowrap, ami a vágást elvégzi;
 *   - a min-width:0, ami engedi is, hogy a doboz kisebb legyen a
 *     tartalmánál. Enélkül a flex- és rácselem a saját tartalmához nőne, és
 *     a lap vízszintesen elcsúszna.
 */
.csonkol { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* A v2 saját apróságai, amiket több lap használ. */
.src { color:var(--szin-szoveg-halk); font-size:var(--betu-alap); }
.attn { background:var(--szin-veszely-halk); }
.removal-warning { background:var(--szin-veszely-halk); border:1px solid var(--szin-veszely);
  color:var(--szin-veszely-sotet); padding:6px 9px;
  border-radius:var(--ker-kicsi); font-size:var(--betu-alap); margin-top:6px; }
.val-old { color:var(--szin-veszely-sotet); text-decoration:line-through; }
.val-new { color:var(--szin-uj-ertek); font-weight:600; }
table td, table th { vertical-align: top; }
