:root {
    /* BI Pilot — sötét (alap) téma tokenek */
    --bg-main: #07111f;
    --bg-secondary: #0a1626;
    --bg-card: rgba(13, 26, 43, 0.88);
    --bg-card-hover: #112136;
    --bg-input: #0d1a2b;
    --bg-glow: rgba(18, 44, 72, 0.18);

    --border: #203047;
    --border-subtle: #17263a;

    --text-primary: #f4f7fb;
    --text-secondary: #a8b3c5;
    --text-muted: #75839a;

    --accent: #20c875;
    --accent-hover: #29dc83;
    --accent-dark: #13985a;
    --accent-soft: rgba(32, 200, 117, 0.12);
    --accent-ring: rgba(32, 200, 117, 0.18);
    --accent-border: rgba(64, 235, 145, 0.7);

    --danger: #ef5b68;
    --danger-bg: rgba(239, 91, 104, 0.12);
    --warning: #f4b740;

    --tint-subtle: rgba(255, 255, 255, 0.025);
    --tint-hover: rgba(255, 255, 255, 0.04);

    --radius: 9px;
    --radius-sm: 6px;
    --radius-pill: 999px;
    --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    /* korábbi változónevek — visszafelé kompatibilis aliasok, hogy minden
       meglévő var(...) hivatkozás automatikusan az új tokenekre mutasson */
    --bg: var(--bg-main);
    --card-bg: var(--bg-card);
    --text: var(--text-primary);
    --hiba-bg: var(--danger-bg);
    --hiba-text: var(--danger);
}

:root[data-theme="light"] {
    --bg-main: #f5f6f8;
    --bg-secondary: #ffffff;
    --bg-card: #ffffff;
    --bg-card-hover: #f4f8fb;
    --bg-input: #ffffff;
    --bg-glow: transparent;

    --border: #dfe3e9;
    --border-subtle: #eceff3;

    --text-primary: #17202e;
    --text-secondary: #4b5768;
    --text-muted: #7a8494;

    --accent: #12915a;
    --accent-hover: #0f7d4c;
    --accent-dark: #0b6b40;
    --accent-soft: rgba(18, 145, 90, 0.09);
    --accent-ring: rgba(18, 145, 90, 0.16);
    --accent-border: rgba(15, 125, 76, 0.5);

    --danger: #c23b46;
    --danger-bg: #fdecec;
    --warning: #b5790a;

    --tint-subtle: rgba(15, 23, 42, 0.03);
    --tint-hover: rgba(15, 23, 42, 0.045);
}

* { box-sizing: border-box; }

:root { color-scheme: dark; }
:root[data-theme="light"] { color-scheme: light; }

body {
    margin: 0;
    font-family: var(--font-sans);
    background:
        radial-gradient(circle at 60% 0%, var(--bg-glow), transparent 40%),
        var(--bg-main);
    background-attachment: fixed;
    color: var(--text-primary);
}

.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 0.5rem;
    gap: 1rem;
    padding: 0.8rem 1.75rem;
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border-subtle);
}

.topbar-brand {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.topbar-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.topbar-logo img {
    display: block;
    height: 38px;
    width: auto;
}

.lablec {
    border-top: 1px solid var(--border-subtle);
    margin-top: 2rem;
}
.lablec-bipilot {
    max-width: 1600px;
    margin: 0 auto;
    padding: 1.1rem 1.75rem 1.75rem;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.75rem;
}
.bipilot-logo-tarto {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}
.bipilot-logo { display: none; height: 26px; width: auto; }
.bipilot-logo-sotet { display: block; }
:root[data-theme="light"] .bipilot-logo-sotet { display: none; }
:root[data-theme="light"] .bipilot-logo-vilagos { display: block; }

/* Green Index | GRIXI logó: sötét módban fehér, világosban fekete feliratú változat. */
img.gi-logo { display: none; }
img.gi-logo-sotet { display: block; }
:root[data-theme="light"] img.gi-logo-sotet { display: none; }
:root[data-theme="light"] img.gi-logo-vilagos { display: block; }
.lablec-szoveg {
    color: var(--text-muted);
    font-size: 0.85rem;
    font-weight: 500;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .lablec-bipilot { justify-content: center; flex-wrap: wrap; padding: 1rem; text-align: center; }
}

.topbar-cim { font-weight: 600; color: var(--text-primary); }
.topbar-grixi {
    display: block;
    height: 44px;
    width: auto;
}
.topbar-user {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 0.4rem;
    gap: 0.6rem;
    color: var(--text-muted);
    font-size: 0.88rem;
}

.topbar-ugyfel {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    max-width: 240px;
    padding: 0.3rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--bg-card);
    color: var(--text-secondary);
    font-size: 0.82rem;
    font-weight: 600;
}
.topbar-ugyfel svg { color: var(--accent); flex-shrink: 0; }
.topbar-ugyfel-nev {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.topbar-user a { color: var(--accent); text-decoration: none; font-weight: 500; }
.topbar-user a:hover { color: var(--accent-hover); text-decoration: underline; }

.theme-valto {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
    flex-shrink: 0;
}
.theme-valto:hover { border-color: var(--accent); color: var(--accent); }
.theme-valto svg { display: none; }
.theme-valto .ikon-hold { display: block; }
:root[data-theme="light"] .theme-valto .ikon-hold { display: none; }
:root[data-theme="light"] .theme-valto .ikon-nap { display: block; }

.tartalom {
    max-width: 1600px;
    margin: 0 auto;
    padding: 2.5rem 1.75rem 4rem;
}

h1 {
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.35;
    color: var(--text-primary);
    margin: 0 0 1rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--border);
}

h2 { color: var(--text-primary); font-weight: 600; }

.belepes-branding {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
    max-width: 380px;
    margin: 4rem auto 0;
}
.belepes-logo { height: 44px; width: auto; }
.belepes-cim {
    color: var(--text-primary);
    font-weight: 600;
    font-size: 1.05rem;
    text-align: center;
}

.login-doboz {
    max-width: 380px;
    margin: 1.5rem auto 0;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 2rem;
}

form { display: flex; flex-direction: column; gap: 0.35rem; }

label { font-size: 0.85rem; color: var(--text-secondary); margin-top: 0.5rem; }

input[type="email"],
input[type="password"],
input[type="search"],
input[type="text"],
input[type="date"],
input[type="number"],
select,
textarea {
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-input);
    color: var(--text-primary);
    font-family: inherit;
    font-size: 1rem;
    width: 100%;
}

input::placeholder { color: var(--text-muted); }

input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="date"]:focus,
input[type="number"]:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

input[type="radio"],
input[type="checkbox"] {
    accent-color: var(--accent);
    width: 15px;
    height: 15px;
}

input[type="search"] { margin-bottom: 1.25rem; }

button[type="submit"],
button.gomb-fo {
    margin-top: 1.25rem;
    padding: 0.6rem 1.1rem;
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, var(--accent-hover) 0%, var(--accent-dark) 100%);
    box-shadow: 0 0 0 1px rgba(32, 200, 117, 0.08), 0 4px 14px rgba(15, 160, 90, 0.18);
    color: #ffffff;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.12s ease, background 0.12s ease;
}
button[type="submit"]:hover,
button.gomb-fo:hover {
    background: linear-gradient(180deg, var(--accent) 0%, var(--accent-hover) 100%);
    transform: translateY(-1px);
}
button[type="submit"]:active,
button.gomb-fo:active { transform: translateY(0); }

.hibauzenet {
    background: var(--danger-bg);
    color: var(--danger);
    padding: 0.6rem 0.8rem;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
}

.demo-info {
    margin-top: 1.5rem;
    font-size: 0.8rem;
    color: var(--text-muted);
    line-height: 1.5;
}
.demo-info code {
    background: var(--tint-subtle);
    border: 1px solid var(--border-subtle);
    padding: 0.1rem 0.3rem;
    border-radius: 4px;
    color: var(--text-secondary);
}

.ugyfel-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ugyfel-sor form { display: block; }

button.ugyfel-gomb {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0;
    padding: 0.85rem 1rem;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 400;
    text-align: left;
    color: var(--text-primary);
    transition: border-color 0.12s ease, background 0.12s ease;
}
button.ugyfel-gomb:hover {
    border-color: var(--accent);
    background: var(--bg-card-hover);
    transform: none;
}

.ugyfel-nev { font-weight: 500; }
.ugyfel-adoszam { color: var(--text-muted); font-size: 0.85rem; font-variant-numeric: tabular-nums; }

.talalat-info { color: var(--text-muted); font-size: 0.85rem; margin-top: 0.75rem; }

.ures-allapot {
    color: var(--text-secondary);
    background: var(--bg-card);
    border: 1px dashed var(--border);
    border-radius: var(--radius);
    padding: 1.25rem;
    line-height: 1.5;
}

.ugyfel-adoszam-cimke {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    margin-top: -0.5rem;
}

.cim-sor {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--border);
}
.cim-sor h1 {
    flex: 1 1 320px;
    min-width: 0;
    margin: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.cim-sor-gombok {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    flex-shrink: 0;
}
/* Egyforma szélességű gombok (a legszélesebbhez igazodva). */
.cim-sor-gombok-egyforma {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
}
.cim-sor-gombok-egyforma .uj-ugyfel-gomb { justify-content: center; }
@media (max-width: 760px) {
    .cim-sor-gombok-egyforma { grid-auto-flow: row; grid-template-columns: 1fr 1fr; }
}

.uj-ugyfel-gomb,
button.uj-ugyfel-gomb {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0;
    padding: 0.55rem 1rem;
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, var(--accent-hover) 0%, var(--accent-dark) 100%);
    box-shadow: 0 0 0 1px rgba(32, 200, 117, 0.08), 0 4px 14px rgba(15, 160, 90, 0.18);
    color: #ffffff;
    font-family: inherit;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: transform 0.12s ease, background 0.12s ease;
}
.uj-ugyfel-gomb:hover,
button.uj-ugyfel-gomb:hover {
    background: linear-gradient(180deg, var(--accent) 0%, var(--accent-hover) 100%);
    transform: translateY(-1px);
}

.gomb-outline {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1rem;
    border: 1px solid var(--accent);
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--accent);
    text-decoration: none;
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.12s ease;
}
.gomb-outline:hover { background: var(--accent-soft); }

.sikeres-uzenet {
    background: var(--accent-soft);
    color: var(--accent);
    padding: 0.6rem 0.8rem;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    margin-top: 0;
}

.hiba-lista {
    background: var(--danger-bg);
    color: var(--danger);
    padding: 0.8rem 1.2rem;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    margin: 0 0 1rem;
}

.uj-ugyfel-form fieldset {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem 1.25rem 1.25rem;
    margin: 0 0 1.25rem;
}

.uj-ugyfel-form legend {
    padding: 0 0.4rem;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--text-primary);
}

.fieldset-info {
    color: var(--text-muted);
    font-size: 0.82rem;
    line-height: 1.5;
    margin-top: 0;
}

.info-reszletek { margin-top: 0.75rem; }
.info-reszletek .fieldset-info { margin-top: 0.5rem; }
.info-ikon-gomb {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    border: 1px solid var(--border);
    color: var(--text-muted);
    cursor: pointer;
    list-style: none;
}
.info-ikon-gomb::-webkit-details-marker { display: none; }
.info-ikon-gomb:hover { border-color: var(--accent); color: var(--accent); }
.info-reszletek[open] .info-ikon-gomb { border-color: var(--accent); color: var(--accent); }

.nav-teszt-doboz {
    margin-top: 1.5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.1rem 1.35rem 1.35rem;
    background: var(--bg-card);
}
.nav-teszt-doboz h2 {
    font-size: 1.05rem;
    margin: 0 0 0.5rem;
}

.doboz-cimsor {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-bottom: 0.6rem;
}
.doboz-cimsor h2 { margin: 0; }

.doboz-ikon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: var(--accent-soft);
    color: var(--accent);
    flex-shrink: 0;
}

.nav-kapcsolat-cimsor {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-bottom: 0.6rem;
}
.nav-kapcsolat-cimsor h2 { margin: 0; }

.nav-kapcsolat-jelzo {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--accent-soft);
    color: var(--accent);
    border: 1px solid var(--accent-ring);
    border-radius: var(--radius-pill);
    padding: 0.3rem 0.8rem 0.3rem 0.6rem;
    font-size: 0.85rem;
    font-weight: 700;
}
.nav-kapcsolat-jelzo svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

.nav-teszt-form {
    flex-direction: row;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}
.nav-teszt-form label {
    margin-top: 0;
    font-size: 0.9rem;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.nav-teszt-form button[type="submit"] { margin-top: 0; }

.tabla-wrapper {
    overflow-x: auto;
    margin-top: 1rem;
    border-radius: var(--radius);
}
.tabla-wrapper .nav-statusz-tabla { margin-top: 0; }

.nav-statusz-tabla {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
    font-size: 0.88rem;
}
.nav-statusz-tabla thead { background: var(--tint-subtle); }
.nav-statusz-tabla th,
.nav-statusz-tabla td {
    text-align: left;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--border-subtle);
    white-space: nowrap;
}
.nav-statusz-tabla th {
    color: var(--text-secondary);
    font-weight: 600;
    font-size: 0.8rem;
}
.nav-statusz-tabla td { color: var(--text-primary); }
.nav-statusz-tabla tbody tr:hover { background: var(--tint-hover); }
.nav-statusz-tabla tbody tr:last-child td { border-bottom: none; }
.nav-statusz-tabla th.oszlop-szam,
.nav-statusz-tabla td.oszlop-szam { text-align: right; }

.nav-statusz-tabla tfoot td {
    font-weight: 700;
    color: var(--text-primary);
    background: var(--accent-soft);
    border-top: 2px solid var(--accent-ring);
    border-bottom: none;
}
.osszesito-sor td:first-child { color: var(--text-secondary); font-weight: 600; }

.kattinthato-sor { cursor: pointer; }

.nav-fajlok-form {
    flex-direction: row;
    align-items: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}
.nav-fajlok-form label {
    margin-top: 0;
    font-size: 0.85rem;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.nav-fajlok-form input[type="text"],
.nav-fajlok-form input[type="number"] {
    width: 9rem;
}

.nav-fajlok-form select { min-width: 11rem; }
.nav-fajlok-form label:has(input[type="radio"]) {
    flex-direction: row;
    align-items: center;
    gap: 0.35rem;
    color: var(--text-secondary);
}
.nav-fajlok-form button[type="submit"] { margin-top: 0; }

.szuro-form {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.85rem;
    margin-top: 0.75rem;
}
.szuro-mezo {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.szuro-mezo label { margin-top: 0; font-size: 0.85rem; color: var(--text-muted); }
.szuro-mezo input[type="date"] { width: 10rem; }
.datum-gyorsiras { width: 10rem; }
.szuro-mezo-szeles select { width: 14rem; }
.szuro-gombok {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}
.szuro-gombok button[type="submit"] { margin-top: 0; }

.nav-teszt-doboz h3 {
    font-size: 0.95rem;
    margin: 1.25rem 0 0.5rem;
    color: var(--text-primary);
}

.gyujto-cimke {
    display: inline-block;
    background: var(--tint-subtle);
    border: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    border-radius: 4px;
    padding: 0.1rem 0.4rem;
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
}

.gyujto-afa-form { gap: 0; }

.gyujto-lista {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    margin-top: 0.75rem;
}

.gyujto-sor {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid var(--border-subtle);
    background: var(--bg-card);
}
.gyujto-sor:last-child { border-bottom: none; }
.gyujto-sor-inaktiv { background: var(--tint-subtle); }
.gyujto-sor-inaktiv .gyujto-sor-betu { color: var(--text-muted); }

.gyujto-sor-fejlec {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-width: 0;
}

.gyujto-sor-betu {
    font-weight: 600;
    color: var(--text-primary);
    min-width: 5.5rem;
}

.gyujto-sor-info {
    color: var(--text-muted);
    font-size: 0.82rem;
    white-space: nowrap;
}
.gyujto-sor-info-jovahagyva { color: var(--accent); }

.gyujto-cimke-zold {
    background: var(--accent-soft);
    border: 1px solid var(--accent-ring);
    color: var(--accent);
}

.gyujto-sor-input {
    flex-shrink: 0;
    width: 8rem;
}
.gyujto-sor-inaktiv .gyujto-sor-input { opacity: 0.6; }

.gyujto-afa-mentes-sor {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
}
.gyujto-afa-mentes-sor label {
    margin-top: 0;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9rem;
    color: var(--text-secondary);
}
.gyujto-afa-mentes-sor button[type="submit"] { margin-top: 0; }

.penztargep-nev-nezet { font-weight: 500; color: var(--text-primary); }

.penztargep-nev-input {
    width: 12rem;
    height: 2.1rem;
    padding: 0 0.6rem;
    line-height: 2.1rem;
}
button.penztargep-nev-mentes {
    height: 2.1rem;
    margin-top: 0;
    padding: 0 0.8rem;
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, var(--accent-hover) 0%, var(--accent-dark) 100%);
    box-shadow: none;
    color: #fff;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}
button.penztargep-nev-mentes:hover { background: linear-gradient(180deg, var(--accent) 0%, var(--accent-hover) 100%); }

.penztargep-szerkesztes-gomb {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-card);
    color: var(--text-muted);
    cursor: pointer;
    transition: border-color 0.12s ease, color 0.12s ease, background 0.12s ease;
}
.penztargep-szerkesztes-gomb:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-soft);
}

.penztargep-ap-szam {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    font-size: 0.9rem;
    white-space: nowrap;
}

.nav-fajlok-eredmeny-doboz {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.75rem 1rem;
    margin-top: 0.75rem;
}
.nav-fajlok-eredmeny-cim {
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 0.4rem;
}
.nav-fajlok-eredmeny-doboz .sikeres-uzenet,
.nav-fajlok-eredmeny-doboz .hibauzenet,
.nav-fajlok-eredmeny-doboz .fieldset-info {
    margin-top: 0;
}

.modal-hatterfeny {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(3, 8, 16, 0.65);
    align-items: center;
    justify-content: center;
    padding: 1rem;
    z-index: 100;
}
.modal-hatterfeny.lathato { display: flex; }
.modal-doboz {
    width: 100%;
    max-width: 420px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.5rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
}
.modal-doboz h3 {
    margin: 0 0 0.75rem;
    color: var(--text-primary);
    font-size: 1.1rem;
    font-weight: 700;
}
.modal-doboz p {
    margin: 0 0 1.5rem;
    color: var(--text-secondary);
    font-size: 0.9rem;
    line-height: 1.55;
}
.modal-gombsor {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.modal-gombsor button { margin-top: 0; }

.modal-doboz-szeles { max-width: 640px; }

.bk-rogzites-lista {
    max-height: 50vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    padding-right: 0.25rem;
}
.bk-rogzites-sor {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.bk-rogzites-cimke {
    color: var(--text-secondary);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
input.bk-rogzites-input {
    width: 8rem;
    flex-shrink: 0;
}
/* Rögzítés rács: minden oszlop egy táblában, fix fejléccel; a doboz az oszlopok számához igazodik. */
.modal-doboz-racs { max-width: min(96vw, 64rem); width: max-content; min-width: min(96vw, 40rem); }
.bk-racs-wrapper { max-height: 55vh; overflow: auto; margin-bottom: 1.25rem; }
.bk-racs { border-collapse: separate; border-spacing: 0; width: 100%; }
.bk-racs th { position: sticky; top: 0; z-index: 1; background: var(--bg-secondary); text-align: left; font-size: 0.8rem;
              font-weight: 600; color: var(--text-secondary); padding: 0.4rem 0.5rem; white-space: nowrap; border-bottom: 1px solid var(--border); }
.bk-racs td { padding: 0.2rem 0.4rem; }
.bk-racs td[hidden], .bk-racs th[hidden] { display: none; }
.bk-racs td.bk-rogzites-cimke { overflow: visible; padding-right: 0.8rem; }
.bk-racs input.bk-rogzites-input { width: 8.5rem; text-align: right; }

a { color: var(--accent); }
a:focus-visible,
button:focus-visible,
.ugyfel-gomb:focus-visible,
.penztargep-szerkesztes-gomb:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

@media (max-width: 640px) {
    .cim-sor h1 { flex-basis: 100%; }
    .tartalom { padding: 1.5rem 1rem 3rem; }
    .topbar { padding: 0.75rem 1rem; }
}

/* ---------- Számla részletező oldal (szamla_reszlet.html) ---------- */

.szamla-reszlet-racs {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
    margin-top: 1rem;
}
.szamla-reszlet-adatok,
.szamla-kep-hely {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.1rem 1.25rem;
}
.szamla-mezo-sor {
    display: grid;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}
.szamla-mezo-sor-fej { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
/* A dátum- és összegmezők nem vágódnak le: ha nem fér ki egy sorba, a mező új sorba törik (min. ~egy dátum szélessége). */
.szamla-mezo-sor-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 7.6rem), 1fr)); }
.szamla-mezo-sor-5 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 7.6rem), 1fr)); }
.szamla-mezo {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}
.szamla-mezo-cimke {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
}
.szamla-mezo-ertek {
    padding: 0.5rem 0.7rem;
    background: var(--bg-input);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.szamla-mezo-kiemelt { font-weight: 600; }
.szamla-mezo-szam { text-align: right; font-variant-numeric: tabular-nums; }
.szamla-mezo-megjegyzes {
    font-size: 0.78rem;
    color: var(--text-muted);
}
/* Belföldi bizonylat: adószám + Lekérdezés gomb egy sorban. */
.bb-adoszam-sor { display: flex; gap: 0.5rem; align-items: center; }
.bb-adoszam-sor input { flex: 1; min-width: 0; }
.bb-adoszam-sor button { flex-shrink: 0; }

/* Számlalista: dátummező-választó a szűrő címében, "kivettek is" pipa az Excel gomb mellett. */
.datum-mezo-valaszto { width: auto; min-width: 0; padding: 0.1rem 0.35rem; margin: 0 0.15rem; font: inherit; }
.excel-kivettek { display: inline-flex; align-items: center; gap: 0.3rem; margin: 0; font-size: 0.82rem;
    color: var(--text-secondary); white-space: nowrap; cursor: pointer; }
.excel-kivettek input { margin: 0; }

/* Módosító / sztornó számla hivatkozása az eredetire (és fordítva) — adatlapon, jogcímezésben. */
.szamla-hivatkozas { display: block; font-size: 0.78rem; color: var(--text-secondary); white-space: normal; }
.szamla-hivatkozas a { font-weight: 600; }
.szamla-tetelek { margin-top: 1.25rem; }
.szamla-tetelek-fejlec {
    display: inline-block;
    padding: 0.3rem 0.8rem;
    border: 1px solid var(--border);
    border-bottom: none;
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--tint-subtle);
}
.szamla-tetelek .tabla-wrapper { margin-top: 0; border: 1px solid var(--border); }
.szamla-tetel-megnevezes { white-space: normal; min-width: 9rem; }
.szamla-tetelek .nav-statusz-tabla th, .szamla-tetelek .nav-statusz-tabla td { white-space: normal; }
.szamla-tetelek .nav-statusz-tabla td.oszlop-szam { white-space: nowrap; }
.szamla-osszesito {
    margin: 1rem 0 0 auto;
    max-width: 22rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--tint-subtle);
    font-variant-numeric: tabular-nums;
}
.szamla-osszesito-sor {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.2rem 0;
    font-size: 0.88rem;
    color: var(--text-secondary);
}
.szamla-osszesito-bontas { font-size: 0.82rem; color: var(--text-muted); }
.szamla-osszesito-vegosszeg {
    margin-top: 0.35rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border);
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
}
.szamla-kep-hely {
    position: sticky;
    top: 1rem;
    min-height: 32rem;
    display: flex;
}
.szamla-kep-hely-belso {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    border: 2px dashed var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    text-align: center;
    padding: 1rem;
}
.szamla-kep-hely-belso p { margin: 0; }

@media (max-width: 1100px) {
    .szamla-reszlet-racs { grid-template-columns: minmax(0, 1fr); }
    .szamla-kep-hely { position: static; min-height: 12rem; }
    .szamla-mezo-sor-fej { grid-template-columns: 1fr; }
}
/* Az oldalsáv (272 px) mellett kevés a hely (pl. nagyított vagy kisebb ablak): a kép az adatok alá kerül. Elrejtett
   oldalsávnál a fenti 1100 px-es határ él. */
