/* ============================================================================
   seged.css — ELRENDEZÉSI SEGÉDOSZTÁLYOK, minden lapra (design-teljes, 2026-09-06)
   ============================================================================
   Betöltési sorrend: tokens → base → pages/pg-*.css → components → EZ.
   Ezek NEM komponensek és nem hordoznak stílust: azt a layout-ragasztót adják
   osztályként, ami eddig inline volt (display:flex; gap; margin; szöveg-hangfok).
   Minden érték tokenre hivatkozik. A tender_view `tv-*` készletének általánosítása
   (pg-tender-view.css) — ugyanaz a rács, `u-` előtaggal, hogy egyetlen lap se
   birtokolja. Szabály: ha egy inline stílus komponensre képezhető, oda megy; ha
   csak elrendezés, ide; ami egyik sem, az MARAD inline és a jelentésben listázva.
   ========================================================================= */

/* sorok, oszlopok, rácsok */
.u-row      { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.u-row--between { justify-content: space-between; }
.u-row--start   { align-items: flex-start; }
.u-row--end     { justify-content: flex-end; }
.u-row--tight   { gap: var(--sp-2); }
.u-row--nowrap  { flex-wrap: nowrap; }
.u-stack    { display: flex; flex-direction: column; gap: var(--sp-2); }
.u-stack--3 { gap: var(--sp-3); }
.u-grid-2   { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
.u-grid-3   { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--sp-3); }
.u-grid-4   { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); }
.u-grow     { flex: 1; min-width: 0; }
.u-right    { margin-left: auto; }
.u-center   { text-align: center; }
.u-text-right { text-align: right; }

/* térköz (a --sp skála) */
.u-mt-1 { margin-top: var(--sp-1); } .u-mt-2 { margin-top: var(--sp-2); } .u-mt-3 { margin-top: var(--sp-3); }
.u-mt-4 { margin-top: var(--sp-4); } .u-mt-6 { margin-top: var(--sp-6); }
.u-mb-1 { margin-bottom: var(--sp-1); } .u-mb-2 { margin-bottom: var(--sp-2); } .u-mb-3 { margin-bottom: var(--sp-3); }
.u-mb-4 { margin-bottom: var(--sp-4); } .u-mb-6 { margin-bottom: var(--sp-6); }
.u-ml-3 { margin-left: var(--sp-3); }
.u-m-0  { margin: 0; } .u-mb-0 { margin-bottom: 0; } .u-mt-0 { margin-top: 0; }
.u-p-0  { padding: 0; }
.u-pad  { padding: var(--sp-4) var(--sp-6); }          /* kártya-belső a panelben */
.u-bt   { border-top: 1px solid var(--border); padding-top: var(--sp-4); }
.u-bb   { border-bottom: 1px solid var(--border); padding-bottom: var(--sp-4); }

/* méret, láthatóság */
.u-full   { width: 100%; }
.u-w-narrow { max-width: 280px; }
.u-hidden { display: none; }
.u-dim    { opacity: .3; }
.u-pointer { cursor: pointer; }
.u-sticky-top { position: sticky; top: var(--rnx-hd-h, 70px); z-index: var(--z-sticky, 90); }

/* szöveg: méret, hangfok, család */
.u-xs    { font-size: var(--text-xs); }
.u-small { font-size: var(--text-sm); }
.u-body  { font-size: var(--text-base); line-height: 1.6; color: var(--color-text); }
.u-muted  { color: var(--color-muted); }
.u-subtle { color: var(--color-subtle); }
.u-identity { color: var(--accent-text); }
.u-success  { color: var(--success); }
.u-danger   { color: var(--danger); }
.u-warn     { color: var(--warn); }
.u-info     { color: var(--info); }
.u-strong { font-weight: 600; }
.u-regular { font-weight: 400; }
.u-italic { font-style: italic; }
.u-mono   { font-family: var(--font-mono); }
.u-serif  { font-family: var(--font-serif); font-weight: 400; }
.u-pre    { white-space: pre-wrap; }
.u-nowrap { white-space: nowrap; }
.u-nolink { text-decoration: none; }
.u-block  { display: block; }

/* gomb-sor, kereső */
.u-actions { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
.u-grow-btn  { flex: 1; }
.u-grow-btn2 { flex: 2; }
.u-search { position: relative; flex: 1; min-width: 260px; }
.u-search svg { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.u-search .rnx-input { padding-left: 34px; }
.u-modal-close { position: absolute; top: 14px; right: 18px; font-size: 22px; }

/* a HTML hidden attribútum védelme a komponens-osztályok display-e ellen (NY7) */
.rnx-callout[hidden], .rnx-panel[hidden], .u-row[hidden], .u-stack[hidden] { display: none; }

/* wrap nélkül bekötött táblák (data-table, arbev-table, dk-table … → .rnx-table): a keretet a
   .rnx-table-wrap adná, ami a régi markupban nincs — itt kapja meg a tábla maga (a kaszkád-javítás
   a régi .data-table keretét/hátterét kivette, 2026-09-06). */
table.rnx-table:not(.rnx-table-wrap > table) { border: 1px solid var(--border); background: var(--bg-surface); }
.u-pad-sm { padding: var(--sp-2) var(--sp-3); }        /* kis kartya-belso (8/12) */
.u-py    { padding: var(--sp-3) 0; }                    /* csak fuggoleges terkoz */

/* sorban allo mezo: az eredeti (inline) markupban meret nelkuli input/select a sajat tartalmanak szelesseget
   vette fel; a .rnx-input 100%-a flex-sorban az egesz sort elviszi (admin_tokens szuro, 2026-09-06).
   A no (u-grow) es a teljes szelesseg (u-full) kifejezetten kerheto. */
.u-row > .rnx-input:not(.u-grow):not(.u-full), .u-actions > .rnx-input:not(.u-grow):not(.u-full) { width: auto; }