@media (min-width: 1025px) and (max-width: 1480px) {
    html:not(.oldalsav-csukva) .elrendezes .szamla-reszlet-racs { grid-template-columns: minmax(0, 1fr); }
    html:not(.oldalsav-csukva) .elrendezes .szamla-kep-hely { position: static; min-height: 12rem; }
}
.szamla-kodolas-figyelmeztetes {
    margin: 0 0 0.75rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--warning);
    border-radius: var(--radius-sm);
    color: var(--warning);
    font-size: 0.82rem;
}
/* ---------- Számlalista eszköztár (szamla_lista.html) ---------- */

.szamla-eszkoztar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1.25rem 2rem;
    margin: 1rem 0 1.25rem;
    padding: 1rem 1.25rem;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.szamla-eszkoz {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
}
.szamla-eszkoz-cim {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
}
.szamla-eszkoz-sor {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}
.szamla-eszkoz-sor input.datum-gyorsiras { width: 11.5rem; margin: 0; }
.szamla-eszkoz-sor button,
.szamla-eszkoz-sor .uj-ugyfel-gomb { margin-top: 0; }
.szamla-eszkoz-sor button.gomb-outline {
    background: transparent;
    box-shadow: none;
    color: var(--accent);
    border-color: var(--accent);
}
.szamla-eszkoz-sor button.gomb-outline:hover { background: var(--accent-soft); }
.szamla-eszkoz-kotojel { color: var(--text-muted); }
.szamla-eszkoz-torles { font-size: 0.85rem; color: var(--text-muted); }
.szamla-eszkoz-sugo { font-size: 0.78rem; color: var(--text-muted); }

.szamla-kereso-sor {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.75rem;
}
.szamla-kereso-doboz {
    position: relative;
    flex: 1;
    margin: 0;
    color: var(--text-muted);
}
.szamla-kereso-doboz svg {
    position: absolute;
    left: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}
input[type="search"].szamla-kereso {
    width: 100%;
    margin: 0;
    padding-left: 2.4rem;
}
.szamla-talalat {
    flex-shrink: 0;
    font-size: 0.85rem;
    color: var(--text-muted);
}
.szamla-kereso-sor { flex-wrap: wrap; }
.szamla-kereso-doboz { min-width: 0; }
.szamla-kereso-gomb { flex-shrink: 0; margin: 0; }
/* Telefonon / táblán: a keresőmező a teljes sort kapja (az összesítő alá kerül), és elég nagy a gépeléshez
   (16 px alatt az iPhone ráközelít a mezőre). */
@media (max-width: 760px) {
    .szamla-kereso-sor { gap: 0.5rem; }
    .szamla-kereso-doboz { flex: 1 1 0; }
    input[type="search"].szamla-kereso { font-size: 16px; min-height: 2.8rem; }
    .szamla-talalat { flex: 1 1 100%; order: 3; }
}

/* ---------- Nyugta adatok (nyugtak.html) ---------- */
.nyugta-afa-bontas { white-space: normal; }
.nyugta-afa-bontas span { display: inline-block; margin-right: 0.8rem; }
tr.nyugta-ervenytelen td { color: var(--text-muted); text-decoration: line-through; }
h3.alcim { margin: 1rem 0 0.25rem; font-size: 0.95rem; color: var(--text-secondary); }
.alcim-megjegyzes { font-weight: 400; color: var(--text-muted); font-size: 0.85rem; }

/* NAV kapcsolat: a technikai felhasználó jogosultságai (számla / pénztárgép / nyugta) */
.jog-ikonok {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-left: auto;
}
.jog-ikon {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.22rem 0.6rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: help;
}
.jog-igen { color: var(--accent); background: var(--accent-soft); border-color: var(--accent-ring); }
.jog-nem { color: var(--danger); background: var(--danger-bg); border-color: rgba(239, 91, 104, 0.35); }
.jog-ismeretlen { color: var(--text-muted); background: var(--tint-subtle); }

/* Ügyfélválasztó lista: csak ikonok, az adószám előtt. */
.ugyfel-jobb { display: inline-flex; align-items: center; gap: 0.9rem; flex-shrink: 0; margin-left: 1rem; }
.jog-ikonok-tomor { margin-left: 0; gap: 0.3rem; }
.jog-ikonok-tomor .jog-ikon { padding: 0.25rem; }
.ugyfel-jobb .ugyfel-adoszam { min-width: 7.5rem; text-align: right; }
.cim-sor-gombok { align-items: center; }
.cim-sor-gombok form { margin: 0; }
.cim-sor-gombok button.gomb-outline {
    margin-top: 0;
    background: transparent;
    box-shadow: none;
    color: var(--accent);
    border-color: var(--accent);
    font-size: 0.9rem;
}
.cim-sor-gombok button.gomb-outline:hover { background: var(--accent-soft); transform: none; }
.cim-sor-gombok button.gomb-outline:disabled { opacity: 0.6; cursor: progress; }
.nincs-nav-kapcsolat { color: var(--text-muted); font-size: 0.75rem; font-style: italic; }
.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---------- Új ügyfél a CRM-ből (ugyfel_uj_crm.html) ---------- */

.crm-valaszto-sugo { color: var(--text-secondary); max-width: 60rem; }
.crm-muveletsor {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 0.75rem 0;
}
.crm-osszes { display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer; }
.crm-jelolo-oszlop { width: 2.5rem; text-align: center; }
#crm-tabla tbody tr:not(.crm-sor-inaktiv) { cursor: pointer; }
.crm-sor-inaktiv td { color: var(--text-secondary); }
.crm-halvany { color: var(--text-secondary); }
.crm-cimke {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-size: 0.75rem;
    border: 1px solid currentColor;
    color: var(--text-secondary);
    white-space: nowrap;
}
.crm-cimke-figyelem { color: #e0a93b; }
.uj-ugyfel-gomb:disabled { opacity: 0.45; cursor: not-allowed; }

/* ---------- Számlaképek (feltöltés, adatlap, párosítás) ---------- */

.link-gomb {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    box-shadow: none;
    color: var(--accent);
    font: inherit;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: underline;
}
button[type="submit"].link-gomb { margin: 0; padding: 0; border: none; background: none; box-shadow: none; color: var(--accent); font-size: 0.85rem; font-weight: 500; }
button[type="submit"].link-gomb:hover { background: none; transform: none; color: var(--accent-hover); }
.link-gomb-veszely, button[type="submit"].link-gomb-veszely { color: var(--danger); }

.szamla-kep-szuro { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; color: var(--text-secondary); cursor: pointer; white-space: nowrap; }
/* Számlakép szerinti szűrés: Mind / Képpel / Kép nélkül */
.kep-valaszto { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.kep-valaszto-elem { position: relative; display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.35rem 0.7rem;
    font-size: 0.85rem; color: var(--text-secondary); cursor: pointer; white-space: nowrap; border-left: 1px solid var(--border); }
.kep-valaszto-elem:first-child { border-left: 0; }
.kep-valaszto-elem input { position: absolute; opacity: 0; pointer-events: none; }
.kep-valaszto-elem:hover { color: var(--text-primary); }
.kep-valaszto-elem.aktiv { background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); font-weight: 600; }
.kep-valaszto-elem:focus-within { outline: 2px solid var(--accent); outline-offset: -2px; }
.kep-valaszto-db { font-size: 0.75rem; opacity: 0.8; font-variant-numeric: tabular-nums; }
/* Kép oszlop: lap-ikon az oldalszámmal; a kép nélküli sor halvány, szaggatott üres lapja */
.nav-statusz-tabla .oszlop-kep { width: 2.6rem; text-align: center; padding-left: 0.4rem; padding-right: 0.4rem; }
.kep-ikon { position: relative; display: inline-flex; vertical-align: middle; line-height: 0; }
.kep-ikon svg { overflow: visible; }
.kep-ikon-lap, .kep-ikon-sarok, .kep-ikon-sorok { fill: none; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.kep-ikon-van { color: var(--accent); }
.kep-ikon-van .kep-ikon-lap { fill: color-mix(in srgb, var(--accent) 22%, transparent); stroke: currentColor; }
.kep-ikon-van .kep-ikon-sarok { stroke: currentColor; }
.kep-ikon-van .kep-ikon-sorok { stroke: currentColor; opacity: 0.7; }
.kep-ikon-van:hover .kep-ikon-lap { fill: color-mix(in srgb, var(--accent) 38%, transparent); }
.kep-ikon-db { position: absolute; right: -0.45rem; bottom: -0.3rem; min-width: 0.95rem; height: 0.95rem; padding: 0 0.2rem;
    border-radius: 999px; background: var(--accent); color: var(--bg-main); font-size: 0.62rem; font-weight: 700;
    line-height: 0.95rem; text-align: center; font-variant-numeric: tabular-nums; }
.kep-ikon-nincs { color: var(--text-secondary); opacity: 0.45; }
.kep-ikon-nincs .kep-ikon-lap { stroke: currentColor; stroke-dasharray: 2.5 2.5; }
/* Rámutatásra: a számla első oldalának előnézete */
.kep-elonezet { position: fixed; z-index: 50; width: 260px; max-height: 360px; padding: 6px; border-radius: 8px;
    background: var(--bg-secondary); border: 1px solid var(--border); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    pointer-events: none; overflow: hidden; }
.kep-elonezet[hidden] { display: none; }
.kep-elonezet img { display: block; width: 100%; height: auto; border-radius: 4px; background: #fff; }

.szamlakep-dobozona {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.8rem 1rem;
    border: 2px dashed var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    text-align: center;
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color 0.12s ease, background 0.12s ease;
}
.szamlakep-dobozona:hover, .szamlakep-dobozona-aktiv { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
.szamlakep-dobozona input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.szamlakep-feltoltes-folyamatban .szamlakep-dobozona { cursor: progress; opacity: 0.75; }
.szamlakep-feltolto { position: relative; }
.szamlakep-feltolto-ures { flex: 1; display: flex; }
.szamlakep-feltolto-ures .szamlakep-dobozona { flex: 1; min-height: 28rem; }
.szamlakep-feltolto-kompakt .szamlakep-dobozona { padding: 0.5rem 1rem; }

/* Az adatlap jobb oldala, ha már vannak képek. */
.szamla-kep-hely-kepekkel { flex-direction: column; gap: 0.9rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
.szamla-kepek { display: flex; flex-direction: column; gap: 1rem; }
.szamla-kep-oldal { margin: 0; }
.szamla-kep-oldal figcaption {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
    font-size: 0.85rem;
}
.szamla-kep-oldal-cim { font-weight: 600; }
.szamla-kep-oldal-gombok { display: inline-flex; align-items: baseline; gap: 0.75rem; font-size: 0.85rem; }
.szamla-kep-oldal-gombok form { margin: 0; }
.szamla-kep-oldal-gombok a { color: var(--accent); }
.szamla-kep-oldal img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: #fff;
}

/* Párosító oldal */
.parosito-racs {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}
.parosito-oldalak, .parosito-szamlak {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem 1.1rem;
}
.parosito-szamlak { position: sticky; top: 1rem; }
.parosito-fejlec { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.75rem; }
.parosito-kijelolt { color: var(--text-secondary); font-size: 0.85rem; }
.parosito-fajl { border-top: 1px solid var(--border); padding: 0.75rem 0; }
.parosito-fajl-fejlec { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.5rem 0.9rem; margin-bottom: 0.6rem; }
.parosito-fajl-nev { font-weight: 600; max-width: 22rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.parosito-fajl-gombok { display: inline-flex; align-items: baseline; gap: 0.9rem; margin-left: auto; font-size: 0.85rem; }
.parosito-fajl-gombok a { color: var(--accent); }
.parosito-javaslat.parosito-idegen { background: rgba(230, 140, 40, 0.16); }
.parosito-javaslat { display: flex; justify-content: space-between; align-items: baseline; gap: 0.8rem; padding: 0.35rem 0.6rem; margin: 0.3rem 0; background: var(--accent-halvany, rgba(80, 140, 255, 0.10)); border-radius: 6px; font-size: 0.88rem; }
.parosito-belyegek { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.parosito-oldal {
    position: relative;
    display: block;
    width: 120px;
    border: 2px solid var(--border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    cursor: pointer;
    user-select: none;
    background: #fff;
    transition: border-color 0.1s ease, box-shadow 0.1s ease;
}
.parosito-oldal img { display: block; width: 100%; height: auto; }
.parosito-oldal input { position: absolute; top: 0.35rem; left: 0.35rem; width: 1.1rem; height: 1.1rem; accent-color: var(--accent); }
.parosito-oldal:hover { border-color: var(--accent-border); }
.parosito-oldal.kijelolve { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-ring); }
.parosito-oldalszam {
    position: absolute;
    right: 0.3rem;
    bottom: 0.3rem;
    padding: 0 0.35rem;
    border-radius: var(--radius-pill);
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
}
.parosito-szamla-tabla { max-height: 55vh; overflow-y: auto; }
#jelolt-szamlak tbody tr { cursor: pointer; }
#jelolt-szamlak th, #jelolt-szamlak td { white-space: normal; padding: 0.4rem 0.5rem; font-size: 0.85rem; vertical-align: top; }
#jelolt-szamlak td.oszlop-szam { white-space: nowrap; }
#jelolt-szamlak td:first-child { width: 1.5rem; }
#jelolt-szamlak tbody tr.kivalasztva td { background: var(--accent-soft); }
#jelolt-szamlak.csak-kep-nelkul tr.van-kep { display: none; }
.parosito-gomb { width: 100%; justify-content: center; margin-top: 0.9rem; }
.parosito-gomb:disabled { opacity: 0.45; cursor: not-allowed; }

@media (max-width: 1000px) {
    .parosito-racs { grid-template-columns: minmax(0, 1fr); }
    .parosito-szamlak { position: static; }
}

/* ---------- Bal oldali menü (oldalsáv) — a CRM oldalsávjának mintájára
   (konyveloiroda_crm/static/css/sidebar.css: ugyanazok a méretek, színek,
   csoportkártya, aktív sor kiemelése). Csak kiválasztott ügyfélnél. ---------- */

.elrendezes {
    display: flex;
    align-items: stretch;
    min-height: calc(100vh - 4.5rem);
}
.elrendezes > .tartalom {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

.oldalsav {
    flex: 0 0 272px;
    width: 272px;
    box-sizing: border-box;
    padding: 1rem 0.85rem 1.5rem;
    background: var(--bg-secondary);
    border-right: 1px solid var(--border);
}
/* A sáv háttere a teljes oldalmagasságon végigfut, a menü maga görgetéskor is a helyén marad. */
.oldalsav-belso {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--border) transparent;
}

.oldalsav-ugyfelvaltas {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    height: 44px;
    margin-bottom: 1.1rem;
    border-radius: 9px;
    border: 1px solid var(--accent-border);
    background: linear-gradient(180deg, var(--accent-hover) 0%, var(--accent-dark) 100%);
    box-shadow: 0 0 0 1px rgba(32, 200, 117, 0.08), 0 4px 14px rgba(15, 160, 90, 0.18);
    color: #fff;
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.12s ease, background 0.12s ease;
}
.oldalsav-ugyfelvaltas:hover {
    background: linear-gradient(180deg, var(--accent) 0%, var(--accent-hover) 100%);
    transform: translateY(-1px);
}

.oldalsav-csoport {
    border-radius: 11px;
    border: 1px solid var(--border);
    background: var(--bg-card);
    overflow: hidden;
}

.oldalsav-csoport-fejlec {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 52px;
    padding: 0.45rem 0.8rem 0.45rem 0.7rem;
    background: var(--accent-soft);
    border-bottom: 1px solid var(--border);
    border-left: 3px solid var(--accent);
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--text-primary, var(--text));
}
.oldalsav-csoport-fejlec .oldalsav-csoport-ikon {
    width: 30px;
    height: 30px;
    color: var(--accent);
}
.oldalsav-csoport-nev {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.35;
}
.oldalsav-csoport-ikon,
.oldalsav-sor-ikon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 8px;
    background: var(--bg-input);
}
.oldalsav-csoport-ikon { width: 34px; height: 34px; color: var(--text-secondary); }
.oldalsav-sor-ikon { width: 30px; height: 30px; color: var(--text-muted); }

.oldalsav-sor {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 54px;
    padding: 0 0.9rem;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    font-size: 0.88rem;
    text-decoration: none;
    transition: background 140ms ease;
}
.oldalsav-sor:last-child { border-bottom: none; }
.oldalsav-sor:hover { background: var(--tint-hover); color: var(--text-primary); }
.oldalsav-sor:hover .oldalsav-sor-ikon { color: var(--text-secondary); }
.oldalsav-sor.aktiv {
    background: linear-gradient(90deg, rgba(16, 185, 129, 0.2), rgba(14, 116, 144, 0.1));
    color: var(--text-primary);
    font-weight: 500;
}
.oldalsav-sor.aktiv::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--accent);
}
.oldalsav-sor.aktiv .oldalsav-sor-ikon { color: var(--accent); }

/* Lenyíló almenü (Számlák → Bejövő / Kimenő) */
.oldalsav-almenu { border-bottom: 1px solid var(--border-subtle); }
.oldalsav-almenu > summary.oldalsav-sor { border-bottom: none; cursor: pointer; list-style: none; user-select: none; }
.oldalsav-almenu > summary::-webkit-details-marker { display: none; }
.oldalsav-almenu > summary::marker { content: ""; }
.oldalsav-nyil { margin-left: auto; color: var(--text-muted); transition: transform 0.15s ease; }
.oldalsav-almenu[open] > summary .oldalsav-nyil { transform: rotate(180deg); }
.oldalsav-sor.aktiv-szulo { color: var(--text-primary); font-weight: 500; }
.oldalsav-sor.aktiv-szulo .oldalsav-sor-ikon { color: var(--accent); }
.oldalsav-alsor {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 0 0.9rem 0 3.45rem;
    border-top: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    font-size: 0.85rem;
    text-decoration: none;
    transition: background 140ms ease;
}
.oldalsav-alsor::before {
    content: "";
    position: absolute;
    left: 1.85rem;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--border);
}
.oldalsav-alsor:hover { background: var(--tint-hover); color: var(--text-primary); }
.oldalsav-alsor.aktiv {
    background: linear-gradient(90deg, rgba(16, 185, 129, 0.2), rgba(14, 116, 144, 0.1));
    color: var(--text-primary);
    font-weight: 500;
    box-shadow: inset 3px 0 0 var(--accent);
}
.oldalsav-alsor.aktiv::before { background: var(--accent); }

/* Menügomb a fejlécben: telefonos / tabletes nézetben kicsúszó panel, széles képernyőn az oldalsáv elrejtése. */
.oldalsav-hatter { display: none; }
.oldalsav-mobil-gomb {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin: 0 0.4rem 0 0;
    padding: 0;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--bg-secondary);
    color: var(--text-primary);
    cursor: pointer;
}
.oldalsav-mobil-gomb:hover { border-color: var(--accent); }
@media (min-width: 1025px) {
    html.oldalsav-csukva .oldalsav { display: none; }
}

@media (max-width: 1024px) {
    .oldalsav {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 300;
        width: min(86vw, 300px);
        max-height: none;
        transform: translateX(-105%);
        transition: transform 0.2s ease;
        box-shadow: 0 0 40px rgba(0, 0, 0, 0.5);
    }
    body.oldalsav-nyitva .oldalsav { transform: none; }
    .oldalsav-hatter { position: fixed; inset: 0; z-index: 250; background: rgba(3, 8, 16, 0.6); }
    body.oldalsav-nyitva .oldalsav-hatter { display: block; }
    body.oldalsav-nyitva { overflow: hidden; }
}

/* ---------- Ügyfél Áttekintés: KPI-k és bevétel/költség grafikon ---------- */

:root {
    --grafikon-penztargep: #20c875;
    --grafikon-nyugta: #38bdf8;
    --grafikon-szamla: #a78bfa;
    --grafikon-koltseg: #f59e0b;
    --grafikon-ber: #fb7185;
}
:root[data-theme="light"] {
    --grafikon-penztargep: #12915a;
    --grafikon-nyugta: #0284c7;
    --grafikon-szamla: #7c3aed;
    --grafikon-koltseg: #d97706;
    --grafikon-ber: #e11d48;
}

.attekintes { margin: 1.25rem 0 2.25rem; }
.kpi-sor {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}
.kpi-kartya, .grafikon-kartya {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.1rem 1.25rem;
}
.kpi-kartya { display: flex; flex-direction: column; gap: 0.3rem; }
.kpi-cim { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-muted); }
.kpi-idoszak { font-size: 0.85rem; color: var(--text-secondary); }
.kpi-ertek { font-size: 1.9rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; margin-top: 0.2rem; }
.kpi-ertek.kpi-fizetendo { color: var(--warning); }
.kpi-ertek.kpi-levonhato { color: var(--accent); }
.kpi-ertek.kpi-halvany { font-size: 1.2rem; color: var(--text-secondary); }
.kpi-alcim { font-size: 0.85rem; color: var(--text-secondary); }
.kpi-bontas { display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem; margin: 0.6rem 0 0; }
.kpi-bontas div { display: flex; flex-direction: column; }
.kpi-bontas dt { font-size: 0.75rem; color: var(--text-muted); }
.kpi-bontas dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.kpi-bontas .kpi-bontas-ebbol dd { font-weight: 500; color: var(--text-secondary); }
.kpi-forrasok { list-style: none; margin: 0.5rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.88rem; color: var(--text-secondary); }
.kpi-forrasok li { display: flex; align-items: center; gap: 0.5rem; }
.kpi-forrasok strong { margin-left: auto; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.kpi-elozo { margin-top: auto; padding-top: 0.7rem; border-top: 1px solid var(--border-subtle); font-size: 0.82rem; color: var(--text-secondary); }

.grafikon-fejlec { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem 1rem; margin-bottom: 0.6rem; }
.jelmagyarazat { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; font-size: 0.82rem; color: var(--text-secondary); }
.jelmagyarazat li { display: inline-flex; align-items: center; gap: 0.4rem; }
.jelmagyarazat-pont { display: inline-block; width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }
.jelmagyarazat-pont.grafikon-penztargep, .grafikon .grafikon-penztargep { background: var(--grafikon-penztargep); fill: var(--grafikon-penztargep); }
.jelmagyarazat-pont.grafikon-nyugta, .grafikon .grafikon-nyugta { background: var(--grafikon-nyugta); fill: var(--grafikon-nyugta); }
.jelmagyarazat-pont.grafikon-szamla, .grafikon .grafikon-szamla { background: var(--grafikon-szamla); fill: var(--grafikon-szamla); }
.jelmagyarazat-pont.grafikon-koltseg, .grafikon .grafikon-koltseg { background: var(--grafikon-koltseg); fill: var(--grafikon-koltseg); }
.jelmagyarazat-pont.grafikon-ber, .grafikon .grafikon-ber { background: var(--grafikon-ber); fill: var(--grafikon-ber); }
.grafikon { display: block; width: 100%; height: auto; }
.grafikon rect:hover { opacity: 0.8; }
.grafikon-racs { stroke: var(--border-subtle); stroke-width: 1; }
.grafikon-alapvonal { stroke: var(--border); stroke-width: 1; }
.grafikon-tengely { fill: var(--text-muted); font-size: 11px; font-family: var(--font-sans); }

.attekintes-megjegyzes { margin-top: 0.75rem; font-size: 0.8rem; color: var(--text-muted); }
.attekintes-megjegyzes p { margin: 0 0 0.4rem; }
.attekintes-figyelmeztetes { margin: 0; padding-left: 1.1rem; color: var(--warning); }
.attekintes-figyelmeztetes li { margin: 0.15rem 0; }

/* Áttekintés — időszakszűrő: halvány, pill-szerű szegmensgomb a KPI-k fölött */
.attekintes-szuro { display: flex; justify-content: flex-end; margin-bottom: 0.7rem; }
.szegmens {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.15rem;
    padding: 0.2rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--bg-card);
}
.szegmens-gomb {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.8rem;
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    font-size: 0.8rem;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease;
}
.szegmens-gomb:hover { color: var(--text-primary); background: var(--tint-hover); }
.szegmens-gomb.aktiv { color: var(--accent); background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent-ring); }
.szegmens-egyeni { display: inline-flex; flex-direction: row; align-items: center; }
.szegmens-egyeni > summary { list-style: none; }
.szegmens-egyeni > summary::-webkit-details-marker { display: none; }
.szegmens-egyeni > summary::marker { content: ""; }
.szegmens-urlap { display: inline-flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 0.3rem; margin: 0 0.2rem 0 0.35rem; color: var(--text-muted); }
.szegmens-urlap input[type="text"] {
    display: inline-block;
    flex: none;
    width: 7.2rem;
    height: 1.85rem;
    margin: 0;
    padding: 0 0.55rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--bg-input);
    color: var(--text-primary);
    font-size: 0.8rem;
}
.szegmens-urlap button.szegmens-mehet {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    margin: 0;
    padding: 0;
    border-radius: 50%;
}

/* A kiválasztott hónapok halvány sávja a grafikonon */
.grafikon .grafikon-kiemeles { fill: var(--accent-soft); }

/* Kattintható hónapok: az egész hónap-sáv kattintható, a kijelölt hónapok kiemelve, a többi halványabb */
.grafikon-honap { cursor: pointer; outline: none; }
.grafikon .grafikon-honap-sav { fill: transparent; pointer-events: all; transition: fill 0.12s ease; }
.grafikon-honap:hover .grafikon-honap-sav { fill: var(--tint-hover); }
.grafikon-honap:focus-visible .grafikon-honap-sav { stroke: var(--accent-ring); stroke-width: 1.5; }
.grafikon-honap.valasztva .grafikon-honap-sav { fill: var(--accent-soft); stroke: var(--accent-ring); stroke-width: 1; }
.grafikon-honap.valasztva .grafikon-tengely { fill: var(--accent); font-weight: 600; }
.van-kijeloles .grafikon .grafikon-kiemeles { display: none; }
.van-kijeloles .grafikon-honap:not(.valasztva) rect:not(.grafikon-honap-sav) { opacity: 0.4; }
.grafikon-honap:hover rect:not(.grafikon-honap-sav) { opacity: 1; }
.grafikon-kijeloles { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem; min-height: 1.9rem;
    margin-top: 0.4rem; font-size: 0.82rem; color: var(--text-secondary); }
.grafikon-kijeloles-tipp { color: var(--text-muted); }
.grafikon-kijeloles-cimke strong { color: var(--accent); }
button.grafikon-kijeloles-torles {
    margin: 0; padding: 0.25rem 0.7rem; border-radius: var(--radius-pill); border: 1px solid var(--border);
    background: transparent; color: var(--text-secondary); font-size: 0.8rem; cursor: pointer; box-shadow: none;
}
button.grafikon-kijeloles-torles:hover { color: var(--text-primary); background: var(--tint-hover); }
.attekintes-tolt .kpi-sor, .attekintes-tolt .reszesedes-sor { opacity: 0.55; transition: opacity 0.15s ease; }

/* Top 3 vevő / szállító részesedése (gyűrűdiagram + táblázat) */
:root {
    --torta-1: #a78bfa;
    --torta-2: #38bdf8;
    --torta-3: #f59e0b;
    --torta-4: #f472b6;
    --torta-5: #2dd4bf;
    --torta-nincs: #334155;
    --torta-egyeb: #64748b;
    --torta-ptg: #20c875;
}
:root[data-theme="light"] {
    --torta-1: #7c3aed;
    --torta-2: #0284c7;
    --torta-3: #d97706;
    --torta-4: #db2777;
    --torta-5: #0d9488;
    --torta-nincs: #cbd5e1;
    --torta-egyeb: #94a3b8;
    --torta-ptg: #12915a;
}
.reszesedes-sor { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 1rem; margin-top: 1rem; }
/* A gyűrűk a kártya tetejéhez igazítva: a három kártyán egy vonalban, a táblázat hosszától függetlenül */
.reszesedes-tartalom { display: flex; align-items: flex-start; gap: 1.1rem; flex-wrap: wrap; justify-content: center; }
.torta { width: 136px; height: 136px; flex: none; margin-top: 0.15rem; }
.torta-hatter { fill: none; stroke: var(--border-subtle); stroke-width: 18; }
.torta-szelet { fill: none; stroke-width: 18; transition: stroke-width 0.12s ease, opacity 0.12s ease; cursor: default; }
.torta-szelet:hover, .torta-szelet.kiemelt { stroke-width: 23; }
.reszesedes-kartya.van-kiemelt .torta-szelet:not(.kiemelt) { opacity: 0.35; }
.reszesedes-tabla tbody tr { transition: background 0.12s ease, opacity 0.12s ease; }
.reszesedes-tabla tbody tr.kiemelt { background: var(--tint-hover); }
.reszesedes-kartya.van-kiemelt .reszesedes-tabla tbody tr:not(.kiemelt) { opacity: 0.55; }

/* Keresztszűrés: a szelet / sor kattintható; a kiválasztott kiemelve, a többi halványan (Power BI-szerűen) */
.torta-szelet.szurheto, .reszesedes-tabla tbody tr.szurheto { cursor: pointer; }
.reszesedes-kartya.szurt .torta-szelet:not(.aktiv) { opacity: 0.25; }
.reszesedes-kartya.szurt .torta-szelet.aktiv { stroke-width: 23; }
.reszesedes-kartya.szurt .reszesedes-tabla tbody tr:not(.aktiv) { opacity: 0.45; }
.reszesedes-tabla tbody tr.aktiv { background: var(--accent-soft); }
.reszesedes-tabla tbody tr.aktiv td:first-child { box-shadow: inset 2px 0 0 var(--accent); }
.reszesedes-kartya.szurt.van-kiemelt .torta-szelet.kiemelt, .reszesedes-kartya.szurt.van-kiemelt tr.kiemelt { opacity: 1; }
.szuro-cimke {
    display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.15rem 0.3rem 0.15rem 0.65rem;
    border: 1px solid var(--accent-ring); border-radius: var(--radius-pill); background: var(--accent-soft);
    color: var(--text-secondary); font-size: 0.8rem; max-width: 100%;
}
.szuro-cimke strong { color: var(--accent); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 22rem; }
button.szuro-cimke-torles {
    display: inline-flex; align-items: center; justify-content: center; width: 1.3rem; height: 1.3rem; margin: 0; padding: 0;
    border: 0; border-radius: 50%; background: transparent; color: var(--text-secondary); font-size: 0.75rem;
    cursor: pointer; box-shadow: none;
}
button.szuro-cimke-torles:hover { color: var(--text-primary); background: var(--tint-hover); }
.torta-osszeg { fill: var(--text-primary); font-size: 15px; font-weight: 700; font-family: var(--font-sans); }
.torta-osszeg-cimke { fill: var(--text-muted); font-size: 8px; font-family: var(--font-sans); }
.torta-1 { stroke: var(--torta-1); } .jelmagyarazat-pont.torta-1 { background: var(--torta-1); }
.torta-2 { stroke: var(--torta-2); } .jelmagyarazat-pont.torta-2 { background: var(--torta-2); }
.torta-3 { stroke: var(--torta-3); } .jelmagyarazat-pont.torta-3 { background: var(--torta-3); }
.torta-4 { stroke: var(--torta-4); } .jelmagyarazat-pont.torta-4 { background: var(--torta-4); }
.torta-5 { stroke: var(--torta-5); } .jelmagyarazat-pont.torta-5 { background: var(--torta-5); }
.torta-ber { stroke: var(--grafikon-ber); } .jelmagyarazat-pont.torta-ber { background: var(--grafikon-ber); }
.torta-nincs { stroke: var(--torta-nincs); } .jelmagyarazat-pont.torta-nincs { background: var(--torta-nincs); }
.torta-egyeb { stroke: var(--torta-egyeb); } .jelmagyarazat-pont.torta-egyeb { background: var(--torta-egyeb); }
.torta-ptg { stroke: var(--torta-ptg); } .jelmagyarazat-pont.torta-ptg { background: var(--torta-ptg); }
.reszesedes-tabla { flex: 1 1 220px; min-width: 0; border-collapse: collapse; font-size: 0.86rem; }
.reszesedes-tabla td { padding: 0.3rem 0.4rem; border-bottom: 1px solid var(--border-subtle); vertical-align: middle; }
.reszesedes-tabla tfoot td { border-bottom: 0; font-weight: 600; color: var(--text-secondary); }
.reszesedes-nev { width: 100%; }
.reszesedes-nev > div { display: flex; align-items: center; gap: 0.5rem; }
.reszesedes-nev span:last-child { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow-wrap: anywhere; line-height: 1.25; }
.reszesedes-osszeg, .reszesedes-szazalek { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.reszesedes-szazalek { color: var(--text-secondary); width: 3.5rem; }

/* Ügyfél fejléc: adózási mód és ÁFA-helyzet címkék */
.ugyfel-fejlec-adatok { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; }
.fejlec-cimke {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.6rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--bg-card);
    color: var(--text-secondary);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: help;
}

/* Felső sáv: adózási mód / ÁFA-helyzet az aktív ügyfél neve mellett */
.topbar-cimke {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.7rem;
    border: 1px solid var(--accent-ring);
    border-radius: var(--radius-pill);
    background: var(--accent-soft);
    color: var(--accent);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
    cursor: help;
}

/* Verziószám a menüsáv alján (a CRM .crm-sidebar-verzio mintájára) */
.oldalsav-verzio {
    margin-top: 0.5rem;
    padding: 0.6rem 0.5rem 0.2rem;
    text-align: center;
    font-size: 0.68rem;
    letter-spacing: 0.02em;
    color: var(--text-muted);
    opacity: 0.6;
}

/* Alapadatok: önálló menüpont-kártya az Ügyfélváltás alatt, és az oldal táblázata */
.oldalsav-csoport-onallo { margin-bottom: 1.1rem; }
.alapadatok-tabla .alapadatok-megnevezes { font-weight: 500; text-align: left; white-space: normal; min-width: 16rem; }
.alapadatok-tabla .alapadatok-megnevezes .szamla-mezo-megjegyzes { display: block; font-weight: 400; margin-top: 0.15rem; }
.alapadatok-mezo { width: 9.5rem; text-align: right; font-variant-numeric: tabular-nums; }
.alapadatok-aktualis-ev { background: var(--accent-soft); }
.alapadatok-ev-jelzo { font-size: 0.68rem; font-weight: 600; color: var(--accent); text-transform: uppercase; letter-spacing: 0.04em; }
.alapadatok-urlap .uj-ugyfel-gomb { margin-top: 1rem; }
.alapadatok-szamitott { color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.alapadatok-szamitott-jelzo { margin-left: 0.3rem; padding: 0.02rem 0.45rem; border-radius: var(--radius-pill); border: 1px solid var(--border); color: var(--text-muted); font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }

/* Keretfigyelő: éves értékhatárok sávjai (ÁFA-mentesség, KATA, átalányadó) */
.keretek { display: flex; flex-direction: column; gap: 0.9rem; margin-top: 0.8rem; }
.keret { display: flex; flex-direction: column; gap: 0.3rem; }
.keret-fejlec { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.keret-cim { font-weight: 600; font-size: 0.9rem; cursor: help; }
.keret-szazalek { font-weight: 700; font-variant-numeric: tabular-nums; }
.keret-sav { height: 8px; border-radius: var(--radius-pill); background: var(--tint-hover); overflow: hidden; }
.keret-sav span { display: block; height: 100%; border-radius: var(--radius-pill); background: var(--accent); }
.keret-figyelem .keret-sav span { background: var(--warning); }
.keret-figyelem .keret-szazalek { color: var(--warning); }
.keret-tullepve .keret-sav span { background: var(--danger); }
.keret-tullepve .keret-szazalek { color: var(--danger); }
.keret-sav_felett .keret-sav span { background: var(--grafikon-nyugta); }
.keret-sav_felett .keret-szazalek { color: var(--grafikon-nyugta); }
.keret-szamok { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.2rem 1rem; font-size: 0.82rem; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.keret-megjegyzes { font-size: 0.76rem; color: var(--text-muted); }
.keret-hiany { font-size: 0.82rem; color: var(--warning); }
.keret-labjegyzet { font-size: 0.72rem; color: var(--text-muted); border-top: 1px solid var(--border-subtle); padding-top: 0.5rem; }

/* Átalányadó-kör javaslatának indoklása (Adatok szerkesztése) */
.atalany-indoklas { margin-top: 0.7rem; padding: 0.7rem 0.9rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--tint-subtle); font-size: 0.82rem; color: var(--text-secondary); }
.atalany-indoklas ul { margin: 0.35rem 0 0; padding-left: 1.1rem; }
.atalany-indoklas li { margin: 0.2rem 0; }
.atalany-indoklas-bizonytalan { border-color: rgba(244, 183, 64, 0.5); }

/* ÁFA-csoport jelzés a partner mellett */
.afa-csoport-cimke {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.5rem;
    border: 1px solid var(--grafikon-szamla);
    border-radius: var(--radius-pill);
    color: var(--grafikon-szamla);
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
    vertical-align: 1px;
    cursor: help;
}

/* ---------- Vámhatározatok (eÁFA) ---------- */
.lap-leiras {
    color: var(--text-secondary);
    max-width: 62rem;
    line-height: 1.5;
    margin: -0.25rem 0 1.25rem;
}
.vam-osszesito {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1rem 0;
}
.vam-osszesito > div {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 12rem;
    padding: 0.75rem 1rem;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.vam-osszesito span { color: var(--text-muted); font-size: 0.8rem; }
.vam-osszesito strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.vam-modosito {
    padding: 0.05rem 0.5rem;
    border: 1px solid var(--warning);
    border-radius: var(--radius-pill);
    color: var(--warning);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: help;
}
.eafa-jog-rendben { color: var(--text-secondary); font-size: 0.9rem; margin: 0 0 1rem; }

/* Grixi felugró ablaka (pl. eÁFA-jogosultság) — a CRM közlemény-ablakának
   (konyveloiroda_crm static/css/theme.css ".kozlemeny-ablak") mintájára:
   középen a kártya, fölötte jobbra Grixi a peremre támaszkodva. A kép
   átlátszó margóival együtt 190 px; a látható figura kb. 124 px-rel lóg a
   kártya fölé — ennyi helyet kap a kártya felett (--grixi-hely). */
.grixi-hatterfeny {
    --grixi-meret: 190px;
    --grixi-jobb: 28px;
    --grixi-fent: -145px;
    --grixi-hely: 124px;
    padding: 1rem;
}
.grixi-ablak {
    position: relative;
    isolation: isolate;
    width: min(560px, 100%);
    margin-top: var(--grixi-hely);
    filter: drop-shadow(0 20px 36px rgba(0, 0, 0, 0.32));
}
.modal-hatterfeny.lathato .grixi-ablak { animation: grixi-megjelenes 0.18s ease-out; }
@keyframes grixi-megjelenes { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .modal-hatterfeny.lathato .grixi-ablak { animation: none; }
}
.grixi-ablak__grixi {
    position: absolute;
    z-index: 2;
    top: var(--grixi-fent);
    right: var(--grixi-jobb);
    width: var(--grixi-meret);
    height: var(--grixi-meret);
    object-fit: contain;
    pointer-events: none;
    user-select: none;
}
.grixi-ablak__kartya {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 2rem - var(--grixi-hely));
    max-height: calc(100dvh - 2rem - var(--grixi-hely));
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--bg-secondary);
}
.grixi-ablak__tartalom {
    min-height: 0;
    overflow: auto;
    padding: 48px 36px 28px;
    overflow-wrap: anywhere;
}
.grixi-ablak__cim {
    margin: 0 0 1rem;
    padding: 0;
    border: none;
    color: var(--text-primary);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
}
.grixi-ablak__szoveg { color: var(--text-secondary); font-size: 0.95rem; line-height: 1.6; }
.grixi-ablak__szoveg p { margin: 0 0 0.9rem; }
.grixi-ablak__szoveg ol { margin: 0 0 0.9rem; padding-left: 1.3rem; }
.grixi-ablak__szoveg li + li { margin-top: 0.4rem; }
.grixi-ablak__szoveg strong { color: var(--text-primary); }
.grixi-ablak__szoveg .grixi-ablak__megjegyzes { margin-bottom: 0; font-size: 0.82rem; color: var(--text-muted); }
.grixi-ablak__lab {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-end;
    margin: 0 24px;
    padding: 18px 12px 22px;
    border-top: 1px solid var(--border);
}
.grixi-ablak__gomb {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0;
}
@media (max-width: 600px) {
    .grixi-hatterfeny {
        --grixi-meret: 138px;
        --grixi-jobb: 18px;
        --grixi-fent: -105px;
        --grixi-hely: 90px;
        padding: 0.75rem;
    }
    .grixi-ablak__tartalom { padding: 38px 22px 22px; }
    .grixi-ablak__cim { font-size: 1.2rem; }
    .grixi-ablak__lab { margin: 0 16px; padding: 14px 6px 16px; }
}
/* Alacsony kijelző (pl. fekvő telefon): kisebb Grixi, kevesebb felső hely. */
@media (max-height: 560px) {
    .grixi-hatterfeny {
        --grixi-meret: 110px;
        --grixi-jobb: 16px;
        --grixi-fent: -84px;
        --grixi-hely: 72px;
        padding: 0.5rem 1rem;
    }
    .grixi-ablak__tartalom { padding: 30px 24px 18px; }
    .grixi-ablak__lab { padding: 12px 6px 14px; }
}

/* ---------- Automatikus NAV-letöltés állapota (Adatok szerkesztése, NAV kapcsolat) ---------- */
.auto-letoltes {
    margin: 0.25rem 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--tint-subtle);
}
.auto-letoltes-cim { margin: 0; color: var(--text-primary); font-weight: 500; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.auto-letoltes-hibas { color: var(--danger); font-weight: 600; }
.auto-letoltes-lista { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; gap: 0.25rem; font-size: 0.88rem; color: var(--text-secondary); }
.auto-letoltes-lista strong { color: var(--text-primary); font-weight: 600; }
.al-jel { display: inline-block; width: 1.1rem; font-weight: 700; }
.al-ok .al-jel { color: var(--accent); }
.al-hiba .al-jel { color: var(--danger); }
.al-nincs-jog { color: var(--text-muted); }
.al-nincs-jog strong { color: var(--text-muted); }
.auto-letoltes-sugo { margin: 0.5rem 0 0; }
.auto-letoltes-porgo {
    width: 14px; height: 14px; flex-shrink: 0;
    border: 2px solid var(--accent-soft);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: auto-letoltes-forog 0.8s linear infinite;
}
@keyframes auto-letoltes-forog { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .auto-letoltes-porgo { animation: none; } }

/* ---------- Lapozó (több ezer soros listák, pl. számlák) ---------- */
.lapozo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin: 1rem 0;
}
.lapozo-gomb {
    padding: 0.35rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: var(--text-primary);
    text-decoration: none;
    font-size: 0.88rem;
    background: var(--bg-card);
}
a.lapozo-gomb:hover { border-color: var(--accent-border); color: var(--accent); }
.lapozo-tiltott { color: var(--text-muted); opacity: 0.5; }
.lapozo-allapot { color: var(--text-secondary); font-size: 0.88rem; padding: 0 0.5rem; font-variant-numeric: tabular-nums; }

/* ---------- Bevételi nyilvántartás (egyéni vállalkozó) ---------- */
.bevetel-fejlec { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin: 0.5rem 0 0.25rem; }
.bevetel-szamlalo {
    display: inline-block;
    min-width: 1.4rem;
    padding: 0 0.4rem;
    border-radius: var(--radius-pill);
    background: var(--warning);
    color: #10151d;
    font-size: 0.75rem;
    font-weight: 700;
    text-align: center;
}
.bevetel-forras {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.45rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    font-size: 0.72rem;
    white-space: nowrap;
    vertical-align: 1px;
}
.bevetel-forras-penztargep { color: var(--grafikon-penztargep); border-color: var(--grafikon-penztargep); }
.bevetel-forras-nyugta { color: var(--grafikon-nyugta); border-color: var(--grafikon-nyugta); }
.bevetel-forras-szamla { color: var(--grafikon-szamla); border-color: var(--grafikon-szamla); }
.bevetel-tabla tfoot td { font-weight: 700; color: var(--text-primary); border-top: 2px solid var(--border); }
.bevetel-visszavon { display: inline; margin-left: 0.35rem; }
.bevetel-visszavon .link-gomb { font-size: 0.75rem; color: var(--text-muted); }
.bevetel-datum-cella { white-space: nowrap; }
.bevetel-datum-cella .bevetel-datum { width: 8.5rem; display: inline-block; }
.bevetel-datum-cella .link-gomb { margin-left: 0.35rem; font-size: 0.78rem; }
.bevetel-mentes-sor { display: flex; justify-content: flex-end; margin: 0.75rem 0; }
.bevetel-export { display: flex; gap: 0.5rem; margin-left: auto; }
.bevetel-export .gomb-outline { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 0; }

/* ---------- Beérkezett bizonylatok ---------- */
.halvany-kicsi { color: var(--text-muted); font-size: 0.8rem; }
.bizonylat-feltolto { margin: 0 0 1rem; }
.bizonylat-allapot {
    display: inline-block;
    padding: 0.05rem 0.55rem;
    border-radius: var(--radius-pill);
    border: 1px solid var(--border);
    color: var(--text-secondary);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}
.bizonylat-allapot-feldolgozva { color: var(--accent); border-color: var(--accent-border); }
.bizonylat-allapot-parositasra_var { color: var(--warning); border-color: var(--warning); }
.bizonylat-allapot-nem_felismert, .bizonylat-allapot-hiba { color: var(--danger); border-color: var(--danger); }
.bizonylat-gombok { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin: 0.5rem 0 1rem; }
.bizonylat-gombok form { margin: 0; }
.bizonylat-gombok .gomb-outline { margin-top: 0; }
.bizonylat-tetelek td { vertical-align: top; }
.bizonylat-szoveg { max-width: 28rem; overflow-wrap: anywhere; }
.bizonylat-dontes { min-width: 18rem; }
.bizonylat-sor-terheles td { opacity: 0.55; }
.bizonylat-inline { display: inline; margin: 0; }
.bizonylat-jeloltek { list-style: none; margin: 0.35rem 0; padding: 0; display: grid; gap: 0.3rem; font-size: 0.85rem; }
.gomb-kicsi { padding: 0.1rem 0.55rem !important; font-size: 0.78rem !important; margin: 0 0.35rem 0 0 !important; }
.bizonylat-szoveg-doboz { margin: 0 0 1rem; padding: 0.6rem 0.9rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--tint-subtle); }
.bizonylat-szoveg-doboz summary { cursor: pointer; color: var(--text-secondary); font-size: 0.88rem; }
.bizonylat-szoveg-doboz pre { max-height: 420px; overflow: auto; white-space: pre-wrap; font-size: 0.78rem; color: var(--text-secondary); margin: 0.5rem 0 0; }
.gomb-veszely { color: var(--danger) !important; border-color: var(--danger) !important; }

/* Az ügyfél beállításai külön blokkban, az ügyfél menüje alatt. */
.oldalsav-csoport-beallitasok { margin-top: 1.1rem; }

/* GRIXI IQ — Jogcímezés */
.jogcim-doboz { border: 1px solid var(--border); border-radius: 11px; background: var(--bg-card); padding: 0.9rem 1rem; margin-bottom: 1rem; }
.jogcim-allapot { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.jogcim-gombok { display: flex; gap: 0.6rem; align-items: flex-start; flex-wrap: wrap; }
.jogcim-gombok details form { margin-top: 0.4rem; }
.jogcim-elofeltetel { margin: 0 0 0.8rem; padding-left: 1.1rem; }
.jogcim-inditas { display: flex; flex-direction: row; gap: 0.6rem; align-items: center; flex-wrap: wrap; }
.jogcim-inditas input[type="date"] { width: auto; }
.jogcim-szuro { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin: 0.6rem 0 1rem; }
.jogcim-szuro select { width: auto; }
.jogcim-meres { margin: 0.2rem 0 0.4rem; }
.jogcim-jel { display: inline-block; width: 0.7rem; height: 0.7rem; border-radius: 50%; vertical-align: middle; }
.jogcim-zold { background: #20c875; }
.jogcim-sarga { background: #e3b341; }
.jogcim-piros { background: #e5534b; }
.jogcim-szamla { border: 1px solid var(--border); border-radius: 11px; background: var(--bg-card); margin-bottom: 0.9rem; overflow: hidden; }
.jogcim-szamla-fej { display: flex; justify-content: space-between; gap: 0.8rem; flex-wrap: wrap; align-items: center; padding: 0.6rem 0.9rem; background: var(--bg-secondary); border-bottom: 1px solid var(--border); }
.jogcim-tabla { margin: 0; }
.jogcim-jel-oszlop { width: 1.6rem; text-align: center; }
.jogcim-dontes { width: 38%; min-width: 16rem; }
.jogcim-urlap { display: flex; flex-direction: row; gap: 0.4rem; align-items: center; margin: 0; }
.jogcim-urlap input[type="text"] { flex: 1; min-width: 9rem; margin: 0; }
.jogcim-urlap button { white-space: nowrap; }
.jogcim-kesz { font-weight: 600; }
.jogcim-inline { display: inline-flex; margin: 0; }
button[type="submit"].jogcim-link { background: none; border: none; box-shadow: none; padding: 0; margin: 0 0 0 0.3rem; color: var(--accent); text-decoration: underline; cursor: pointer; font-size: 0.8rem; font-weight: 400; width: auto; }
.jogcim-doboz button[type="submit"], .jogcim-szamla button[type="submit"], .jogcim-szuro button[type="submit"] { margin-top: 0; }
.jogcim-urlap input { margin: 0; }
.jogcim-szuro form { flex-direction: row; align-items: center; gap: 0.5rem; }
.jogcim-szuro label { margin: 0; }
.jogcim-tabla td { vertical-align: top; overflow-wrap: anywhere; }
@media (max-width: 720px) {
    .jogcim-tabla, .jogcim-tabla tbody { display: block; }
    .jogcim-tabla tr { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); border-bottom: 1px solid var(--border); }
    .jogcim-tabla td { display: block; border: none; }
    .jogcim-dontes { grid-column: 1 / -1; width: auto; min-width: 0; padding-top: 0; }
    .jogcim-szamla-fej form { width: 100%; }
}
.jogcim-lista-jel { display: inline-block; margin-left: 0.35rem; padding: 0.05rem 0.4rem; border-radius: 999px; font-size: 0.72rem; border: 1px solid var(--border); color: var(--text-secondary); white-space: nowrap; }
.jogcim-lista-kesz { border-color: var(--accent-border); color: var(--accent); background: var(--accent-soft); }
.jogcim-szurosav { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1rem; }
.jogcim-szuro-gomb { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.3rem 0.7rem; border: 1px solid var(--border); border-radius: 999px; font-size: 0.85rem; color: var(--text-secondary); text-decoration: none; background: var(--bg-card); }
.jogcim-szuro-gomb:hover { border-color: var(--accent-border); color: var(--text-primary); }
.jogcim-szuro-gomb.aktiv { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); font-weight: 600; }

/* Jogcímezés: a tételsorok tördelődjenek (a döntési oszlop ne csússzon ki), számla-gombok, tömeges kijelölés */
.jogcim-tabla { table-layout: fixed; width: 100%; }
.jogcim-tabla td { white-space: normal; }
.jogcim-tabla td.jogcim-jel-oszlop { width: 1.8rem; }
.jogcim-tabla td.jogcim-dontes { width: 36%; }
.jogcim-szamla-fej > div:first-child { min-width: 0; flex: 1 1 18rem; overflow-wrap: anywhere; }
.jogcim-szamla-fej input[type="checkbox"].szamla-jelolo { width: 17px; height: 17px; margin: 0 0.45rem 0 0; vertical-align: -3px; }
.jogcim-szamla-gombok { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.jogcim-szuro form#tomeges-elfogadas { flex-direction: row; align-items: center; gap: 0.6rem; }
.jogcim-mind-jelolo { display: inline-flex; align-items: center; gap: 0.35rem; margin: 0; white-space: nowrap; }
.jogcim-szuro button[type="submit"]:disabled { opacity: 0.5; cursor: default; transform: none; }
@media (max-width: 720px) {
    .jogcim-tabla { table-layout: auto; }
    .jogcim-tabla td.jogcim-jel-oszlop, .jogcim-tabla td.jogcim-dontes { width: auto; }
}

/* Bejövő számlák: Jogcím oszlop jelvénye */
.jogcim-lista-cella { white-space: nowrap; }
.jogcim-jelveny { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.15rem 0.55rem; border-radius: 999px;
    border: 1px solid var(--border); background: var(--bg-input); font-size: 0.78rem; color: var(--text-secondary); line-height: 1.4; }
.jogcim-jelveny .jogcim-jel { width: 0.55rem; height: 0.55rem; margin-left: 0.15rem; }
.jogcim-jelveny-kesz { border-color: var(--accent-border); background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.jogcim-csik { display: inline-block; width: 2.6rem; height: 0.35rem; border-radius: 999px; background: var(--border); overflow: hidden; }
.jogcim-csik > span { display: block; height: 100%; background: var(--accent); }
/* Számla oldal: jogcím elfogadása */
.szamla-jogcim-sav { display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; flex-wrap: wrap; margin: 0.2rem 0 0.6rem; }
.szamla-jogcim-urlap { flex-direction: row; margin: 0; }
.szamla-jogcim-urlap button[type="submit"], .szamla-jogcim-hely button[type="submit"] { margin-top: 0; }
.szamla-tetel-jogcimmel td { border-bottom: none; padding-bottom: 0.25rem; }
.szamla-jogcim-sor td.szamla-jogcim-hely { white-space: normal; padding-top: 0.2rem; padding-bottom: 0.8rem; }
.szamla-jogcim-hely .jogcim-urlap { max-width: 34rem; }
.szamla-jogcim-hely .jogcim-urlap input[type="text"] { flex: 1 1 8rem; min-width: 0; font-size: 0.9rem; padding: 0.35rem 0.5rem; }
.szamla-jogcim-hely .jogcim-urlap button[type="submit"] { padding: 0.35rem 0.7rem; font-size: 0.85rem; }
.szamla-jogcim-indoklas { margin-top: 0.25rem; white-space: normal; }

/* ---- Jogcímezés oldal: állapotsáv, eszköztár, áttekintés, csoportos elfogadás ---- */
.jogcim-oldal button[type="submit"] { margin-top: 0; }
.jogcim-oldal button.gomb-outline, .jogcim-oldal summary.gomb-outline {
    background: transparent; box-shadow: none; color: var(--accent); border: 1px solid var(--accent-border);
    padding: 0.42rem 0.85rem; font-size: 0.86rem; margin: 0;
}
.jogcim-oldal button.gomb-outline:hover, .jogcim-oldal summary.gomb-outline:hover { background: var(--accent-soft); transform: none; }
.jogcim-oldal button.gomb-outline.gomb-veszely:hover { background: var(--danger-bg); }
.jogcim-oldal button:disabled { opacity: 0.5; cursor: default; transform: none; }
.jogcim-oldal button.jogcim-link, .jogcim-oldal button[type="button"].jogcim-link {
    background: none; border: none; box-shadow: none; padding: 0; margin: 0; color: var(--accent);
    text-decoration: underline; cursor: pointer; font-size: 0.82rem; font-weight: 400; font-family: inherit;
}

.jogcim-allapotsav { display: flex; flex-wrap: wrap; gap: 0.7rem 1rem; align-items: center; justify-content: space-between;
    padding: 0.75rem 1rem; margin-bottom: 1.1rem; border: 1px solid var(--border); border-radius: 11px; background: var(--bg-card); }
.jogcim-allapotsav-bal { flex: 1 1 18rem; min-width: 0; }
.jogcim-bekapcsolva { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 600; margin-right: 0.3rem; }
.jogcim-allapotsav-sor { margin-top: 0.2rem; }
.jogcim-allapotsav-jobb { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.jogcim-allapotsav-jobb form { margin: 0; }

.jogcim-menu { position: relative; }
.jogcim-menu > summary { list-style: none; cursor: pointer; border-radius: var(--radius-sm); font-weight: 600; white-space: nowrap; user-select: none; }
.jogcim-menu > summary::-webkit-details-marker { display: none; }
.jogcim-menu-tartalom { position: absolute; right: 0; top: calc(100% + 0.4rem); z-index: 30; width: min(22rem, 86vw);
    display: flex; flex-direction: column; gap: 0.75rem; padding: 0.9rem; background: var(--bg-secondary);
    border: 1px solid var(--border); border-radius: 11px; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35); }
.jogcim-menu-tartalom form { margin: 0; }
.jogcim-menu-tartalom .jogcim-inditas { gap: 0.45rem; }

.jogcim-eszkoztar { display: flex; flex-wrap: wrap; gap: 0.7rem 1rem; align-items: center; justify-content: space-between; margin-bottom: 0.8rem; }
.jogcim-honapvalaszto { display: flex; flex-direction: row; align-items: center; gap: 0.5rem; margin: 0; }
.jogcim-honapvalaszto label { margin: 0; font-size: 0.88rem; color: var(--text-secondary); }
.jogcim-honapvalaszto select { width: auto; margin: 0; }
.jogcim-fulek { display: inline-flex; padding: 3px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg-card); }
.jogcim-ful { padding: 0.38rem 0.95rem; border-radius: 999px; font-size: 0.87rem; color: var(--text-secondary); text-decoration: none; white-space: nowrap; }
.jogcim-ful:hover { color: var(--text-primary); }
.jogcim-ful.aktiv { background: var(--accent-soft); color: var(--accent); font-weight: 600; }

.jogcim-attekintes { padding: 0.85rem 1rem 0.75rem; margin-bottom: 1rem; border: 1px solid var(--border); border-radius: 11px; background: var(--bg-card); }
.jogcim-attekintes-szamok { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; align-items: baseline; justify-content: space-between; }
.jogcim-nagyszam { font-size: 1.4rem; font-weight: 700; margin-right: 0.2rem; }
.jogcim-minden-kesz { color: var(--accent); font-size: 1.1rem; }
.jogcim-halado { display: flex; gap: 2px; height: 0.55rem; margin: 0.6rem 0 0.45rem; border-radius: 999px; overflow: hidden; background: var(--border); }
.jogcim-halado > span { flex-basis: 0; min-width: 4px; }
.jogcim-halado-kesz { background: var(--accent); opacity: 0.45; }
.jogcim-halado-zold { background: #20c875; }
.jogcim-halado-sarga { background: #e3b341; }
.jogcim-halado-piros { background: #e5534b; }
.jogcim-jelmagyarazat { display: flex; flex-wrap: wrap; gap: 0.2rem 1rem; }
.jogcim-kesz-jel { background: var(--accent); opacity: 0.45; }

.jogcim-csoport-fej { display: flex; flex-wrap: wrap; gap: 0.7rem 1rem; align-items: center; justify-content: space-between; margin: 0.2rem 0 0.6rem; }
.jogcim-csoport-fej > div { flex: 1 1 20rem; min-width: 0; }
.jogcim-csoport-fej form { margin: 0; }
.jogcim-kijelolo-sor { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; align-items: center; margin: 0 0 0.6rem; padding: 0 0.15rem; font-size: 0.88rem; }
.jogcim-mind-jelolo { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; white-space: nowrap; cursor: pointer; }
.jogcim-oldal input[type="checkbox"].tomeges-jelolo, .jogcim-oldal input[type="checkbox"].mind-kijelol {
    width: 18px; height: 18px; margin: 0; accent-color: var(--accent); cursor: pointer; flex: none; }

.jcs-lista { display: flex; flex-direction: column; gap: 0.5rem; }
.jcs { border: 1px solid var(--border); border-left: 3px solid #20c875; border-radius: 10px; background: var(--bg-card); transition: border-color 0.12s, background 0.12s; }
.jcs-sarga { border-left-color: #e3b341; }
.jcs-piros { border-left-color: #e5534b; }
.jcs.kijelolve, .jogcim-szamla.kijelolve { border-color: var(--accent-border); background: var(--accent-soft); }
.jcs-sor { display: grid; grid-template-columns: auto minmax(0, 1.25fr) minmax(0, 1fr) auto; gap: 0.4rem 1rem; align-items: center; padding: 0.65rem 0.85rem 0.35rem; }
.jcs-szallito strong { display: block; overflow-wrap: anywhere; line-height: 1.3; }
.jcs-szinek { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.25rem; margin-top: 0.15rem; }
.jcs-szin { display: inline-block; min-width: 1.3rem; padding: 0 0.4rem; border-radius: 999px; font-size: 0.72rem; font-weight: 700; line-height: 1.25rem; text-align: center; color: #07111f; }
.jcs-szin-zold { background: #20c875; }
.jcs-szin-sarga { background: #e3b341; }
.jcs-szin-piros { background: #e5534b; color: #fff; }
.jcs-jogcim { font-size: 0.92rem; overflow-wrap: anywhere; }
.jcs-nyil { color: var(--text-muted); }
.jcs-gomb { margin: 0; display: flex; flex-direction: row; }
.jcs-gomb button { padding: 0.45rem 1.1rem; width: auto; }
.jcs-reszlet > summary { padding: 0 0.85rem 0.55rem calc(0.85rem + 18px + 1rem); font-size: 0.8rem; color: var(--text-muted); cursor: pointer; width: fit-content; }
.jcs-reszlet > summary:hover { color: var(--accent); }
.jcs-reszlet-tartalom { padding: 0 0.85rem 0.8rem calc(0.85rem + 18px + 1rem); }
.jcs-tetelek { list-style: none; margin: 0 0 0.7rem; padding: 0; font-size: 0.86rem; }
.jcs-tetelek li { padding: 0.3rem 0; border-bottom: 1px solid var(--border-subtle); overflow-wrap: anywhere; }
.jcs-indoklas { margin: 0.1rem 0 0 1.1rem; }
.jcs-reszlet-tartalom .jogcim-urlap { max-width: 32rem; }
.jogcim-nincs-javaslat { margin: 0.9rem 0 0; }

.jogcim-szamla-cim { display: flex; gap: 0.65rem; align-items: flex-start; flex: 1 1 18rem; min-width: 0; overflow-wrap: anywhere; }
.jogcim-szamla-cim .tomeges-jelolo { margin-top: 0.15rem !important; }
.jogcim-szamla-kesz { color: var(--accent); font-weight: 700; width: 18px; text-align: center; }
.jogcim-szamla-gombok form { margin: 0; }


.jogcim-akciosav { position: sticky; bottom: 0.8rem; z-index: 25; display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; align-items: center;
    justify-content: space-between; margin-top: 1rem; padding: 0.7rem 1rem; border: 1px solid var(--accent-border); border-radius: 12px;
    background: var(--bg-secondary); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); }
.jogcim-akciosav[hidden] { display: none; }
.jogcim-akciosav-gombok { display: inline-flex; gap: 1rem; align-items: center; }
.jogcim-buborek { position: fixed; left: 50%; bottom: 1.4rem; transform: translateX(-50%); z-index: 60; max-width: calc(100vw - 2rem);
    padding: 0.6rem 1.1rem; border: 1px solid var(--accent-border); border-radius: 10px; background: var(--bg-secondary);
    color: var(--text-primary); font-size: 0.9rem; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); }
.jogcim-buborek[hidden] { display: none; }

@media (max-width: 720px) {
    .jcs-sor { grid-template-columns: auto minmax(0, 1fr); }
    .jcs-jogcim, .jcs-gomb { grid-column: 2; }
    .jcs-reszlet > summary, .jcs-reszlet-tartalom { padding-left: 0.85rem; }
}
/* A számlakártya "⋯" menüje a kártyán belül, helyben nyílik le (a kártya levágná a lebegő menüt). */
.jogcim-szamla-fej .jogcim-szamla-gombok { flex: 0 1 auto; justify-content: flex-end; }
.jogcim-szamla-fej .jogcim-szamla-gombok > form { width: auto; }
.jogcim-szamla-gombok details.jogcim-menu[open] { flex-basis: 100%; display: flex; flex-direction: column; align-items: flex-end; }
.jogcim-szamla-gombok .jogcim-menu-tartalom { position: static; width: min(26rem, 100%); margin-top: 0.5rem; box-shadow: none; background: var(--bg-card); }
@media (max-width: 720px) { .jogcim-allapotsav .jogcim-menu[open] { flex-basis: 100%; } .jogcim-allapotsav .jogcim-menu-tartalom { position: static; width: 100%; margin-top: 0.5rem; box-shadow: none; } }
.jogcim-kijelolo-sor[hidden] { display: none; }

/* Csoportos elfogadás: szállítónként egy kártya, benne jogcímenként egy sor; rendezett tétellista. */
.jcs { overflow: hidden; }
.jcs-fej { display: flex; flex-wrap: wrap; gap: 0.5rem 0.9rem; align-items: center; padding: 0.65rem 0.85rem 0.25rem; }
.jcs-fej .jcs-szallito { flex: 1 1 14rem; min-width: 0; }
.jcs-fej .jcs-szallito .halvany-kicsi { display: block; margin-top: 0.1rem; }
.jcs-tobb-jogcim { color: var(--warning); font-weight: 600; }
.jogcim-oldal input[type="checkbox"].szallito-jelolo { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); cursor: pointer; flex: none; }
.jcs-jogcimsor { margin: 0 0.5rem; border-top: 1px solid var(--border-subtle); border-radius: 8px; transition: background 0.12s; }
.jcs-jogcimsor:first-of-type { border-top: none; }
.jcs-jogcimsor:last-child { margin-bottom: 0.3rem; }
.jcs.kijelolve { border-color: var(--border); background: var(--bg-card); }
.jcs-jogcimsor.kijelolve { background: var(--accent-soft); }
.jcs-sor { grid-template-columns: auto minmax(0, 1fr) auto; padding: 0.5rem 0.35rem 0.25rem; }
.jcs-jogcim { font-size: 0.95rem; }
.jcs-szam { font-weight: 700; }
.jcs-jogcim .jcs-szinek { display: flex; margin-top: 0.2rem; }
.jcs-reszlet > summary { padding: 0 0.35rem 0.5rem calc(0.35rem + 18px + 1rem); }
.jcs-reszlet[open] > summary { color: var(--accent); }
.jcs-reszlet-tartalom { padding: 0 0.35rem 0.8rem calc(0.35rem + 18px + 1rem); }
.jcs-tetel-tabla { width: 100%; border-collapse: collapse; font-size: 0.86rem; margin-bottom: 0.8rem; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.jcs-tetel-tabla th { text-align: left; font-size: 0.74rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em;
    color: var(--text-muted); padding: 0.45rem 0.6rem; background: var(--bg-secondary); border-bottom: 1px solid var(--border); }
.jcs-tetel-tabla td { padding: 0.45rem 0.6rem; vertical-align: top; border-bottom: 1px solid var(--border-subtle); }
.jcs-tetel-tabla tbody tr:last-child td { border-bottom: none; }
.jcs-tetel-tabla tbody tr:hover td { background: var(--tint-hover); }
.jcs-tetel-tabla .oszlop-szam { text-align: right; white-space: nowrap; }
.jcs-tetel-tabla th.oszlop-szam { text-align: right; }
.jcs-oszlop-jel { width: 1.4rem; padding-right: 0 !important; }
.jcs-oszlop-tetel { overflow-wrap: anywhere; }
.jcs-oszlop-datum { white-space: nowrap; color: var(--text-secondary); }
.jcs-indoklas { margin: 0.2rem 0 0; }
.jcs-atiras { display: flex; flex-direction: column; gap: 0.35rem; margin: 0; padding: 0.7rem 0.8rem; max-width: 36rem;
    border: 1px dashed var(--border); border-radius: 8px; background: var(--tint-subtle); }
.jcs-atiras label { margin: 0; font-size: 0.82rem; color: var(--text-secondary); }
.jcs-atiras .jogcim-urlap input[type="text"] { min-width: 0; }
@media (max-width: 720px) {
    .jcs-sor { grid-template-columns: auto minmax(0, 1fr); }
    .jcs-reszlet > summary, .jcs-reszlet-tartalom { padding-left: 0.35rem; }
    .jcs-tetel-tabla thead { display: none; }
    .jcs-tetel-tabla, .jcs-tetel-tabla tbody { display: block; }
    .jcs-tetel-tabla tr { display: grid; grid-template-columns: 1.4rem minmax(0, 1fr) auto; border-bottom: 1px solid var(--border-subtle); }
    .jcs-tetel-tabla td { border: none; padding: 0.3rem 0.4rem; }
    .jcs-tetel-tabla td.oszlop-szam { grid-column: 3; grid-row: 1; }
    .jcs-tetel-tabla td.jcs-oszlop-afa { grid-column: 2 / -1; grid-row: 2; padding-top: 0; padding-bottom: 0; }
    .jcs-tetel-tabla td.jcs-oszlop-szamla { grid-column: 2 / -1; grid-row: 3; padding-top: 0; padding-bottom: 0; font-size: 0.8rem; }
    .jcs-tetel-tabla td.jcs-oszlop-datum { grid-column: 2; grid-row: 4; padding-top: 0; font-size: 0.8rem; }
    .jcs-tetel-tabla td.jcs-oszlop-muvelet { grid-column: 3; grid-row: 3 / 5; align-self: end; width: auto; }
}

/* Könyvelő Grixi a jogcímezés állapotsávjában */
.jogcim-allapotsav { padding-top: 0.45rem; padding-bottom: 0.45rem; }
.jogcim-grixi.grixi-bookkeeping { --grixi-size: 64px; flex: none; }
.jogcim-allapotsav-bal { flex: 1 1 14rem; }
@media (max-width: 720px) {
    .jogcim-allapotsav { flex-wrap: wrap; }
    .jogcim-grixi.grixi-bookkeeping { --grixi-size: 56px; }
    .jogcim-allapotsav-bal { flex: 1 1 calc(100% - 56px - 1rem); }
    .jogcim-allapotsav-jobb { flex-basis: 100%; }
}

/* GRIXI Core: AI-költség KPI-k */
.ai-koltseg-cim { margin: 1.4rem 0 0.7rem; font-size: 1.05rem; }
.ai-kpi-sor { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0.9rem; margin-bottom: 1rem; }
.ai-kpi-sor .kpi-kartya { min-width: 0; }
.ai-kpi-kiemelt { border-color: var(--accent-border); background: linear-gradient(160deg, var(--accent-soft), var(--bg-card) 70%); }
.ai-kpi-kiemelt .kpi-ertek { color: var(--accent); }
.ai-kpi-sor .kpi-ertek { font-size: 2.1rem; }
.ai-kpi-sor .kpi-alcim strong { color: var(--text-primary); }
.ai-kpi-ugyfelnev { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; color: var(--text-primary); }
.ai-kpi-tabla-doboz { margin-top: 0; border: 1px solid var(--border); border-radius: var(--radius); }
.ai-kpi-tabla td, .ai-kpi-tabla th { white-space: nowrap; }
.ai-kpi-tabla td.ai-kpi-nev { white-space: normal; min-width: 12rem; }
.ai-kpi-arany { display: block; height: 4px; margin-top: 0.35rem; border-radius: 999px; background: var(--border); overflow: hidden; max-width: 14rem; }
.ai-kpi-arany > span { display: block; height: 100%; background: var(--accent); border-radius: 999px; }
.ai-kpi-aktiv-sor td { background: var(--accent-soft); }
.ai-kpi-megjegyzes { margin-top: 0.6rem; }

/* GRIXI Bére: az ügyfelenkénti költség-táblázat lenyitható */
.ai-kpi-reszlet { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-card); }
.ai-kpi-reszlet > summary { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; cursor: pointer; font-weight: 600; list-style: none; user-select: none; }
.ai-kpi-reszlet > summary::-webkit-details-marker { display: none; }
.ai-kpi-reszlet > summary::before { content: "▸"; color: var(--text-muted); transition: transform 0.15s; }
.ai-kpi-reszlet[open] > summary::before { transform: rotate(90deg); }
.ai-kpi-reszlet > summary:hover { color: var(--accent); }
.ai-kpi-reszlet .ai-kpi-tabla-doboz { border: none; border-top: 1px solid var(--border); border-radius: 0 0 var(--radius) var(--radius); }

/* Előleg-jelvény a tételeknél (NAV-adat szerint) */
.jogcim-eloleg-jel { display: inline-block; margin-left: 0.35rem; padding: 0 0.45rem; border: 1px solid var(--warning); border-radius: 999px; color: var(--warning); font-size: 0.72rem; font-weight: 600; line-height: 1.35rem; white-space: nowrap; vertical-align: 1px; }
.jogcim-eloleg-szoveg { border-style: dashed; }
.ai-hibak { margin-top: 0.7rem; }
.ai-kpi-tabla td.ai-hiba-ok { white-space: normal; min-width: 16rem; color: var(--text-secondary); }

/* Jogcímezés: kereső */
.jogcim-kereso-hely { display: flex; align-items: center; gap: 0.6rem; flex: 1 1 16rem; min-width: 0; max-width: 28rem; }
.jogcim-kereso-hely input[type="search"] { margin: 0; width: 100%; min-width: 0; }
.jogcim-kereso-hely .halvany-kicsi { white-space: nowrap; }
.jcs[hidden], .jogcim-szamla[hidden] { display: none; }

/* Mérés (próbapad) */
.meres-gombok { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin: 0.4rem 0 1rem; }
.meres-gombok form { margin: 0; }
.meres-gombok button.gomb-outline { background: transparent; box-shadow: none; color: var(--accent); border: 1px solid var(--accent-border); padding: 0.42rem 0.85rem; font-size: 0.86rem; margin: 0; }
.meres-valtozas { margin-left: 0.4rem; font-size: 0.8rem; font-weight: 600; white-space: nowrap; }
.meres-jobb { color: var(--accent); }
.meres-rosszabb { color: var(--danger); }
/* Ismétlődő számla a jogcímezésben */
.jogcim-ismetlodo { margin-top: 0.3rem; font-size: 0.82rem; color: var(--text-secondary); }
.jogcim-ismetlodo-uj { color: var(--warning); }
.jogcim-uj-jel { display: inline-block; margin-left: 0.35rem; padding: 0 0.45rem; border-radius: 999px; background: var(--warning); color: #07111f; font-size: 0.72rem; font-weight: 700; line-height: 1.35rem; white-space: nowrap; vertical-align: 1px; }
tr.jogcim-uj-elteres td { background: rgba(244, 183, 64, 0.06); }
.jogcim-probapad-jelzes a { margin-left: 0.4rem; }

/* ÁFA-levonhatóság: jelvény és menü a tétel mellett */
.afa-menu { display: inline-block; position: relative; margin-left: 0.35rem; vertical-align: 1px; }
.afa-menu > summary { list-style: none; cursor: pointer; }
.afa-menu > summary::-webkit-details-marker { display: none; }
.afa-jel { display: inline-block; padding: 0 0.45rem; border-radius: 999px; font-size: 0.72rem; font-weight: 700; line-height: 1.35rem; white-space: nowrap; border: 1px solid transparent; }
span.afa-jel { margin-left: 0.35rem; vertical-align: 1px; }
.afa-jel-korlat { border-color: #8b7cf6; color: #a99cff; background: rgba(139, 124, 246, 0.1); }
.afa-jel-bizonytalan { border-color: var(--warning); color: var(--warning); border-style: dashed; }
.afa-jel-teljes { color: var(--text-muted); font-weight: 500; border-color: var(--border); }
.afa-jel-fad { border-color: #3fa7d6; color: #6cc4ec; background: rgba(63, 167, 214, 0.1); cursor: help; }
/* FAD a levonhatósági jelvénnyel egy sorban; a listában az ÁFA-oszlop bal szélén, fix helyen (az összeg jobbra marad) */
.afa-jelek { display: flex; align-items: center; gap: 0.3rem; flex-wrap: nowrap; }
.afa-jelek .afa-jel, .afa-jelek .afa-menu { margin: 0; }
.afa-cella { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.fad-hely { flex: 0 0 2.6rem; text-align: left; line-height: 0; }
.fad-hely .afa-jel { margin: 0; line-height: 1.35rem; }
.fad-szuro .kep-valaszto-elem { border-left: 0; }
/* A "csendes" (100%-os) jelvény halvány: CSAK maga a jelvény, nem a konténer — különben a benne megnyíló menü is áttetsző lenne. */
.afa-menu-csendes > .afa-jel { opacity: 0; transition: opacity 0.12s; }
tr:hover .afa-menu-csendes > .afa-jel, .afa-menu-csendes:focus-within > .afa-jel, .afa-menu-csendes[open] > .afa-jel { opacity: 1; }
@media (hover: none) { .afa-menu-csendes > .afa-jel { opacity: 0.6; } }
.afa-menu-tartalom { position: absolute; left: 0; top: calc(100% + 0.3rem); z-index: 30; width: min(20rem, 80vw);
    display: flex; flex-direction: column; gap: 0.45rem; padding: 0.7rem; margin: 0; background: var(--bg-secondary);
    border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35); }
.afa-menu-tartalom select { margin: 0; width: 100%; }
.afa-menu-tartalom .afa-egyeni { margin: 0.35rem 0 0; width: 100%; }
.afa-menu-tartalom button[type="submit"] { margin: 0; padding: 0.35rem 0.8rem; font-size: 0.85rem; align-self: flex-start; }
.afa-menu-tartalom { white-space: normal; overflow-wrap: anywhere; box-sizing: border-box; }
.afa-menu-tartalom .afa-nlv { display: flex; flex-direction: column; gap: 0.25rem; }
.afa-menu-tartalom .afa-nlv[hidden] { display: none; }
.afa-menu-tartalom input[type="text"], .afa-menu-tartalom input[type="number"] { width: 100%; box-sizing: border-box; margin: 0; }
.afa-menu-tartalom .afa-gombok { display: flex; gap: 0.5rem; align-items: center; }
.afa-menu-tartalom .afa-megse { margin: 0; padding: 0.35rem 0.8rem; font-size: 0.85rem; background: transparent; border: 1px solid var(--accent);
    border-radius: var(--radius-sm); color: var(--accent); font-weight: 600; cursor: pointer; }
.afa-menu-tartalom .afa-megse:hover { background: var(--accent-soft); }
.szamla-nem-levonhato span { color: #a99cff; }

/* GRIXI Core: ÁFA-levonhatósági kategóriák */
.afa-kategoria { border: 1px solid var(--border); border-left: 3px solid var(--border); border-radius: 10px; background: var(--bg-card); padding: 0.75rem 0.9rem; margin-bottom: 0.6rem; }
.afa-allapot-jovahagyva { border-left-color: var(--accent); }
.afa-allapot-javaslat { border-left-color: var(--warning); }
.afa-allapot-visszavonva { opacity: 0.6; }
.afa-kategoria-fej { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; justify-content: space-between; align-items: flex-start; }
.afa-kategoria-fej > div:first-child { flex: 1 1 20rem; min-width: 0; overflow-wrap: anywhere; }
.afa-szazalek { margin-left: 0.5rem; font-weight: 700; color: #a99cff; }
.afa-allapot-jel { margin-left: 0.5rem; font-size: 0.78rem; color: var(--text-secondary); }
.afa-kategoria-gombok form { margin: 0; }
.afa-kategoria-gombok button[type="submit"] { margin: 0; }
.afa-szerkesztes > summary { cursor: pointer; font-size: 0.82rem; color: var(--text-muted); margin-top: 0.4rem; width: fit-content; }
.afa-urlap { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 0.5rem 0.8rem; margin-top: 0.6rem; align-items: end; }
.afa-urlap label { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.82rem; color: var(--text-secondary); margin: 0; }
.afa-urlap input, .afa-urlap select { margin: 0; }
.afa-urlap-szeles { grid-column: 1 / -1; }
.afa-urlap button[type="submit"] { margin: 0; justify-self: start; }
.afa-uj { margin-top: 1rem; }
.afa-uj-urlap { padding: 0 0.9rem 0.9rem; }

/* Tudnivalók: a cég járművei */
.tudnivalok-jarmu .jogcim-inditas select { width: auto; margin: 0; }
.tudnivalok-jarmu .hibauzenet { margin: 0.6rem 0 0; }

/* Grixi járműjelzés (Tudnivalók): sötét tengerészkék sáv, borostyán kerettel, Grixi a jobb szélen */
.grixi-jarmu { display: flex; align-items: center; gap: 18px; margin-top: 0.8rem; padding: 14px 20px;
    background: #122235; border: 1px solid #ba914f; border-radius: 12px; color: #e9eef5; }
.grixi-jarmu-auto { width: 30px; height: 30px; flex: none; color: #e5b45e; }
.grixi-jarmu-szoveg { flex: 1; min-width: 0; margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.45; }
.grixi-jarmu-kabala { width: 130px; height: 94px; object-fit: contain; flex: none; }
:root[data-theme="light"] .grixi-jarmu { background: #fbf6ec; color: #2a2417; border-color: #d4a85a; }
:root[data-theme="light"] .grixi-jarmu-auto { color: #b9822a; }
@media (max-width: 600px) {
    .grixi-jarmu { gap: 10px; padding: 12px; }
    .grixi-jarmu-szoveg { font-size: 0.9rem; }
    .grixi-jarmu-kabala { width: 82px; height: 70px; }
    .grixi-jarmu-auto { width: 22px; height: 22px; }
}

/* ÁFA-levonhatósági jelvény: fix oszlopban, hogy a sorok között egy vonalban álljon */
.jcs-tetel-tabla th.jcs-oszlop-afa, .jcs-tetel-tabla td.jcs-oszlop-afa { width: 6.5rem; white-space: nowrap; }
.jogcim-tabla td.jogcim-afa-oszlop { width: 6.5rem; white-space: nowrap; }
.jcs-oszlop-afa .afa-menu, .jogcim-afa-oszlop .afa-menu, .szamla-afa-jel .afa-menu { margin-left: 0; }
.szamla-afa-jel { margin-top: 0.2rem; }
.afa-menu-tartalom { left: auto; right: 0; }
@media (max-width: 720px) {
    .jogcim-tabla td.jogcim-afa-oszlop { width: auto; grid-column: 2 / -1; padding-top: 0; }
}

/* GRIXI IQ — Export (IMA) */
.export-szuro { display: flex; gap: 0.8rem; align-items: baseline; margin: 0.6rem 0 0.3rem; }
.export-datum-valto { font-size: 0.85rem; color: var(--accent); }
.export-honapok { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.8rem; }
.export-honap { display: inline-flex; gap: 0.45rem; align-items: baseline; padding: 0.25rem 0.6rem; border: 1px solid var(--border); border-radius: var(--radius-pill); font-size: 0.88rem; }
.export-honap a { color: inherit; text-decoration: none; }
.export-honap.aktiv { border-color: var(--accent); font-weight: 600; }
.export-honap-kijelol { color: var(--accent) !important; font-size: 0.8rem; font-weight: 400; }
.export-gombok { display: flex; gap: 1rem; margin-bottom: 0.4rem; font-size: 0.88rem; }
.export-kesz { color: var(--accent); }
.export-hianyos { color: var(--warning); }
.export-sav { position: sticky; bottom: 0; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.6rem 0.8rem; margin-top: 0.6rem; background: var(--bg-secondary); border-top: 1px solid var(--border); }

/* Tárhely (GRIXI Core) és a 80% fölötti figyelmeztető sáv */
.tarhely-sav { padding: 0.5rem 1rem; font-size: 0.9rem; text-align: center; background: rgba(244, 183, 64, 0.16); color: var(--text-primary); border-bottom: 1px solid var(--warning); }
.tarhely-sav.tarhely-veszely { background: var(--danger-bg); border-bottom-color: var(--danger); }
.tarhely-sav a { color: var(--accent); margin-left: 0.4rem; }
.tarhely-csik { height: 14px; border-radius: var(--radius-pill); background: var(--tint-hover); border: 1px solid var(--border); overflow: hidden; margin: 0.6rem 0; }
.tarhely-csik span { display: block; height: 100%; background: var(--accent); }
.tarhely-csik.tarhely-figyelmeztetes span { background: var(--warning); }
.tarhely-csik.tarhely-veszely span { background: var(--danger); }
.figyelmezteto-uzenet { padding: 0.5rem 0.8rem; border-radius: var(--radius-sm); background: rgba(244, 183, 64, 0.14); border: 1px solid var(--warning); }

/* GRIXI Core — Külföldi partnerek */
.kulfoldi-tipus { display: flex; gap: 1.2rem; margin-bottom: 0.4rem; }
.kulfoldi-tipus label { display: inline-flex; gap: 0.35rem; align-items: center; font-weight: 500; }
.kulfoldi-adoszam-sor { display: flex; gap: 0.6rem; align-items: center; }
.kulfoldi-adoszam-sor input { flex: 1; }
.kulfoldi-gombok { white-space: nowrap; }
.kulfoldi-gombok form { display: inline; margin-left: 0.6rem; }
.hiba-szoveg { color: var(--danger); font-weight: 600; }

.parosito-szoveg { margin: 0.2rem 0; }
.parosito-szoveg pre { max-height: 16rem; overflow: auto; white-space: pre-wrap; font-size: 0.8rem; padding: 0.5rem; background: var(--tint-hover); border-radius: var(--radius-sm); }

/* Külföldi számla kézi rögzítése */
.kulfoldi-szamla-racs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 1.4rem; align-items: start; }
.kulfoldi-szamla-kepek { position: sticky; top: 1rem; display: flex; flex-direction: column; gap: 0.8rem; max-height: calc(100vh - 2rem); overflow: auto; }
.kulfoldi-szamla-kepek img { width: 100%; border-radius: var(--radius-sm); border: 1px solid var(--border); background: #fff; }
.kulfoldi-szamla-datumok { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.kulfoldi-szamla-datumok > div { flex: 1; min-width: 9rem; }
.kulfoldi-tetelek input, .kulfoldi-tetelek select { width: 100%; min-width: 5rem; }
.kulfoldi-tetelek td:first-child input { min-width: 12rem; }
.kulfoldi-szamla-osszesen { text-align: right; margin: 0.4rem 0; }
.kulfoldi-szamla-torles { margin-top: 1rem; }
.kulfoldi-cimke { display: inline-block; padding: 0.05rem 0.45rem; border-radius: var(--radius-pill); font-size: 0.75rem; font-weight: 600; background: var(--accent-soft); color: var(--accent); border: 1px solid var(--accent-border); }
.kulfoldi-jelzes { display: flex; gap: 0.6rem; align-items: baseline; flex-wrap: wrap; }
@media (max-width: 900px) { .kulfoldi-szamla-racs { grid-template-columns: 1fr; } .kulfoldi-szamla-kepek { position: static; max-height: none; } }
.kulfoldi-szamla-urlap { min-width: 0; }
.kulfoldi-szamla-urlap fieldset { min-width: 0; }
.kulfoldi-szamla-datumok input, .kulfoldi-szamla-datumok select { width: 100%; box-sizing: border-box; }

/* Az előtöltött mező zöldes kiemelése: a háttérszín OPAK marad (a zöld árnyalat színátmenet-rétegként kerül rá) — az áttetsző
   háttérszínt a lenyíló lista (select) is átveszi, és akkor a világos betű a fehér háttéren olvashatatlan, "üres" lista lesz. */
.elotoltve, .elotoltve-minta { background-color: var(--bg-input) !important;
    background-image: linear-gradient(rgba(32, 200, 117, 0.12), rgba(32, 200, 117, 0.12)) !important;
    border-color: var(--accent-border) !important; }
/* A lenyíló listák elemei: kifejezetten OPAK háttér és olvasható betű (a natív lista a sötét témában is jól jelenjen meg). */
select option, select optgroup { background-color: var(--bg-input); color: var(--text-primary); }
.elotoltve-minta { padding: 0 0.3rem; border: 1px solid; border-radius: var(--radius-sm); }

.kulfoldi-ellenorzendo { margin-bottom: 1rem; }
.kulfoldi-cimke-ellenorizendo { background: rgba(244, 183, 64, 0.16); color: var(--warning); border-color: var(--warning); }

/* Előleg analitika */
.eloleg-szuro { margin-bottom: 1rem; }
.eloleg-kpi { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0 0 1rem; }
.eloleg-kpi > div { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.7rem 1rem; border: 1px solid var(--border);
    border-radius: var(--radius); background: var(--bg-card); min-width: 11rem; }
.eloleg-kpi-szam { font-size: 1.25rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.eloleg-tabla .oszlop-szam { white-space: nowrap; font-variant-numeric: tabular-nums; }
.eloleg-fosor { cursor: pointer; }
.eloleg-fosor:hover td { background: var(--tint-hover); }
.eloleg-lezart .eloleg-fosor td { opacity: 0.7; }
.eloleg-nyitott { color: var(--warning); }
.eloleg-negativ { color: var(--danger); }
.eloleg-nyito-cella { text-align: right; white-space: nowrap; }
.eloleg-reszlet > td { background: var(--tint-subtle); padding: 0.4rem 0.8rem 0.9rem; }
.eloleg-tetel-tabla { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.eloleg-tetel-tabla th, .eloleg-tetel-tabla td { padding: 0.35rem 0.5rem; border-bottom: 1px solid var(--border-subtle); text-align: left; vertical-align: top; }
.eloleg-tetel-tabla th.oszlop-szam, .eloleg-tetel-tabla td.oszlop-szam { text-align: right; white-space: nowrap; }
.eloleg-tipus { display: inline-block; padding: 0 0.45rem; margin-right: 0.3rem; border-radius: 999px; font-size: 0.72rem; font-weight: 700;
    line-height: 1.35rem; border: 1px solid; }
.eloleg-tipus-adott { color: var(--warning); border-color: var(--warning); }
.eloleg-tipus-levont { color: var(--accent); border-color: var(--accent); }
.eloleg-tipus-sztorno { color: var(--text-muted); border-color: var(--border); }
.eloleg-szoveg-jel { display: inline-block; padding: 0 0.4rem; margin-right: 0.3rem; border-radius: 999px; font-size: 0.7rem;
    border: 1px dashed var(--warning); color: var(--warning); line-height: 1.25rem; }
.eloleg-figyel { color: var(--warning); }

.jogcim-tovabbi { display: flex; justify-content: center; padding: 1rem 0 1.5rem; }
.eloleg-jogcim-jel { display: inline-block; padding: 0 0.4rem; margin-right: 0.3rem; border-radius: 999px; font-size: 0.7rem;
    border: 1px solid var(--accent, #2ecc71); color: var(--accent, #2ecc71); line-height: 1.25rem; }

/* Csoportos nézet: a tétel ÁFA-menüje (legördülő) ne vágódjon le a táblázat / a kártya szélén. */
.jcs-tetel-tabla { overflow: visible; }
.jcs:has(.afa-menu[open]), .jcs:has(.afa-nyitva), .jogcim-szamla:has(.afa-menu[open]), .jogcim-szamla:has(.afa-nyitva) { overflow: visible; }
.afa-nepup[hidden] { display: none; }
.afa-nyit { cursor: pointer; }
.afa-menu-csendes.afa-nyitva > .afa-jel { opacity: 1; }
/* A számla kivétele a könyvelésből: kis gomb a tételsor végén (a számla első tételénél), sor fölött látszik jobban. */
.jcs-tetel-tabla .jcs-oszlop-muvelet { width: 1%; white-space: nowrap; text-align: right; }
.kivesz { display: inline-block; cursor: pointer; color: var(--text-muted); font-size: 0.74rem; line-height: 1.2;
    padding: 0.15rem 0.5rem; border: 1px solid var(--border); border-radius: 999px; opacity: 0.55;
    transition: opacity 0.12s, color 0.12s, border-color 0.12s; }
tr:hover .kivesz, .kivesz:focus { opacity: 1; }
.kivesz:hover, .kivesz:focus { color: var(--warning); border-color: var(--warning); }

.jogcim-eszkoz-jel { display: inline-block; padding: 0 0.45rem; margin-left: 0.3rem; border-radius: 999px; font-size: 0.72rem;
    border: 1px solid var(--accent); color: var(--accent); line-height: 1.3rem; }
.esz-jel { display: none; margin-left: 0.3rem; vertical-align: middle; }
.eszkozmod .esz-jel { display: inline-block; }
.jcs-eszkoz-vezerlo { margin: 0 0 0.4rem; }
.eszkozmod .jcs-eszkoz-vezerlo .jcs-eszkoz-mod { color: var(--accent); }
.jcs-eszkoz { margin: 0 0 0.8rem; padding: 0.7rem 0.8rem; border: 1px dashed var(--accent); border-radius: 8px; background: var(--bg-secondary); }
.jcs-eszkoz[hidden] { display: none; }
.jcs-eszkoz-sor { display: block; font-size: 0.86rem; padding: 0.1rem 0; }
.jcs-eszkoz .jogcim-urlap { margin-top: 0.5rem; flex-wrap: wrap; }

/* Tablet / érintős képernyő: az ÁFA-menü a képernyő közepén álló panel (mögötte elsötétített háttér), nagy, jól
   megnyomható Mentés / Mégse gombbal — a szűk oszlop mellett lenyíló doboz kilógott és takarásba került. */
@media (max-width: 1100px), (hover: none) {
    .afa-menu-tartalom, .afa-menu-tartalom.afa-nepup {
        position: fixed; left: 50%; right: auto; top: 50%; bottom: auto; transform: translate(-50%, -50%);
        width: min(24rem, 92vw); max-height: 88vh; overflow-y: auto; overflow-x: hidden; z-index: 1000; padding: 1rem; gap: 0.75rem;
        box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.55), 0 12px 32px rgba(0, 0, 0, 0.5);
    }
    .afa-menu-tartalom select, .afa-menu-tartalom input[type="text"], .afa-menu-tartalom input[type="number"] {
        min-height: 2.75rem; font-size: 1rem;
    }
    .afa-menu-tartalom .afa-gombok { gap: 0.75rem; }
    .afa-menu-tartalom .afa-gombok button { flex: 1; min-height: 2.9rem; font-size: 1rem; align-self: stretch; }
    .afa-menu-tartalom .afa-gombok button[type="submit"] { font-weight: 700; }
    .afa-jel { line-height: 1.9rem; padding: 0 0.7rem; font-size: 0.8rem; }
}

/* ---------- Iroda áttekintő (minden ügyfél egy sorban) ---------- */
.ia-bevezeto { margin: -0.4rem 0 1rem; max-width: 70rem; }
.ia-kpi-sor { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.9rem; margin-bottom: 1rem; }
.ia-kpi-sor .kpi-kartya { min-width: 0; text-align: left; font: inherit; color: inherit; }
.ia-kpi-sor .kpi-ertek { font-size: 2rem; }
.ia-szuro-kartya { cursor: pointer; transition: border-color 0.12s, transform 0.12s; }
.ia-szuro-kartya:hover { transform: translateY(-1px); }
.ia-k-kritikus { border-color: color-mix(in srgb, var(--danger) 55%, var(--border)); }
.ia-k-kritikus .kpi-ertek { color: var(--danger); }
.ia-k-figyelem { border-color: color-mix(in srgb, var(--warning) 50%, var(--border)); }
.ia-k-figyelem .kpi-ertek { color: var(--warning); }
.ia-k-rendben .kpi-ertek { color: var(--accent); }
.ia-eszkoztar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-bottom: 0.75rem; }
.ia-eszkoztar input[type="search"] { flex: 1 1 18rem; max-width: 26rem; margin: 0; }
.ia-szurok { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ia-szuro { display: inline-flex; align-items: center; gap: 0.35rem; margin: 0; padding: 0.3rem 0.75rem; font-size: 0.85rem;
    background: transparent; color: var(--text-secondary); border: 1px solid var(--border); border-radius: var(--radius-pill); }
.ia-szuro span { color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ia-szuro.aktiv { color: var(--text-primary); border-color: var(--accent-border); background: var(--accent-soft); }
button.ia-szuro:hover { transform: none; background: var(--tint-hover); }
.ia-pont { display: inline-block; width: 0.6rem; height: 0.6rem; border-radius: 50%; flex: 0 0 auto; font-style: normal; }
.ia-kritikus { background: var(--danger); box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 22%, transparent); }
.ia-figyelem { background: var(--warning); }
.ia-rendben { background: var(--accent); }
.ia-nincs_adat, .ia-hiba { background: var(--text-muted); }
.ia-konyvelo-szuro { display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.ia-eszkoztar form.ia-konyvelo-szuro { flex-direction: row; flex-wrap: nowrap; align-items: center; max-width: none; padding: 0; border: 0; background: none; }
.ia-konyvelo-szuro label { display: inline; width: auto; margin: 0; font-size: 0.85rem; color: var(--text-secondary); white-space: nowrap; }
.ia-konyvelo-szuro select { margin: 0; min-width: 14rem; }

/* Iroda áttekintő — táblázat: állapot-csoportok, levegős sorok, színkódolt jelzések */
.ia-tabla-doboz { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-secondary); }
.ia-tabla { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 0.9rem; }
.ia-o-ugyfel { width: 25%; } .ia-o-bevetel { width: 13%; } .ia-o-spark { width: 12%; }
.ia-o-afa { width: 13%; } .ia-o-keret { width: 15%; } .ia-o-jelzes { width: 22%; }
.ia-tabla thead th { position: sticky; top: 0; z-index: 2; padding: 0.7rem 1rem; text-align: left; font-size: 0.72rem;
    font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-muted);
    background: var(--bg-secondary); border-bottom: 1px solid var(--border); white-space: nowrap; }
.ia-tabla thead th.oszlop-szam { text-align: right; }
.ia-tabla th.ia-rendezheto { cursor: pointer; user-select: none; }
.ia-tabla th.ia-rendezheto:hover { color: var(--text-primary); }
.ia-tabla th[aria-sort="ascending"]::after { content: " ▲"; }
.ia-tabla th[aria-sort="descending"]::after { content: " ▼"; }
/* Csoportfejléc: Kritikus / Figyelem / Rendben … */
.ia-csoport-fejlec th { padding: 1.1rem 1rem 0.55rem; text-align: left; font-weight: 400; background: var(--bg-secondary);
    border-bottom: 1px solid var(--border); }
.ia-csoport:first-of-type .ia-csoport-fejlec th { padding-top: 0.8rem; }
.ia-csoport-db { margin-left: 0.6rem; font-weight: 600; color: var(--text-primary); }
.ia-csoport-leiras { margin-left: 0.35rem; color: var(--text-muted); font-size: 0.82rem; }
.ia-allapot { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.2rem 0.7rem; border-radius: var(--radius-pill);
    font-size: 0.78rem; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.ia-allapot::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: currentColor; }
.ia-allapot-kritikus { color: var(--danger); background: color-mix(in srgb, var(--danger) 14%, transparent); }
.ia-allapot-figyelem { color: var(--warning); background: color-mix(in srgb, var(--warning) 14%, transparent); }
.ia-allapot-rendben { color: var(--accent); background: var(--accent-soft); }
.ia-allapot-nincs_adat, .ia-allapot-hiba { color: var(--text-muted); background: var(--tint-hover); }
/* Sorok */
.ia-sor td { padding: 0.95rem 1rem; vertical-align: top; border-bottom: 1px solid var(--border); white-space: normal; }
.ia-csoport .ia-sor:last-child td { border-bottom: 0; }
.ia-sor:hover td { background: var(--tint-hover); }
.ia-sor-kritikus td { background: color-mix(in srgb, var(--danger) 5%, transparent); }
.ia-sor-kritikus td:first-child { box-shadow: inset 4px 0 0 var(--danger); }
.ia-sor-figyelem td:first-child { box-shadow: inset 4px 0 0 var(--warning); }
.ia-sor-kritikus:hover td { background: color-mix(in srgb, var(--danger) 9%, transparent); }
.ia-ugyfel form { margin: 0; }
button[type="submit"].ia-ugyfel-gomb { display: block; width: auto; min-height: 0; margin: 0; padding: 0; background: none;
    border: 0; box-shadow: none; color: var(--text-primary); font: inherit; font-size: 0.95rem; font-weight: 650;
    line-height: 1.3; text-align: left; cursor: pointer; }
button[type="submit"].ia-ugyfel-gomb:hover, button[type="submit"].ia-ugyfel-gomb:active { transform: none; background: none; box-shadow: none; }
button[type="submit"].ia-ugyfel-gomb:hover .ia-nev { color: var(--accent); text-decoration: underline; }
.ia-nev { overflow-wrap: anywhere; }
.ia-cimkek { display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; margin-top: 0.35rem; font-size: 0.75rem; color: var(--text-muted); }
.ia-konyvelo { color: var(--text-secondary); }
.ia-konyvelo::before { content: "👤 "; filter: grayscale(1); opacity: 0.7; }
.ia-konyvelo-sajat { color: var(--accent); font-weight: 600; }
.ia-szam { font-size: 1rem; font-weight: 650; color: var(--text-primary); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ia-al { margin-top: 0.2rem; font-size: 0.75rem; line-height: 1.35; }
.ia-halvany { color: var(--text-muted); }
.ia-fel { color: var(--accent); }
.ia-le { color: var(--danger); }
.ia-visszaigenyelheto { color: var(--accent); }
.ia-spark-cella { padding-top: 1.05rem !important; }
.ia-spark { display: block; width: 100%; max-width: 9rem; height: 2.1rem; overflow: visible; }
.ia-spark rect { fill: var(--accent); opacity: 0.7; }
.ia-spark rect.ia-spark-folyo { opacity: 0.3; }
.ia-spark rect.ia-spark-kiugro { fill: var(--warning); opacity: 1; }
.ia-keret + .ia-keret { margin-top: 0.6rem; }
.ia-keret-fejlec { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.78rem; color: var(--text-secondary); }
.ia-keret-fejlec strong { color: var(--text-primary); font-variant-numeric: tabular-nums; }
.ia-keret-sav { height: 7px; margin-top: 0.25rem; border-radius: var(--radius-pill); background: var(--tint-hover); overflow: hidden; }
.ia-keret-sav span { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.ia-keret-figyelem .ia-keret-sav span { background: var(--warning); }
.ia-keret-figyelem .ia-keret-fejlec strong { color: var(--warning); }
.ia-keret-tullepve .ia-keret-sav span { background: var(--danger); }
.ia-keret-tullepve .ia-keret-fejlec strong { color: var(--danger); }
.ia-keret-sav_felett .ia-keret-sav span { background: var(--text-muted); }
/* Jelzések: rövid, színkódolt címkék (a teljes szöveg rámutatva) */
.ia-jelzesek { line-height: 1.2; }
.ia-jelzes { display: inline-block; margin: 0 0.3rem 0.35rem 0; padding: 0.28rem 0.6rem; border-radius: var(--radius-sm);
    font-size: 0.78rem; font-weight: 600; cursor: help; border: 1px solid transparent; }
.ia-jelzes-kritikus { color: var(--danger); background: color-mix(in srgb, var(--danger) 13%, transparent);
    border-color: color-mix(in srgb, var(--danger) 35%, transparent); }
.ia-jelzes-figyelem { color: var(--warning); background: color-mix(in srgb, var(--warning) 12%, transparent);
    border-color: color-mix(in srgb, var(--warning) 30%, transparent); }
.ia-jelzes-info { color: var(--text-secondary); background: var(--tint-hover); font-weight: 500; }
@media (max-width: 1100px) {
    .ia-tabla-doboz { overflow-x: auto; }
    .ia-tabla { min-width: 980px; }
}

/* Export: a hiányzó fizetési adatok felugró ablaka */
.fiz-dialog { width: min(58rem, 94vw); max-height: 88vh; padding: 0; border: 1px solid var(--border); border-radius: var(--radius);
    background: var(--bg-secondary); color: var(--text-primary); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5); }
.fiz-dialog::backdrop { background: rgba(0, 0, 0, 0.55); }
.fiz-urlap { display: flex; flex-direction: column; gap: 0.75rem; padding: 1.25rem 1.4rem; max-height: 88vh; box-sizing: border-box; }
.fiz-urlap h2 { margin: 0; font-size: 1.15rem; }
.fiz-tabla-doboz { overflow: auto; flex: 1 1 auto; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.fiz-tabla td { vertical-align: top; white-space: normal; }
.fiz-tabla input.fiz-nap { width: 5rem; margin: 0; }
.fiz-tabla select.fiz-mod { margin: 0; min-width: 10rem; }
.fiz-javaslat { color: var(--accent); }
.fiz-gombok { display: flex; flex-wrap: wrap; gap: 0.6rem; justify-content: flex-end; }
.fiz-gombok button { margin: 0; }

/* Jogcím-előzmény */
.jelo-keres { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin: 0 0 1rem; max-width: 46rem; }
.jelo-keres input[type="search"] { flex: 1 1 18rem; margin: 0; }
.jelo-keres button, .jelo-keres a { margin: 0; }
.jelo-tabla td { vertical-align: top; white-space: normal; }
.aktiv-sor td { background: var(--accent-soft); }
.jelo-esemeny { display: inline-block; padding: 0.1rem 0.55rem; border-radius: var(--radius-pill); font-size: 0.75rem; font-weight: 700; }
.jelo-dontes { color: var(--accent); background: var(--accent-soft); }
.jelo-visszavonas { color: var(--warning); background: color-mix(in srgb, var(--warning) 14%, transparent); }
.jelo-torles { color: var(--danger); background: color-mix(in srgb, var(--danger) 14%, transparent); }
.fiz-rendben { color: var(--text-muted); }
.afa-menu-tartalom .afa-nlv-kerdes { color: var(--warning); font-size: 0.82rem; }
.fiz-kep-gomb { display: block; margin: 0.35rem 0 0; padding: 0.15rem 0.6rem; font-size: 0.8rem; background: transparent; border: 1px solid var(--accent);
    border-radius: var(--radius-sm); color: var(--accent); cursor: pointer; }
.fiz-kep-gomb:hover, .fiz-kep-gomb.nyitva { background: var(--accent-soft); }
.fiz-kep-sor td { background: var(--bg-secondary); }
.fiz-kep-sor img { display: block; max-width: 100%; max-height: 70vh; margin: 0.4rem auto 0; border-radius: var(--radius-sm); background: #fff; }
.jelolo-sor { display: flex; gap: 0.5rem; align-items: center; margin-top: 0.7rem; cursor: pointer; }
.jelolo-sor input[type="checkbox"] { width: auto; margin: 0; }
/* Külföldi számla: kereshető partnerválasztó */
.ksz-kereso-doboz { position: relative; }
.ksz-kereso-doboz input { width: 100%; box-sizing: border-box; }
.ksz-kereso-lista { position: absolute; left: 0; right: 0; top: calc(100% + 0.25rem); z-index: 40; max-height: 18rem; overflow-y: auto;
    margin: 0; padding: 0.3rem; list-style: none; background: var(--bg-secondary); border: 1px solid var(--border);
    border-radius: var(--radius-sm); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35); }
.ksz-kereso-lista[hidden] { display: none; }
.ksz-kereso-lista li { padding: 0.45rem 0.6rem; border-radius: 6px; cursor: pointer; }
.ksz-kereso-lista li:hover, .ksz-kereso-lista li.aktiv { background: var(--accent-soft); color: var(--text-primary); }
.ksz-kereso-lista li.ksz-kereso-ures { cursor: default; color: var(--text-muted); }
.ksz-kereso-lista li.ksz-kereso-ures:hover { background: none; }

/* Napi PTG zárások: saját oszlopok (előjeljelzés a fejlécben, oszlopkezelő ablak). */
.ptg-elojel { display: inline-block; min-width: 1.1rem; padding: 0 0.3rem; border-radius: 999px; font-size: 0.72rem;
    font-weight: 700; text-align: center; border: 1px solid currentColor; }
.ptg-elojel-minusz { color: var(--warning); }
.ptg-elojel-plusz { color: var(--accent); }
.ptg-oszlop-valaszto { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.75rem; font-size: 0.9rem; }
.ptg-oszlop-valaszto select { width: auto; }
.ptg-elojel-kerdes { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.6rem 0.8rem;
    margin: 0.4rem 0 0.8rem; display: flex; flex-direction: column; gap: 0.4rem; }
.ptg-elojel-kerdes legend { font-size: 0.85rem; color: var(--text-secondary); padding: 0 0.3rem; }
.ptg-elojel-kerdes label { display: flex; gap: 0.45rem; align-items: baseline; font-size: 0.9rem; margin: 0; }
.ptg-oszlop-lista-cim { margin: 1.2rem 0 0.4rem; font-size: 0.9rem; }
.ptg-oszlop-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.ptg-oszlop-lista li { display: flex; justify-content: space-between; gap: 0.6rem; flex-wrap: wrap; font-size: 0.88rem;
    padding: 0.4rem 0.55rem; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); }
.ptg-oszlop-gombok { display: inline-flex; gap: 0.6rem; align-items: center; }

/* IMA export: időszak-választó (gyorsgombok, tól–ig, hónap), összesítő és görgethető lista. */
.export-idoszak { display: flex; flex-direction: column; gap: 0.6rem; margin: 0.6rem 0 0.4rem; }
.export-idoszak-sor { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; align-items: center; }
.export-idoszak-cim { font-size: 0.85rem; color: var(--text-secondary); font-weight: 600; }
.export-gyors { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.export-gyors-gomb { padding: 0.25rem 0.7rem; border: 1px solid var(--border); border-radius: var(--radius-pill); font-size: 0.85rem; color: inherit; text-decoration: none; }
.export-gyors-gomb:hover { border-color: var(--accent); }
.export-gyors-gomb.aktiv { border-color: var(--accent); font-weight: 600; background: var(--tint-hover); }
.szuro-mezo-kicsi { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; font-size: 0.85rem; color: var(--text-secondary); }
.szuro-mezo-kicsi input[type="text"] { width: 8.6rem; }
.szuro-mezo-kicsi select { width: auto; }
.export-osszesito { margin: 0.2rem 0 0.7rem; font-size: 0.9rem; color: var(--text-secondary); }
.export-osszesito strong { color: var(--text-primary); }
/* A lista a képernyőn marad: kb. 14 sor látszik, a többi görgetéssel; a fejléc rögzített. */
.export-gorgeto { max-height: min(60vh, 34rem); overflow: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.export-gorgeto table { margin: 0; }
.export-gorgeto thead th { position: sticky; top: 0; z-index: 2; background: var(--bg-secondary); }

/* IMA export: számlakép-jelzések (bejövő). */
.export-kep-van { color: var(--accent); font-weight: 600; white-space: nowrap; }
.export-kep-nincs { color: var(--text-muted); white-space: nowrap; }
.export-kepes-gomb { padding: 0.3rem 0.8rem; border: 1px solid var(--accent); border-radius: var(--radius-pill); background: var(--tint-hover);
    color: var(--accent); font-weight: 600; cursor: pointer; font-size: 0.88rem; }
.export-kepes-gomb:hover { background: var(--accent); color: #fff; }
.export-kep-jelzes { padding: 0.1rem 0.55rem; border-radius: var(--radius-pill); border: 1px solid currentColor; white-space: nowrap; }
.export-kep-mind { color: var(--accent); }
.export-kep-resz { color: var(--warning); }
.export-kep-allapot { display: inline-block; margin-left: 0.8rem; padding: 0.2rem 0.7rem; border-radius: var(--radius-pill); border: 1px solid currentColor;
    font-weight: 700; font-size: 0.9rem; }
.export-kep-allapot[hidden] { display: none; }

/* Dátum törlése gomb a nem kötelező natív dátumválasztók mellett (telefon, tablet). */
.datum-torles { display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; margin-left: 0.35rem;
    padding: 0; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-secondary);
    color: var(--text-secondary); cursor: pointer; font-size: 1rem; line-height: 1; vertical-align: middle; }
.datum-torles:hover { color: var(--danger, #e5484d); border-color: var(--danger, #e5484d); }
.datum-torles[hidden] { display: none; }

/* GRIXI Core: AI-költség grafikon (napi / havi, jogcímezés + próbapad halmozva). */
.ai-grafikon-doboz { margin: 1rem 0; padding: 0.9rem 1rem 0.7rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-secondary); }
.ai-grafikon-fej { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.2rem; margin-bottom: 0.5rem; }
.ai-grafikon-cim { font-weight: 600; }
.ai-grafikon-valto { display: inline-flex; border: 1px solid var(--border); border-radius: var(--radius-pill); overflow: hidden; }
.ai-grafikon-valto button { padding: 0.25rem 0.9rem; border: 0; background: transparent; color: var(--text-secondary); cursor: pointer; font-size: 0.85rem; }
.ai-grafikon-valto button.aktiv { background: var(--accent); color: #fff; font-weight: 600; }
.ai-grafikon-jelmagyarazat { display: inline-flex; gap: 1rem; font-size: 0.82rem; color: var(--text-secondary); margin-left: auto; }
.ai-jel { display: inline-block; width: 0.75rem; height: 0.75rem; border-radius: 2px; margin-right: 0.35rem; vertical-align: -1px; }
.ai-jel-jogcim, .ai-sav-jogcim { background: var(--accent); fill: var(--accent); }
.ai-jel-egyeb, .ai-sav-egyeb { background: var(--warning); fill: var(--warning); }
.ai-grafikon { width: 100%; }
.ai-grafikon svg { display: block; width: 100%; height: auto; }
.ai-racs { stroke: var(--border); stroke-width: 1; }
.ai-tengely { fill: var(--text-muted); font-size: 11px; }
.ai-ertek { fill: var(--text-secondary); font-size: 10.5px; font-variant-numeric: tabular-nums; pointer-events: none; }
.ai-ertek.kivalasztott { fill: var(--text-primary, currentColor); font-weight: 700; font-size: 12px; }
.ai-oszlop { cursor: pointer; outline: none; }
.ai-oszlop-hatter { fill: transparent; }
.ai-oszlop:hover .ai-oszlop-hatter, .ai-oszlop:focus .ai-oszlop-hatter { fill: var(--tint-hover); }
.ai-grafikon-info { margin-top: 0.3rem; min-height: 1.2em; }

/* AI-költség grafikon: ügyfélszűrő, előrejelzés, tételszám-vonal, napi bontás, tanulás. */
.ai-grafikon-szuro { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; color: var(--text-secondary); margin: 0; }
.ai-grafikon-szuro select { width: auto; max-width: 18rem; padding: 0.25rem 0.5rem; font-size: 0.85rem; }
.ai-jel-vonal { height: 0; border-top: 2px solid var(--text-primary); border-radius: 0; vertical-align: 3px; }
.ai-jel-varhato { background: transparent; border: 1.5px dashed var(--accent); }
.ai-elorejelzes { display: flex; flex-wrap: wrap; gap: 0.4rem 1.6rem; margin: 0.2rem 0 0.6rem; font-size: 0.88rem; color: var(--text-secondary); }
.ai-elorejelzes strong { color: var(--text-primary); font-size: 1.05rem; }
.ai-elorejelzes .ai-varhato strong { color: var(--accent); }
.ai-vonal { fill: none; stroke: var(--text-primary); stroke-width: 1.6; opacity: 0.75; }
.ai-pont { fill: var(--text-primary); opacity: 0.85; }
.ai-sav-varhato { fill: transparent; stroke: var(--accent); stroke-width: 1.5; stroke-dasharray: 4 3; }
.ai-oszlop.kivalasztott .ai-oszlop-hatter { fill: var(--tint-hover); }
.ai-tanulas-vonal { fill: none; stroke: var(--accent); stroke-width: 2; }
.ai-tanulas-pont { fill: var(--accent); }
.ai-bontas { margin-top: 0.5rem; }
.ai-bontas-cim { font-weight: 600; font-size: 0.9rem; margin-bottom: 0.3rem; }
.ai-bontas-fej { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 1rem; margin-bottom: 0.4rem; }
.ai-bontas-fej .ai-bontas-cim { font-size: 1.05rem; margin-bottom: 0; }
.ai-bontas-osszeg { font-size: 1.1rem; }
.ai-bontas-osszeg strong { color: var(--accent); font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.ai-bontas table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.ai-bontas td { padding: 0.25rem 0.4rem; border-top: 1px solid var(--border); }
.ai-bontas td.szam { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ai-bontas .ai-bontas-sav { display: block; height: 4px; border-radius: 2px; background: var(--accent); margin-top: 3px; opacity: 0.7; }
.ai-tanulas-doboz { margin-top: 1rem; padding-top: 0.8rem; border-top: 1px solid var(--border); }

/* GRIXI IQ: speciális ÁFA-kulcsok, munkaszámok és jelölésük. */
.jeloles-alcim { font-size: 1.05rem; margin: 1.4rem 0 0.5rem; }
.jeloles-tabla .jeloles-leiras { max-width: 28rem; color: var(--text-secondary); font-size: 0.88rem; }
.jeloles-tabla tr.halvany td { opacity: 0.55; }
.jeloles-muveletek { white-space: nowrap; }
.jeloles-szerk { display: inline-block; margin-right: 0.6rem; }
.jeloles-szerk[open] { display: block; }
.jeloles-szerk summary { list-style: none; cursor: pointer; display: inline; }
.jeloles-torles { color: var(--danger, #e5484d) !important; }
.jeloles-urlap { display: flex; flex-direction: row; flex-wrap: wrap; gap: 0.6rem 1rem; align-items: flex-end; justify-content: flex-start; margin: 0.6rem 0; padding: 0.8rem;
    border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-secondary); white-space: normal; }
.jeloles-urlap label { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.85rem; color: var(--text-secondary); margin: 0; }
.jeloles-urlap .jeloles-szeles { flex: 1 1 100%; }
.jeloles-urlap .jeloles-pipa { flex-direction: row; align-items: center; gap: 0.4rem; }
.jeloles-urlap textarea { width: 100%; }
.jeloles-eltero { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.jeloles-csak-afa { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; }
.jeloles-csak-afa legend { width: 100%; margin-bottom: 0.2rem; }
.jeloles-szazalek { width: 4.5rem; display: inline-block; }
.jeloles-uj summary { list-style: none; cursor: pointer; margin-top: 0.8rem; }
.jeloles-uj-munka { display: flex; gap: 0.6rem 1rem; flex-wrap: wrap; }
.jeloles-uj-munka[hidden] { display: none; }
.jeloles-jel { display: inline-block; margin-left: 0.35rem; padding: 0.02rem 0.45rem; border-radius: var(--radius-pill); font-size: 0.74rem;
    font-weight: 600; border: 1px solid currentColor; white-space: nowrap; vertical-align: 1px; }
.jeloles-spec { color: #a78bfa; }
.jeloles-munka { color: #38bdf8; }
.jeloles-javasolt { border-style: dashed; font-weight: 500; }
.jeloles-ablak { max-width: 34rem; width: calc(100% - 32px); border: 1px solid var(--border); border-radius: var(--radius);
    background: var(--bg-primary, var(--bg-secondary)); color: var(--text-primary); padding: 1.2rem; }
.jeloles-ablak::backdrop { background: rgba(0, 0, 0, 0.55); }
.jeloles-ablak h2 { font-size: 1.1rem; margin: 0 0 0.3rem; }
.jeloles-ablak form { display: flex; flex-direction: column; gap: 0.7rem; }
.jeloles-ablak label { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.88rem; color: var(--text-secondary); margin: 0; }
.jeloles-szint { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.5rem 0.8rem; margin: 0; }
.jeloles-szint legend { font-size: 0.85rem; color: var(--text-secondary); padding: 0 0.3rem; }
.jeloles-szint label { flex-direction: row; align-items: center; gap: 0.45rem; color: var(--text-primary); }
.jeloles-gombok { display: flex; gap: 0.6rem; justify-content: flex-end; }
.szamla-jelolesek { margin-top: 1rem; padding: 0.9rem 1rem; border: 1px solid var(--border); border-radius: var(--radius); }
.szamla-jelolesek h3 { font-size: 1rem; margin: 0 0 0.5rem; }
.szamla-jelolesek-sor { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: flex-end; margin-bottom: 0.6rem; }
.szamla-jelolesek-sor label { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.82rem; color: var(--text-secondary); margin: 0; }
.szamla-jelolesek table select { min-width: 9rem; }
.szamla-jelolesek .ervenyes { font-size: 0.78rem; color: var(--text-muted); }
.jeloles-urlap > label:not(.jeloles-szeles):not(.jeloles-pipa) { flex: 1 1 14rem; max-width: 22rem; }
.jeloles-urlap input[type="text"], .jeloles-urlap select { width: 100%; }
.jeloles-urlap .jeloles-szazalek { width: 4.5rem; }
.jeloles-urlap .jeloles-uj-munka label { flex: 1 1 12rem; }
.szamla-jelolesek { align-items: stretch; }
.szamla-jelolesek > button { align-self: flex-start; }
.szamla-jeloles-tetelek { display: flex; flex-direction: column; border-top: 1px solid var(--border); margin-bottom: 0.6rem; }
.szamla-jeloles-fej, .szamla-jeloles-sor { display: grid; grid-template-columns: minmax(0, 1fr) 9.5rem 9.5rem; gap: 0.5rem; align-items: center; }
.szamla-jeloles-fej { padding: 0.35rem 0; }
.szamla-jeloles-sor { padding: 0.45rem 0; border-top: 1px solid var(--border); font-size: 0.88rem; }
.szamla-jeloles-sor select { width: 100%; min-width: 0; padding: 0.3rem 0.4rem; font-size: 0.85rem; }
.szamla-jeloles-nev { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) {
    .szamla-jeloles-fej { display: none; }
    .szamla-jeloles-sor { grid-template-columns: 1fr 1fr; }
    .szamla-jeloles-nev { grid-column: 1 / -1; }
}
.szamla-jelolesek-sor label { flex: 1 1 12rem; }
.szamla-jelolesek-sor select { width: 100%; }


/* Számlalista: összeg-szűrő és a speciális ÁFA tömeges hozzárendelése a partnerekhez */
.szamla-eszkoz-sor input.osszeg-bevitel { width: 8.5rem; margin: 0; }
.osszeg-szuro-sor { margin-top: 0.1rem; }
.oszlop-pipa { width: 2rem; text-align: center; }
.oszlop-pipa input { margin: 0; cursor: pointer; }
.tomeges-sav { position: sticky; top: 0.5rem; z-index: 5; margin: 0 0 0.8rem; padding: 0.7rem 1rem; background: var(--bg-card);
    border: 1px solid var(--accent); border-radius: var(--radius); box-shadow: 0 6px 18px rgba(0,0,0,.28); display: flex; flex-direction: column; gap: 0.6rem; }
.tomeges-sav[hidden] { display: none; }
.tomeges-sav-sor { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; }
.tomeges-sav-sor label { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; font-size: 0.82rem; color: var(--text-muted); }
.tomeges-sav-sor select, .tomeges-sav-sor input[type=text] { width: auto; max-width: 17rem; margin: 0; }
.tomeges-sav-sor .uj-ugyfel-gomb { margin: 0; }
.tomeges-sav-sor .uj-ugyfel-gomb:disabled { opacity: 0.45; cursor: not-allowed; }
.tomeges-uj-munka { display: inline-flex; gap: 0.5rem; }
.tomeges-uj-munka[hidden] { display: none; }
.tomeges-db { font-size: 0.9rem; }
.jelolesek-cella { white-space: nowrap; }
.jeloles-jelveny { display: inline-block; font-size: 0.72rem; font-weight: 600; padding: 0.05rem 0.45rem; margin-right: 0.25rem; border-radius: 999px;
    background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); }
.jeloles-jelveny-munka { background: color-mix(in srgb, #6aa7ff 18%, transparent); color: #6aa7ff; }
.jeloles-jelveny-partner { opacity: 0.6; }
.tomeges-sav button.jogcim-link { background: none; border: 0; padding: 0; margin: 0; box-shadow: none; color: var(--accent);
    font: inherit; font-size: 0.85rem; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.tomeges-sav button.jogcim-link:hover { text-decoration: none; }
.tomeges-uj-spec { display: inline-flex; gap: 0.5rem; }
.tomeges-uj-spec[hidden] { display: none; }
.kpi-egyseg { font-size: 0.55em; font-weight: 500; color: var(--text-muted); }
.forras-sav-cella { white-space: nowrap; }
.forras-sav { display: inline-block; width: 9rem; height: 0.55rem; background: color-mix(in srgb, var(--text-muted) 22%, transparent); border-radius: 999px; overflow: hidden; vertical-align: middle; margin-right: 0.4rem; }
.forras-sav > span { display: block; height: 100%; background: var(--accent); border-radius: 999px; }
.forras-sav-figyel > span { background: #f2b84b; }
.javitas-magas { color: #f2b84b; font-weight: 600; }
/* Kis jelölő (speciális ÁFA-kulcs + munkaszám): számla adatlap és jogcímezés */
.tj { position: relative; display: inline-block; }
.tj-gomb { background: none; border: 0; padding: 0; margin: 0; box-shadow: none; color: inherit; font: inherit; cursor: pointer; display: inline-flex; flex-wrap: wrap; gap: 0.25rem; align-items: center; }
.tj-plusz { font-size: 0.72rem; color: var(--text-muted); border: 1px dashed color-mix(in srgb, var(--text-muted) 55%, transparent); border-radius: 999px; padding: 0.02rem 0.45rem; opacity: 0.7; }
.tj-gomb:hover .tj-plusz { opacity: 1; color: var(--accent); border-color: var(--accent); }
.tj-plusz-kicsi { font-size: 0.8rem; line-height: 1.1; padding: 0 0.4rem; font-weight: 700; }
.tj-cim { font-size: 0.75rem; color: var(--text-muted); padding: 0 0.3rem; }
.tj-panel { position: fixed; z-index: 60; left: 0; top: 0; width: min(22rem, 94vw); max-height: 80vh; display: flex; flex-direction: column; gap: 0.35rem; padding: 0.55rem;
    background: var(--bg-card); border: 1px solid var(--accent); border-radius: var(--radius); box-shadow: 0 8px 24px rgba(0,0,0,.35); font-size: 0.9rem; }
.tj-panel[hidden] { display: none; }
.tj-sor, .tj-vissza, .tj-elem { display: flex; align-items: center; gap: 0.6rem; width: 100%; min-height: 44px; margin: 0; padding: 0.4rem 0.7rem; text-align: left;
    background: transparent; border: 1px solid transparent; border-radius: 8px; box-shadow: none; color: var(--text-primary, inherit); font: inherit; cursor: pointer; }
.tj-sor { border-color: var(--border); }
.tj-sor:hover, .tj-elem:hover, .tj-elem-aktiv, .tj-vissza:hover { background: var(--accent-soft); }
.tj-sor-cim { flex: 0 0 5.2rem; color: var(--text-muted); font-size: 0.8rem; }
.tj-sor-ertek { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.tj-sor-nyil { color: var(--text-muted); font-size: 1.2rem; }
.tj-vissza { color: var(--accent); min-height: 38px; }
.tj-kereso { width: 100%; margin: 0; min-height: 44px; font-size: 1rem; }
.tj-lista { overflow-y: auto; max-height: min(50vh, 20rem); display: flex; flex-direction: column; gap: 2px; -webkit-overflow-scrolling: touch; }
.tj-elem-szoveg { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.tj-elem-pipa { color: var(--accent); font-weight: 700; }
.tj-elem-uj { color: var(--accent); border-top: 1px solid var(--border); border-radius: 0 0 8px 8px; margin-top: 4px; }
.tj-nincs { padding: 0.5rem 0.7rem; color: var(--text-muted); font-size: 0.85rem; }
.tj-allapot { min-height: 1em; font-size: 0.75rem; color: var(--text-muted); padding: 0 0.3rem; }
.szamla-jelolo-sav { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1rem; margin: 0.8rem 0 0; font-size: 0.85rem; color: var(--text-muted); }
/* Számlakép-előnézet a jogcímezés számla-fejlécében: rámutatásra nyíló, görgethető, több oldalas */
.kep-ikon-gomb { display: inline-flex; align-items: center; gap: 0.25rem; vertical-align: middle; margin: 0 0.15rem; padding: 0.05rem 0.4rem;
    background: none; border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent); border-radius: 999px; box-shadow: none;
    color: var(--accent); font-size: 0.75rem; line-height: 1.2; cursor: zoom-in; }
.kep-ikon-gomb:hover, .kep-ikon-gomb.nyitva { background: var(--accent-soft); }
.kep-nezo { position: fixed; z-index: 70; width: min(560px, 92vw); max-height: 82vh; display: flex; flex-direction: column;
    background: var(--bg-card); border: 1px solid var(--accent); border-radius: var(--radius); box-shadow: 0 12px 36px rgba(0,0,0,.5); overflow: hidden; }
.kep-nezo[hidden] { display: none; }
.kep-nezo-fej { display: flex; justify-content: space-between; gap: 0.8rem; padding: 0.4rem 0.8rem; font-size: 0.78rem; color: var(--text-muted);
    border-bottom: 1px solid var(--border); }
.kep-nezo-fej a { color: var(--accent); }
.kep-nezo-oldalak { overflow-y: auto; padding: 8px; display: flex; flex-direction: column; gap: 8px; background: #2a2f38; }
.kep-nezo-oldalak img { display: block; width: 100%; height: auto; background: #fff; border-radius: 3px; }
.kep-nezo-ures { padding: 1rem; color: var(--text-muted); font-size: 0.85rem; }
.fizmod-valaszto { width: auto; min-width: 0; margin: 0; padding: 0.1rem 0.4rem; font: inherit; }
.jcs-jeloles-gomb { white-space: nowrap; margin-right: 0.5rem; }
.jcs-muveletek { display: flex; align-items: center; gap: 0.5rem; justify-content: flex-end; }
.jcs-muveletek .jcs-jeloles-gomb { margin: 0; }
@media (max-width: 800px) { .jcs-muveletek { grid-column: 2; justify-content: flex-start; } }
.kep-nezo-fej { align-items: center; }
.kep-nezo-leptet { display: inline-flex; align-items: center; gap: 0.3rem; }
.kep-nezo-leptet[hidden] { display: none; }
.kep-nezo-nyil { min-width: 34px; min-height: 30px; margin: 0; padding: 0 0.5rem; background: transparent; border: 1px solid var(--border); border-radius: 6px; box-shadow: none;
    color: var(--accent); font-size: 1.15rem; line-height: 1; cursor: pointer; }
.kep-nezo-nyil:hover { background: var(--accent-soft); }
.kep-nezo-szamlalo { font-variant-numeric: tabular-nums; color: var(--text-primary, inherit); min-width: 4.5rem; text-align: center; }
.kep-nezo-cim { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kep-nezo-csuszka { width: calc(100% - 16px); margin: 6px 8px 0; flex: 0 0 auto; }
.kep-nezo-csuszka[hidden] { display: none; }
/* Munkaszámok almenü (az oldalsávban) és az analitika */
.oldalsav-almenu-2 { border-bottom: none; }
.oldalsav-almenu-2 > summary { cursor: pointer; list-style: none; user-select: none; }
.oldalsav-almenu-2 > summary::-webkit-details-marker { display: none; }
.oldalsav-almenu-2 > summary::marker { content: ""; }
.oldalsav-almenu-2 > summary::after { content: "▾"; margin-left: auto; font-size: 0.8rem; opacity: .6; transition: transform 0.15s ease; }
.oldalsav-almenu-2:not([open]) > summary::after { transform: rotate(-90deg); }
/* Második szint: beljebb húzva, kisebb jelölőponttal */
.oldalsav-alsor-2 { padding-left: 4.75rem; font-size: 0.82rem; min-height: 38px; }
.oldalsav-alsor-2::before { left: 3.3rem; width: 5px; height: 5px; }
.mszam-valasztok { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; align-items: end; margin: 0.8rem 0 1rem; }
.mszam-valasztok label { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.8rem; color: var(--text-muted); margin: 0; }
.mszam-valasztok select, .mszam-valasztok input[type=text] { margin: 0; min-width: 11rem; }
.mszam-chipek { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.6rem 0 1rem; }
.mszam-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0.8rem; margin: 0.8rem 0 1.2rem; }
.mszam-egyenleg-poz { color: #2fd08a; }
.mszam-egyenleg-neg { color: #ff6b6b; }
.mszam-szekcio-cim { margin: 1.2rem 0 0.4rem; font-size: 1rem; }
.mszam-kizart { opacity: 0.55; }
form.mszam-valasztok { flex-direction: row; max-width: none; width: 100%; align-items: flex-end; }
form.mszam-valasztok label { flex: 0 0 auto; }
form.mszam-valasztok .uj-ugyfel-gomb { margin: 0; }
.jeloles-jelveny-tetel { background: transparent; border: 1px dashed currentColor; }

/* ---------- BI PILOT csomagok (/csomagok) és az Áttekintés ajánlója ---------- */
/* A BI PILOT márkaszíne (a bipilot.hu logójának zöldje) a kiemeléshez. */
:root { --bipilot-zold: #86bf51; --bipilot-zold-halvany: rgba(134, 191, 81, 0.12); --bipilot-zold-gyuru: rgba(134, 191, 81, 0.45); }
:root[data-theme="light"] { --bipilot-zold: #5f9a1f; --bipilot-zold-halvany: rgba(95, 154, 31, 0.10); --bipilot-zold-gyuru: rgba(95, 154, 31, 0.40); }

/* Az Áttekintés ajánlója: feltűnő, de nem tolakodó — zöld (BI PILOT) keret és fény, a cég saját számából vett horog,
   zárolt "csempék", teli gomb; finom fénycsík-animáció (csökkentett mozgásnál kikapcsolva). */
.csomag-ajanlo {
    position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem;
    margin-top: 1.1rem; padding: 1.1rem 1.4rem; border: 1px solid var(--bipilot-zold-gyuru); border-left: 4px solid var(--bipilot-zold);
    border-radius: var(--radius); color: var(--text-secondary); text-decoration: none;
    background:
        radial-gradient(120% 160% at 0% 50%, var(--bipilot-zold-halvany), transparent 55%),
        radial-gradient(80% 140% at 100% 50%, var(--bipilot-zold-halvany), transparent 60%),
        var(--bg-card);
    box-shadow: 0 10px 30px -22px var(--bipilot-zold);
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.csomag-ajanlo::after {
    content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; pointer-events: none;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.07), transparent);
    animation: csomag-ajanlo-feny 7s ease-in-out infinite;
}
@keyframes csomag-ajanlo-feny { 0%, 70% { left: -40%; } 100% { left: 120%; } }
@media (prefers-reduced-motion: reduce) { .csomag-ajanlo::after { animation: none; display: none; } }
.csomag-ajanlo:hover { transform: translateY(-1px); border-color: var(--bipilot-zold); box-shadow: 0 14px 34px -20px var(--bipilot-zold); }
.csomag-ajanlo-logo { flex: none; display: flex; }
.csomag-ajanlo-logo .bipilot-logo { height: 40px; }
.csomag-ajanlo-szoveg { flex: 1 1 26rem; display: flex; flex-direction: column; gap: 0.3rem; min-width: 0; }
.csomag-ajanlo-cim { font-size: 1.12rem; color: var(--text-primary); }
.csomag-ajanlo-horog { font-size: 0.92rem; }
.csomag-ajanlo-horog b { color: var(--bipilot-zold); }
.csomag-ajanlo-cimkek { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.25rem; }
.csomag-ajanlo-cimkek span {
    padding: 0.15rem 0.6rem; border: 1px dashed var(--bipilot-zold-gyuru); border-radius: var(--radius-pill);
    background: var(--bg-input); font-size: 0.76rem; color: var(--text-secondary); white-space: nowrap;
}
.csomag-ajanlo-gomb {
    flex: none; padding: 0.65rem 1.2rem; border-radius: var(--radius-pill); background: var(--bipilot-zold); color: #10210a;
    font-weight: 700; white-space: nowrap; transition: filter 0.15s ease;
}
.csomag-ajanlo:hover .csomag-ajanlo-gomb { filter: brightness(1.08); }

.csomagok-oldal { max-width: 1320px; margin: 0 auto; padding: 0.5rem 0 2.5rem; }
/* A csomag-oldal fejlécének logója: a lábléc sötét / világos logóképei (.bipilot-logo-sotet / -vilagos), nagyobb méretben. */
.csomagok-logo { display: block; width: max-content; margin: 0 auto 0.7rem; }
.csomagok-logo .bipilot-logo { height: 52px; }
.csomagok-cim { margin: 0.2rem 0 0.4rem; text-align: center; font-size: clamp(1.5rem, 2.8vw, 2.2rem); font-weight: 600; }
.csomagok-bevezeto { max-width: 46rem; margin: 0 auto 1.3rem; text-align: center; color: var(--text-secondary); }
.csomagok-bevezeto strong { color: var(--text-primary); }

/* „Kérdezd a saját AI-odat” kiemelés a csomagok fölött: balra élő szöveg, jobbra a Grixi; az oldal változóit követi (világos és sötét téma). */
.grixi-ai {
    box-sizing: border-box; max-width: 1060px; margin: 0 auto 1.8rem; padding: 1.2rem 1.7rem;
    display: grid; grid-template-columns: minmax(0, 1fr) 220px; align-items: center; gap: 1.5rem;
    border: 1px solid var(--bipilot-zold-gyuru); border-radius: 20px;
    background: linear-gradient(110deg, var(--bg-card), var(--bipilot-zold-halvany)); box-shadow: 0 5px 18px rgba(0, 0, 0, 0.1);
}
.grixi-ai h2 { margin: 0 0 0.5rem; font-size: clamp(1.4rem, 2.3vw, 1.8rem); line-height: 1.18; letter-spacing: -0.02em; font-weight: 700; color: var(--text-primary); }
.grixi-ai h2 span { color: var(--bipilot-zold); }
.grixi-ai p { margin: 0.4rem 0; line-height: 1.5; }
.grixi-ai__alcim { font-size: 1rem; color: var(--text-secondary); }
.grixi-ai__pelda { font-size: 0.9rem; font-style: italic; color: var(--text-muted); }
.grixi-ai__lab { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin-top: 0.9rem; }
.grixi-ai__elerheto { max-width: 18rem; font-size: 0.8rem; color: var(--text-muted); }
a.grixi-ai__gomb {
    display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0.55rem 1.15rem;
    border-radius: 9px; background: var(--bipilot-zold); color: #10210a; font-weight: 700; font-size: 0.9rem; text-decoration: none;
}
a.grixi-ai__gomb:hover { filter: brightness(1.08); }
a.grixi-ai__gomb:focus-visible, .csomag-kartya:focus-visible, .grixi-ai-ismerteto:focus-visible { outline: 3px solid var(--bipilot-zold); outline-offset: 3px; }
.grixi-ai__kabala { width: 100%; height: 200px; object-fit: contain; display: block; }
@media (max-width: 600px) {
    .grixi-ai { padding: 1.2rem; gap: 0.6rem; grid-template-columns: 1fr; }
    .grixi-ai__kabala { width: 110px; height: 110px; justify-self: end; grid-row: 1; }
    .grixi-ai h2 { font-size: 1.5rem; }
}
/* A „Hogyan működik?” ismertető (csak valódi tartalommal jelenik meg). */
.grixi-ai-ismerteto { max-width: 60rem; margin: 2rem auto 0; padding: 1.4rem 1.6rem; border: 1px solid var(--border); border-radius: 14px; background: var(--bg-card); }
.grixi-ai-ismerteto h2 { margin: 0 0 0.6rem; font-size: 1.3rem; color: var(--text-primary); }
.grixi-ai-ismerteto p, .grixi-ai-ismerteto li { line-height: 1.55; color: var(--text-secondary); }
.grixi-ai-ismerteto ol, .grixi-ai-ismerteto ul { margin: 0.5rem 0 1rem; padding-left: 1.3rem; }
.grixi-ai-ismerteto__cimke { margin: 0.8rem 0 0; font-weight: 600; color: var(--text-primary); }

.csomag-kapcsolo {
    display: flex; width: max-content; margin: 0 auto 2.2rem; padding: 0.2rem; gap: 0.15rem;
    border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--bg-card);
}
button.csomag-kapcsolo-gomb {
    margin: 0; padding: 0.4rem 1.1rem; border: 0; border-radius: var(--radius-pill); background: transparent;
    color: var(--text-secondary); font-weight: 600; font-size: 0.88rem; cursor: pointer; box-shadow: none;
}
button.csomag-kapcsolo-gomb span {
    margin-left: 0.4rem; padding: 0.05rem 0.4rem; border-radius: var(--radius-pill); background: var(--bipilot-zold-halvany);
    font-weight: 600; font-size: 0.72rem; color: var(--bipilot-zold);
}
button.csomag-kapcsolo-gomb.aktiv { background: var(--bg-input); color: var(--text-primary); box-shadow: inset 0 0 0 1px var(--border); }

.csomag-racs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 1.1rem; align-items: stretch; }
/* Öt csomag: széles képernyőn egy sorban, közepes szélességen 3 + 2, keskenyen kettesével / egymás alatt. */
@media (min-width: 1500px) {
    .csomagok-oldal { max-width: 1580px; }
    .csomag-racs { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1499px) {
    .csomag-racs { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
}
.csomag-kartya {
    position: relative; display: flex; flex-direction: column; padding: 1.5rem 1.35rem 1.35rem;
    border: 1px solid var(--border); border-top: 3px solid var(--border); border-radius: 14px; background: var(--bg-card);
}
.csomag-kartya.kiemelt {
    border-color: var(--bipilot-zold-gyuru); border-top-color: var(--bipilot-zold);
    background: linear-gradient(180deg, var(--bipilot-zold-halvany), var(--bg-card) 38%);
}
.csomag-jelveny {
    position: absolute; top: 0; right: 1.2rem; transform: translateY(-58%);
    padding: 0.25rem 0.75rem; border-radius: var(--radius-pill); background: var(--bipilot-zold); color: #10210a;
    font-size: 0.76rem; font-weight: 700; letter-spacing: 0.03em;
}
.csomag-fej { padding-bottom: 0.9rem; border-bottom: 1px dashed var(--border-subtle); }
.csomag-nev { margin: 0; font-size: 1.35rem; font-weight: 700; letter-spacing: -0.01em; }
.csomag-alcim { min-height: 2.5em; margin: 0.25rem 0 0; font-size: 0.86rem; color: var(--text-muted); }
.csomag-ar { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem 0.45rem; margin-top: 1rem; }
.csomag-osszeg { font-size: 2.1rem; font-weight: 700; line-height: 1.1; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.kiemelt .csomag-osszeg { color: var(--bipilot-zold); }
.csomag-osszeg.csomag-egyedi { font-size: 1.6rem; }
.csomag-egyseg { font-size: 0.9rem; font-weight: 500; color: var(--text-secondary); }
.csomag-egyben { min-height: 1.3em; margin: 0.3rem 0 0; font-size: 0.82rem; color: var(--text-muted); }
.csomag-megjegyzes {
    margin: 0.6rem 0 0; padding: 0.35rem 0.6rem; border-left: 2px solid var(--bipilot-zold); border-radius: 0 6px 6px 0;
    background: var(--bipilot-zold-halvany); font-size: 0.8rem; color: var(--text-secondary);
}
.csomag-funkciok { list-style: none; margin: 1.1rem 0 1.4rem; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; flex: 1; }
.csomag-funkciok li { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.88rem; line-height: 1.35; }
.csomag-funkciok li em { font-style: normal; color: var(--text-muted); }
/* A funkciósor végén a kis „i” és a magyarázata (fölé víve, fókuszra vagy kattintásra jelenik meg; a kártya szélességén belül marad). */
.csomag-funkciok li { position: relative; }
button.csomag-info {
    display: inline-flex; align-items: center; justify-content: center; width: 1.05rem; height: 1.05rem; min-height: 0;
    flex: none; margin: 0.1rem 0 0; padding: 0; border: 1px solid var(--border); border-radius: 50%; background: transparent; box-shadow: none;
    color: var(--text-muted); font: italic 700 0.7rem/1 Georgia, 'Times New Roman', serif; cursor: help;
}
button.csomag-info:hover, button.csomag-info:focus-visible { color: var(--bipilot-zold); border-color: var(--bipilot-zold); background: var(--bipilot-zold-halvany); outline: none; }
.csomag-tip {
    position: absolute; left: 1.75rem; right: 0; bottom: calc(100% + 6px); z-index: 30; padding: 0.55rem 0.7rem;
    border: 1px solid var(--border); border-radius: 8px; background: var(--bg-input); color: var(--text-primary);
    font-size: 0.8rem; font-style: normal; line-height: 1.4; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
    opacity: 0; visibility: hidden; transform: translateY(3px); pointer-events: none;
    transition: opacity 0.12s ease, transform 0.12s ease, visibility 0.12s;
}
button.csomag-info:hover + .csomag-tip, button.csomag-info:focus-visible + .csomag-tip, .csomag-funkciok li.nyitva .csomag-tip {
    opacity: 1; visibility: visible; transform: translateY(0);
}
.csomag-jel {
    flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.15rem; height: 1.15rem;
    margin-top: 0.05rem; border-radius: 50%; font-size: 0.7rem; font-weight: 800;
}
.csomag-funkciok li.van .csomag-jel { background: var(--bipilot-zold-halvany); color: var(--bipilot-zold); }
.csomag-funkciok li.nincs { color: var(--text-muted); }
.csomag-funkciok li.nincs .csomag-jel, .csomag-funkciok li.nincs .csomag-szoveg { opacity: 0.75; } /* nem a teljes sor: a magyarázat ne legyen áttetsző */
.csomag-szoveg { flex: 1; min-width: 0; }
.csomag-funkciok li.nincs .csomag-jel { color: var(--text-muted); }
.csomag-gomb {
    display: block; margin-top: auto; padding: 0.7rem 1rem; border-radius: var(--radius-pill); background: transparent;
    border: 1px solid var(--border); color: var(--text-primary); text-align: center; font-weight: 600;
    text-decoration: none; transition: background 0.15s ease, border-color 0.15s ease;
}
.csomag-gomb:hover { border-color: var(--bipilot-zold); background: var(--bipilot-zold-halvany); }
.csomag-gomb.csomag-gomb-kiemelt { background: var(--bipilot-zold); border-color: var(--bipilot-zold); color: #10210a; }
.csomag-gomb.csomag-gomb-kiemelt:hover { filter: brightness(1.08); background: var(--bipilot-zold); }
.csomag-gomb.csomag-gomb-jelenlegi { color: var(--text-muted); cursor: default; border-style: dashed; }
.csomag-gomb.csomag-gomb-jelenlegi:hover { border-color: var(--border); background: transparent; }
.csomagok-labjegyzet { max-width: 60rem; margin: 2rem auto 0; text-align: center; font-size: 0.8rem; color: var(--text-muted); }
@media (max-width: 640px) {
    .csomag-racs { gap: 1.8rem; }
    .csomag-alcim { min-height: 0; }
}

/* ---------- Áttekintés: bérek és járulékok (08-as bevallás) ---------- */
.berek-kartya { margin-top: 1rem; }
.berek-frissites-urlap { margin: 0; }
button.berek-frissites {
    margin: 0; padding: 0.3rem 0.8rem; border: 1px solid var(--border); border-radius: var(--radius-pill);
    background: transparent; color: var(--text-secondary); font-size: 0.8rem; cursor: pointer; box-shadow: none;
}
button.berek-frissites:hover { color: var(--text-primary); background: var(--tint-hover); }
.berek-uzenet { margin: 0 0 0.6rem; font-size: 0.85rem; color: var(--accent); }
.berek-tabla { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.berek-tabla th { padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--border); text-align: left; font-size: 0.75rem;
    font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; }
.berek-tabla td { padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--border-subtle); white-space: nowrap; }
.berek-tabla .szam { text-align: right; font-variant-numeric: tabular-nums; }
.berek-tabla tbody tr.kijelolt td { background: var(--accent-soft); }
.berek-tabla tbody tr.kijelolt td:first-child { box-shadow: inset 2px 0 0 var(--accent); }
.berek-tabla tfoot td { border-bottom: 0; font-weight: 700; }
.berek-osszesen-cimke { font-weight: 500; color: var(--text-muted); font-size: 0.8rem; }
.berek-tovabbi td { padding-top: 0; font-size: 0.8rem; color: var(--text-muted); white-space: normal; }
.berek-tovabbi span + span::before { content: " · "; }
.berek-beadva { color: var(--text-muted); font-size: 0.82rem; }
.berek-jel { margin-left: 0.35rem; padding: 0.05rem 0.45rem; border-radius: var(--radius-pill); background: var(--tint-hover);
    color: var(--warning); font-size: 0.72rem; }
/* Összecsukható fejléc (alapból csukva) */
.berek-kartya > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1rem; }
.berek-kartya > summary::-webkit-details-marker { display: none; }
.berek-kartya > summary::marker { content: ""; }
.berek-fej-osszeg { font-size: 0.85rem; color: var(--text-secondary); }
.berek-fej-osszeg strong { color: var(--grafikon-ber); }
.berek-nyil { margin-left: auto; color: var(--text-muted); transition: transform 0.15s ease; }
.berek-kartya:not([open]) .berek-nyil { transform: rotate(-90deg); }
.berek-eszkozok { margin-top: 0.7rem; }
.berek-magyarazat { font-size: 0.8rem; color: var(--text-muted); }

/* A bérköltség jogviszony-fajtái (08-as bevallás): munkaviszony, ingatlan-bérbeadás, önálló tevékenység, egyéb, szocho */
:root { --ber-1: #fb7185; --ber-2: #f472b6; --ber-3: #e879f9; --ber-5: #fda4af; --ber-szocho: #be123c; --ber-kiva: #2dd4bf; --ber-nav: #a3e635; }
:root[data-theme="light"] { --ber-1: #e11d48; --ber-2: #db2777; --ber-3: #c026d3; --ber-5: #fb7185; --ber-szocho: #881337; --ber-kiva: #0d9488; --ber-nav: #65a30d; }
.grafikon .ber-1 { fill: var(--ber-1); } .torta-szelet.ber-1 { stroke: var(--ber-1); } .jelmagyarazat-pont.ber-1 { background: var(--ber-1); }
.grafikon .ber-2 { fill: var(--ber-2); } .torta-szelet.ber-2 { stroke: var(--ber-2); } .jelmagyarazat-pont.ber-2 { background: var(--ber-2); }
.grafikon .ber-3 { fill: var(--ber-3); } .torta-szelet.ber-3 { stroke: var(--ber-3); } .jelmagyarazat-pont.ber-3 { background: var(--ber-3); }
.grafikon .ber-5 { fill: var(--ber-5); } .torta-szelet.ber-5 { stroke: var(--ber-5); } .jelmagyarazat-pont.ber-5 { background: var(--ber-5); }
.grafikon .ber-szocho { fill: var(--ber-szocho); } .torta-szelet.ber-szocho { stroke: var(--ber-szocho); } .jelmagyarazat-pont.ber-szocho { background: var(--ber-szocho); }

/* ---------- Ügyfél-hozzáférések (GRIXI Core) és ügyfél-belépés ---------- */
.ceg-valaszto { display: flex; flex-direction: column; gap: 0.5rem; margin: 1rem 0; }
button.ceg-valaszto-gomb { margin: 0; padding: 0.7rem 1rem; text-align: left; border: 1px solid var(--border); border-radius: var(--radius);
    background: var(--bg-card); color: var(--text-primary); font-weight: 600; cursor: pointer; box-shadow: none; }
button.ceg-valaszto-gomb:hover { border-color: var(--accent); background: var(--accent-soft); }
.hozzaferes-email, .hozzaferes-utolso { color: var(--text-muted); font-size: 0.85rem; }
/* A jogosultság-táblázat: sor = jog (csomag-jelöléssel), oszlop = cég, a metszéspontban a pipa. */
.hz-uj { margin: 0.8rem 0 1.5rem; border: 1px solid var(--border); border-radius: var(--radius); padding: 0.2rem 1rem; }
.hz-uj > summary { cursor: pointer; font-weight: 600; padding: 0.6rem 0; }
.hz-uj[open] > summary { border-bottom: 1px solid var(--border-subtle); margin-bottom: 0.8rem; }
.hz-uj-urlap { padding-bottom: 1rem; }
.hz-uj-mezok { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.6rem 1rem; margin-bottom: 1rem; }
.hz-uj-mezok label { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.85rem; }
.hz-db { font-size: 0.8rem; font-weight: 400; color: var(--text-muted); margin-left: 0.5rem; }
.hz-kartya { margin-bottom: 0.8rem; padding: 0; }
.hz-kartya.letiltva { opacity: 0.7; }
.hz-fej { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.9rem; padding: 0.8rem 1rem; cursor: pointer; }
.hz-kartya[open] > .hz-fej { border-bottom: 1px solid var(--border-subtle); }
.hz-cegek { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; }
.hz-ceg-cimke { font-size: 0.78rem; padding: 0.1rem 0.55rem; border-radius: 999px; background: var(--accent-soft); border: 1px solid var(--border-subtle); }
.hz-ceg-cimke.hz-ki { opacity: 0.55; text-decoration: line-through; }
.hz-fej .hozzaferes-utolso { margin-left: auto; }
.hz-torzs { padding: 0.8rem 1rem 1rem; }
.hz-muveletek { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: flex-end; margin-bottom: 0.8rem; }
.hz-muveletek form { margin: 0; }
.hz-tabla-doboz { margin: 0.2rem 0 0.8rem; }
.hz-tabla { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.hz-tabla th, .hz-tabla td { padding: 0.55rem 0.7rem; border-bottom: 1px solid var(--border-subtle); vertical-align: middle; }
.hz-tabla thead th { text-align: center; vertical-align: bottom; border-bottom: 1px solid var(--border); }
.hz-tabla thead th.hz-jog-fej { text-align: left; color: var(--text-muted); font-weight: 600; }
.hz-ceg-fej { min-width: 9.5rem; }
.hz-ceg-nev { font-weight: 700; margin-bottom: 0.4rem; }
.hz-sablonok { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem; margin-bottom: 0.4rem; }
.hz-tabla button.hz-sablon { margin: 0; padding: 0.1rem 0.5rem; font-size: 0.74rem; border: 1px solid var(--border); border-radius: 999px;
    background: transparent; color: var(--text-muted); cursor: pointer; box-shadow: none; }
.hz-tabla button.hz-sablon:hover { color: var(--bipilot-zold); border-color: var(--bipilot-zold); background: var(--bipilot-zold-halvany); }
.hz-aktiv { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.8rem; font-weight: 400; color: var(--text-muted); }
.hz-tabla button.hz-torles { display: block; margin: 0.4rem auto 0; padding: 0; border: 0; background: none; box-shadow: none; font-size: 0.74rem;
    color: var(--text-muted); text-decoration: underline; cursor: pointer; }
.hz-tabla button.hz-torles:hover { color: #d9534f; }
.hz-jog-nev { text-align: left; font-weight: 400; }
.hz-jog-cim { display: block; font-weight: 600; }
.hz-jog-leiras { display: block; margin-top: 0.15rem; font-size: 0.78rem; color: var(--text-muted); max-width: 42rem; }
.hz-csomag { display: inline-block; margin-left: 0.4rem; padding: 0 0.45rem; font-size: 0.68rem; font-weight: 600; border-radius: 999px;
    border: 1px solid var(--border); color: var(--text-muted); vertical-align: 1px; }
.hz-csomag-insight { color: var(--bipilot-zold); border-color: var(--bipilot-zold-gyuru); background: var(--bipilot-zold-halvany); }
.hz-erzekeny { color: #c98a00; border-color: rgba(201, 138, 0, 0.45); }
.hz-hamarosan { opacity: 0.55; }
.hz-pipa { text-align: center; }
.hz-pipa input[type=checkbox] { width: 1.15rem; height: 1.15rem; cursor: pointer; accent-color: var(--bipilot-zold); }
.hz-pipa input[type=checkbox]:disabled { cursor: not-allowed; }
.hz-mentes-sor { display: flex; align-items: center; gap: 1rem; }
.hz-ceg-hozzaadas { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.8rem; margin: 1rem 0 0; padding-top: 0.8rem; border-top: 1px dashed var(--border-subtle); }
.hz-ceg-hozzaadas-cim { font-weight: 600; }
.hozzaferes-jelszo { border-color: var(--bipilot-zold-gyuru, var(--accent-ring)); background: var(--accent-soft); }
.hozzaferes-jelszo-kod { font-size: 1.4rem; letter-spacing: 0.08em; user-select: all; }
.hozzaferes-naplo td { font-size: 0.82rem; white-space: nowrap; }

/* ---------- Áttekintés: "command center" megjelenés (üveges kártyák, színátmenetes oszlopok, fények, mozgás) ---------- */
.attekintes .kpi-kartya, .attekintes .grafikon-kartya {
    position: relative;
    background:
        radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 60%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0) 45%), var(--bg-card);
    border-color: color-mix(in srgb, var(--border) 80%, var(--accent) 20%);
    border-radius: 14px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 14px 34px -22px rgba(0, 0, 0, 0.7);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.attekintes .kpi-kartya:hover, .attekintes .grafikon-kartya:hover {
    border-color: color-mix(in srgb, var(--border) 45%, var(--accent) 55%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 16px 38px -22px color-mix(in srgb, var(--accent) 55%, transparent);
}
:root[data-theme="light"] .attekintes .kpi-kartya, :root[data-theme="light"] .attekintes .grafikon-kartya {
    background: radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 60%), var(--bg-card);
    box-shadow: 0 10px 28px -22px rgba(15, 23, 42, 0.35);
}
.attekintes .grafikon-fejlec .kpi-cim::before, .attekintes .kpi-kartya > .kpi-cim::before {
    content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 0.5rem; border-radius: 50%; vertical-align: 0.12em;
    background: var(--accent); box-shadow: 0 0 8px var(--accent);
}
.attekintes .kpi-ertek:not(.kpi-fizetendo):not(.kpi-levonhato):not(.kpi-halvany) {
    background: linear-gradient(180deg, var(--text-primary) 30%, color-mix(in srgb, var(--accent) 65%, var(--text-primary)));
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.attekintes .kpi-ertek.kpi-fizetendo { text-shadow: 0 0 18px color-mix(in srgb, var(--warning) 45%, transparent); }
.attekintes .kpi-ertek.kpi-levonhato { text-shadow: 0 0 18px color-mix(in srgb, var(--accent) 45%, transparent); }

/* Oszlopdiagram: színátmenetes, lekerekített, finom fényű oszlopok; szaggatott rács; felnövő animáció */
.grafikon .grafikon-penztargep { fill: url(#g-penztargep); }
.grafikon .grafikon-nyugta { fill: url(#g-nyugta); }
.grafikon .grafikon-szamla { fill: url(#g-szamla); }
.grafikon .grafikon-koltseg { fill: url(#g-koltseg); }
.grafikon .ber-1 { fill: url(#g-ber-1); } .grafikon .ber-2 { fill: url(#g-ber-2); } .grafikon .ber-3 { fill: url(#g-ber-3); }
.grafikon .ber-5 { fill: url(#g-ber-5); } .grafikon .ber-szocho { fill: url(#g-ber-szocho); }
.grafikon .grafikon-penztargep, .grafikon .grafikon-nyugta, .grafikon .grafikon-szamla, .grafikon .grafikon-koltseg { filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.06)); }
.grafikon-racs { stroke-dasharray: 2 6; opacity: 0.8; }
.grafikon-honap rect:not(.grafikon-honap-sav) {
    transform-box: fill-box; transform-origin: 50% 100%;
    animation: grafikon-felnov 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) both; animation-delay: calc(var(--i, 0) * 35ms);
    transition: filter 0.15s ease, opacity 0.15s ease;
}
.grafikon-honap:hover rect:not(.grafikon-honap-sav) { filter: brightness(1.18) drop-shadow(0 0 8px rgba(255, 255, 255, 0.22)); }
@keyframes grafikon-felnov { from { transform: scaleY(0); opacity: 0; } to { transform: scaleY(1); opacity: 1; } }
.grafikon-kartya .grafikon, .reszesedes-kartya .torta { overflow: visible; }

/* Lebegő buborék a hónap fölött */
.grafikon-kartya { position: relative; }
.grafikon-tip {
    position: absolute; z-index: 20; min-width: 12.5rem; padding: 0.6rem 0.8rem; pointer-events: none;
    border: 1px solid color-mix(in srgb, var(--border) 50%, var(--accent) 50%); border-radius: 10px;
    background: color-mix(in srgb, var(--bg-card) 88%, transparent); backdrop-filter: blur(8px);
    box-shadow: 0 12px 30px -10px rgba(0, 0, 0, 0.65); font-size: 0.8rem;
}
.grafikon-tip[hidden] { display: none; }
.grafikon-tip-fej { margin-bottom: 0.35rem; font-weight: 700; color: var(--text-primary); }
.grafikon-tip-sor { display: flex; justify-content: space-between; gap: 1.2rem; color: var(--text-secondary); }
.grafikon-tip-ertek { font-weight: 600; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.grafikon-tip-sor.poz .grafikon-tip-ertek { color: var(--accent); }
.grafikon-tip-sor.neg .grafikon-tip-ertek { color: var(--warning); }
.grafikon-tip-sor:last-child { margin-top: 0.3rem; padding-top: 0.3rem; border-top: 1px solid var(--border-subtle); }

/* Gyűrűdiagramok: belépő animáció, fény a szeleteken, színátmenetes középső szám */
.reszesedes-kartya .torta { animation: torta-be 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
@keyframes torta-be { from { opacity: 0; transform: rotate(-25deg) scale(0.9); } to { opacity: 1; transform: none; } }
.torta-szelet { filter: drop-shadow(0 0 3px rgba(255, 255, 255, 0.12)); }
.torta-osszeg { fill: var(--text-primary); }
.reszesedes-tabla tbody tr { border-radius: 6px; }
@media (prefers-reduced-motion: reduce) {
    .grafikon-honap rect:not(.grafikon-honap-sav), .reszesedes-kartya .torta { animation: none; }
}

/* ---------- Ügyfél-fejléc: nagyobb cégnév, adószám- és státusz-címkék (visszafogott) ---------- */
.ugyfel-hero { margin: 0.4rem 0 1.3rem; padding: 0.2rem 0 0.2rem 1rem; border-left: 3px solid var(--accent); }
.ugyfel-hero-nev { margin: 0; border: 0; padding: 0; font-size: clamp(1.3rem, 2.2vw, 1.8rem); line-height: 1.2; font-weight: 700;
    letter-spacing: -0.01em; color: var(--text-primary); overflow-wrap: anywhere; }
.ugyfel-hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; margin-top: 0.45rem; }
.ugyfel-hero-adoszam, .ugyfel-hero-cimke { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.12rem 0.65rem; border-radius: var(--radius-pill);
    font-size: 0.8rem; border: 1px solid var(--border); color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.ugyfel-hero-cimke { border-color: var(--accent-ring); background: var(--accent-soft); color: var(--accent); font-weight: 600; }

/* "Powered by BI PILOT" a fejléc jobb szélén (belépéskor rögtön látszik) */
.ugyfel-hero { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ugyfel-hero-szoveg { min-width: 0; }
.ugyfel-hero-powered { flex: none; display: inline-flex; flex-direction: column; align-items: flex-end; gap: 0.2rem; opacity: 0.7; transition: opacity 0.15s ease; text-decoration: none; }
.ugyfel-hero-powered:hover { opacity: 1; }
.ugyfel-hero-powered-szoveg { font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.ugyfel-hero-powered .bipilot-logo { height: 26px; }
@media (max-width: 560px) { .ugyfel-hero { flex-wrap: wrap; } .ugyfel-hero-powered { flex-direction: row; align-items: center; gap: 0.5rem; } }

/* ---------- Kimaradt sorszámok (Számlák, kimenő) ---------- */
.hezag-doboz { margin: 0.6rem 0 1rem; padding: 0.7rem 1rem; border: 1px solid var(--warning); border-left-width: 4px; border-radius: var(--radius);
    background: color-mix(in srgb, var(--warning) 8%, var(--bg-card)); }
.hezag-doboz > summary { cursor: pointer; }
.hezag-leiras { margin: 0.5rem 0; font-size: 0.85rem; color: var(--text-secondary); }
.hezag-tabla { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.hezag-tabla th { text-align: left; padding: 0.3rem 0.5rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); }
.hezag-tabla td { padding: 0.4rem 0.5rem; border-top: 1px solid var(--border-subtle); vertical-align: middle; }
.hezag-szomszed { color: var(--text-muted); font-size: 0.82rem; }
.hezag-szomszed span { opacity: 0.8; }
.hezag-jel { padding: 0.1rem 0.55rem; border-radius: var(--radius-pill); border: 1px solid var(--warning); color: var(--warning); font-size: 0.75rem; white-space: nowrap; }
.hezag-jel.hezag-nav { border-color: var(--danger, #f87171); color: var(--danger, #f87171); }
.hezag-muveletek { display: flex; flex-wrap: wrap; gap: 0.4rem 0.8rem; justify-content: flex-end; }
.hezag-muveletek form { display: inline-flex; gap: 0.3rem; margin: 0; }
.hezag-megjegyzes { width: 11rem; }
.grafikon .ber-kiva { fill: url(#g-ber-kiva); } .torta-szelet.ber-kiva { stroke: var(--ber-kiva); } .jelmagyarazat-pont.ber-kiva { background: var(--ber-kiva); }
.grafikon .ber-nav { fill: url(#g-ber-nav); } .torta-szelet.ber-nav { stroke: var(--ber-nav); } .jelmagyarazat-pont.ber-nav { background: var(--ber-nav); }

/* GRIXI Core → Google Drive: diszkrét, egysoros mappa-lista */
.drive-sav { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; padding: 0.6rem 0.9rem; margin: 0.5rem 0 1.25rem;
    border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface, transparent); }
.drive-sav-jel { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 600; }
.drive-pont { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--accent); display: inline-block; }
.drive-pont-ki { background: var(--text-muted); }
.drive-kulcs { margin-left: auto; }
.drive-kulcs > summary { cursor: pointer; list-style: none; }
.drive-kulcs textarea { width: 100%; min-width: 22rem; margin: 0.4rem 0; }
.drive-torles-link { color: var(--danger, #e5736d); }
.drive-fej { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 0.5rem; }
.drive-fej h3 { margin: 0; }
.drive-uj { display: flex; flex-direction: row; flex-wrap: wrap; gap: 0.5rem; align-items: center; padding: 0.7rem 0.9rem; margin-bottom: 0.75rem;
    border: 1px dashed var(--accent-ring, var(--border)); border-radius: var(--radius); }
.drive-uj[hidden] { display: none; }
.drive-uj select { min-width: 18rem; }
.drive-uj input[type=text] { flex: 1 1 22rem; min-width: 16rem; }
.drive-lista { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.drive-sor { display: grid; grid-template-columns: minmax(10rem, 2fr) minmax(8rem, 1.2fr) minmax(10rem, 2.4fr) auto; gap: 0.75rem;
    align-items: center; padding: 0.45rem 0.9rem; font-size: 0.9rem; }
.drive-sor + .drive-sor { border-top: 1px solid var(--border); }
.drive-sor:hover { background: var(--accent-soft); }
.drive-nev, .drive-mappa, .drive-allapot { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.drive-nev { font-weight: 600; }
.drive-gombok { display: inline-flex; gap: 0.25rem; justify-content: flex-end; }
.drive-gombok form { margin: 0; }
.drive-gombok button.drive-ikon { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center;
    width: 1.9rem; height: 1.9rem; border-radius: 50%; cursor: pointer; color: var(--text-secondary); font-size: 1rem; line-height: 1;
    border: 1px solid transparent; }
.drive-gombok button.drive-ikon:hover, .drive-gombok button.drive-ikon:focus-visible { border-color: var(--border); color: var(--text-primary, #fff);
    background: var(--accent-soft); }
.drive-gombok button.drive-ikon-torles:hover { color: var(--danger, #e5736d); }
@media (max-width: 720px) {
    .drive-sor { grid-template-columns: 1fr auto; }
    .drive-mappa, .drive-allapot { grid-column: 1 / -1; }
}

/* Számlalista: az oldal- és a kijelölés-összeg sora az összesítő alatt halványabb */
.nav-statusz-tabla tfoot .osszesito-oldal td, .nav-statusz-tabla tfoot .osszesito-kijelolt td { border-top: 1px solid var(--border); font-weight: 600; }
.nav-statusz-tabla tfoot .osszesito-kijelolt td { color: var(--accent); }
.kpi-ertek.kpi-veszteseg { color: var(--danger, #e5736d); }
.kpi-eredmeny-sorok li strong { font-variant-numeric: tabular-nums; }
.hz-ceg-hozzaadas select, .hz-uj-mezok input, .hz-uj-mezok select { width: auto; max-width: 26rem; min-width: 12rem; }
.hz-ceg-hozzaadas button, .hz-mentes-sor button { margin: 0; }
