/* ==========================================================================
   Alcedo Insight – BI réteg (a Cégtár-alap fölött)
   Jégmadár-színvilág: mély éjkék fej · azúr/ciánkék hát · narancs-rozsda mell.
   ========================================================================== */
:root {
    --kf-navy: #0B2545;
    --kf-deep: #0A4D8C;
    --kf-azure: #0A84C6;
    --kf-cyan: #22B5DD;
    --kf-teal: #14A3A8;
    --kf-orange: #F07A2A;
    --kek: #0A84C6;
    --kek-600: #0A6FB0;
    --kek-700: #0A4D8C;
    --narancs: #F07A2A;
    --mely: #0B2545;
    --grad: linear-gradient(135deg, #0A4D8C 0%, #0A84C6 55%, #22B5DD 100%);
    --font-cim: 'Plus Jakarta Sans', 'Inter', ui-sans-serif, system-ui, sans-serif;
    --sidebar-w: 264px;
    --bg: #F4F8FB;
    --border: #E3EBF1;
    --chart-grid: rgba(11, 37, 69, .07);
    --chart-ink: #57708A;
    --szurosav-bg: rgba(255, 255, 255, .86);
}
:root[data-theme="dark"] {
    --bg: #06131F; --surface: #0C2133; --surface-2: #0F283D; --border: #17324A; --border-2: #21425E;
    --chart-grid: rgba(160, 205, 235, .08); --chart-ink: #8FA8BD; --szurosav-bg: rgba(12, 33, 51, .86);
    --topbar-bg: rgba(6, 19, 31, .82);
}
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --bg: #06131F; --surface: #0C2133; --surface-2: #0F283D; --border: #17324A; --border-2: #21425E;
        --chart-grid: rgba(160, 205, 235, .08); --chart-ink: #8FA8BD; --szurosav-bg: rgba(12, 33, 51, .86);
        --topbar-bg: rgba(6, 19, 31, .82);
    }
}

h1, h2, h3, .kpi__ertek, .hero__szam b, .logo-szoveg b, .card__cim, .rp__szam b { font-family: var(--font-cim); }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; }
.link { color: var(--primary); cursor: pointer; font-weight: 600; }
kbd { font: 600 11px var(--font); color: var(--muted); background: var(--surface-2); border: 1px solid var(--border); border-bottom-width: 2px; border-radius: 6px; padding: 1px 6px; }

/* ---------- Oldalsáv ---------- */
.sidebar {
    background:
        radial-gradient(120% 50% at 0% 0%, rgba(34, 181, 221, .30) 0%, rgba(34, 181, 221, 0) 60%),
        radial-gradient(90% 38% at 100% 100%, rgba(240, 122, 42, .20) 0%, rgba(240, 122, 42, 0) 65%),
        linear-gradient(180deg, #0B2545 0%, #081B33 100%);
    color: #B8CCDD; padding: 18px 12px 14px; gap: 2px;
}
.sidebar__logo .logo-mark { filter: drop-shadow(0 8px 18px rgba(34, 181, 221, .45)); }
.logo-szoveg b span { background: linear-gradient(90deg, #3EC3EC, #FFA266); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ceg-valto { display: flex; align-items: center; gap: 10px; margin: 0 4px 6px; padding: 9px 10px; border-radius: 12px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .08); }
.ceg-valto__jel { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; font-weight: 800; color: #0B2545; background: linear-gradient(135deg, #3EC3EC, #FFA266); flex-shrink: 0; }
.ceg-valto__szoveg { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.ceg-valto__szoveg b { color: #fff; font-size: 13px; }
.ceg-valto__szoveg small { color: #7F9AB2; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nav-cim { color: #5E7C98; padding: 14px 12px 5px; }
.nav-link { color: #B8CCDD; padding: 8px 12px; font-size: 13.5px; }
.nav-link.is-aktiv { background: linear-gradient(90deg, rgba(34, 181, 221, .30), rgba(34, 181, 221, .06)); box-shadow: inset 3px 0 0 #3EC3EC; }
.nav-link span:first-of-type { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nav-link__szam.is-hiba { background: #D9434A; color: #fff; }
.sidebar__also { margin-top: 18px; }
.sidebar__szukit { position: absolute; top: 24px; right: -13px; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--muted); display: grid; place-items: center; cursor: pointer; box-shadow: var(--shadow-s); z-index: 2; }
.sidebar { overflow: visible; }
.sidebar > *:not(.sidebar__szukit) { flex-shrink: 0; }
.sidebar { overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .15) transparent; }
@media (min-width: 981px) {
    .app.is-szuk { --sidebar-w: 76px; }
    .app.is-szuk .sidebar { padding-left: 10px; padding-right: 10px; }
    .app.is-szuk .logo-szoveg, .app.is-szuk .ceg-valto__szoveg, .app.is-szuk .nav-link span, .app.is-szuk .nav-cim, .app.is-szuk .sidebar__also { display: none; }
    .app.is-szuk .nav-link { justify-content: center; padding: 10px; }
    .app.is-szuk .ceg-valto { justify-content: center; padding: 8px 4px; }
    .app.is-szuk .sidebar__logo { justify-content: center; padding: 4px 0 16px; }
    .app.is-szuk .sidebar__szukit .ikon { transform: rotate(180deg); }
    .app.is-szuk .nav-cim { display: block; height: 1px; padding: 0; margin: 10px 8px; background: rgba(255, 255, 255, .08); overflow: hidden; color: transparent; }
}
@media (max-width: 980px) { .sidebar__szukit { display: none; } }

/* ---------- Felső sáv ---------- */
.topbar { height: 64px; }
.parancs-nyito { display: flex; align-items: center; gap: 10px; height: 42px; padding: 0 12px 0 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); color: var(--muted-2); font: inherit; font-size: 13.5px; cursor: pointer; text-align: left; box-shadow: var(--shadow-xs); transition: border-color .15s, box-shadow .15s; }
.parancs-nyito:hover { border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-50); }
.parancs-nyito span { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.parancs-nyito kbd { position: static; }
.frissesseg { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px; border-radius: 999px; font-size: 12.5px; color: var(--muted); border: 1px solid var(--border); background: var(--surface); white-space: nowrap; }
.frissesseg b { color: var(--ink); font-weight: 600; }
.frissesseg i { width: 8px; height: 8px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ok) 25%, transparent); animation: pulzus 2.4s infinite; }
.frissesseg--hiba i { background: var(--danger); box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 25%, transparent); }
@keyframes pulzus { 50% { box-shadow: 0 0 0 6px transparent; } }
.ertesitesek > button { position: relative; padding: 0 !important; }
.ertesitesek__jel { position: absolute; top: 2px; right: 1px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: var(--danger); color: #fff; font-size: 10.5px; font-weight: 700; display: grid; place-items: center; border: 2px solid var(--surface); }
.lenyilo--szeles { width: 360px; max-width: calc(100vw - 32px); }
.ertesites { display: flex !important; align-items: flex-start; gap: 10px; white-space: normal !important; }
.ertesites b { display: block; color: var(--ink); font-size: 13px; }
.ertesites small { display: block; color: var(--muted); font-size: 12px; margin-top: 1px; }
.ertesites__pont { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; flex-shrink: 0; }
.ertesites__pont--hiba { background: var(--danger-bg); color: var(--danger-ink); }
.ertesites__pont--figyel { background: var(--warn-bg); color: var(--warn-ink); }
.ertesites--ures { color: var(--ok-ink); padding: 12px 10px; font-size: 13px; align-items: center; }

/* ---------- Parancspaletta ---------- */
.paletta-hatter { position: fixed; inset: 0; z-index: 95; background: rgba(6, 19, 31, .45); backdrop-filter: blur(5px); display: none; align-items: flex-start; justify-content: center; padding: 12vh 16px 16px; }
.paletta-hatter.is-nyitva { display: flex; animation: hatter-be .12s ease-out; }
.paletta { width: 100%; max-width: 640px; background: var(--surface); border: 1px solid var(--border); border-radius: 18px; box-shadow: var(--shadow-l); overflow: hidden; animation: modal-be .18s ease-out; }
.paletta__mezo { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--border); color: var(--muted); }
.paletta__mezo input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-size: 16px; color: var(--ink); }
.paletta__lista { max-height: 52vh; overflow-y: auto; padding: 6px; }
.paletta__cim { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted-2); padding: 10px 12px 4px; }
.paletta__elem { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 10px; color: var(--ink); }
.paletta__elem .ikon { color: var(--muted); }
.paletta__elem small { display: block; color: var(--muted); font-size: 12px; }
.paletta__elem.is-aktiv, .paletta__elem:hover { background: var(--primary-50); color: var(--ink); }
.paletta__elem.is-aktiv .ikon { color: var(--primary); }
.paletta__ures { padding: 28px; text-align: center; color: var(--muted); }
.paletta__lab { display: flex; gap: 16px; padding: 9px 16px; border-top: 1px solid var(--border); background: var(--surface-2); font-size: 12px; color: var(--muted); }

/* ---------- Oldalfej, hero ---------- */
.oldalfej { margin-bottom: 18px; }
.oldalfej__cim { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.oldalfej__ikon { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; color: var(--acc, var(--primary)); background: color-mix(in srgb, var(--acc, var(--primary)) 14%, transparent); flex-shrink: 0; }
.oldalfej__cim .badge { font-family: var(--font); font-size: 12px; }
.avatar--nagy { width: 46px; height: 46px; font-size: 15px; border-radius: 14px; }
.hero--bi {
    background:
        radial-gradient(55% 120% at 100% 0%, rgba(240, 122, 42, .38) 0%, rgba(240, 122, 42, 0) 60%),
        radial-gradient(50% 90% at 0% 100%, rgba(34, 181, 221, .35) 0%, rgba(34, 181, 221, 0) 60%),
        linear-gradient(135deg, #0B2545 0%, #0A4D8C 48%, #0A84C6 78%, #22B5DD 100%);
    box-shadow: 0 24px 48px -24px rgba(10, 77, 140, .75);
    margin-bottom: 16px;
}
.btn--atlatszo { background: rgba(255, 255, 255, .12); }
.info-sav { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 12px; background: var(--info-bg); color: var(--info-ink); border: 1px solid var(--info-border); font-size: 13px; margin-bottom: 16px; }

/* ---------- Szűrősáv és slicerek ---------- */
.szurosav { position: sticky; top: 64px; z-index: 20; margin: 0 0 18px; padding: 10px 12px; border-radius: 16px; background: var(--szurosav-bg); backdrop-filter: saturate(180%) blur(12px); -webkit-backdrop-filter: saturate(180%) blur(12px); border: 1px solid var(--border); box-shadow: var(--shadow-s); }
.szurosav__sor { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.szurosav__ido { display: inline-flex; align-items: center; gap: 6px; padding: 3px 4px 3px 10px; border-radius: 11px; background: var(--surface-2); border: 1px solid var(--border); }
.szurosav__ikon { color: var(--primary); display: inline-flex; }
.szurosav__ido .select, .szurosav__ido .input { border: 0; background-color: transparent; box-shadow: none; }
.szurosav__datumok { display: inline-flex; align-items: center; gap: 4px; }
.szurosav__datumok[hidden] { display: none; }
.szurosav__jobb { margin-left: auto; display: inline-flex; gap: 6px; }
.szurosav__info { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; padding: 0 4px; font-size: 12.5px; color: var(--ink-2); }
.szurosav__info .ikon { color: var(--muted-2); }
.select--sm, .input--sm { height: 32px; font-size: 13px; padding-top: 4px; padding-bottom: 4px; border-radius: 9px; }
.select--sm { padding-right: 30px; background-position: right 8px center; }
.input--sm[type="date"] { padding-left: 6px; padding-right: 4px; width: 138px; }
.slicer { position: relative; }
.slicer > summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 10px 0 12px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface); font-size: 13px; font-weight: 600; color: var(--ink-2); cursor: pointer; user-select: none; transition: border-color .15s, background .15s; }
.slicer > summary::-webkit-details-marker { display: none; }
.slicer > summary:hover { border-color: var(--primary); }
.slicer.is-aktiv > summary { border-color: var(--primary); background: var(--primary-50); color: var(--primary-600); }
.slicer[open] > summary .ikon { transform: rotate(180deg); }
.slicer__db { min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--primary); color: #fff; font-size: 11px; display: grid; place-items: center; }
.slicer__panel { position: absolute; top: calc(100% + 6px); left: 0; z-index: 40; width: 300px; max-width: calc(100vw - 40px); background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-l); overflow: hidden; animation: modal-be .14s ease-out; }
.slicer__kereso { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--border); color: var(--muted-2); }
.slicer__kereso input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; color: var(--ink); }
.slicer__lista { max-height: 300px; overflow-y: auto; padding: 6px; }
.slicer__elem { display: flex; align-items: center; gap: 9px; padding: 7px 8px; border-radius: 8px; cursor: pointer; font-size: 13px; }
.slicer__elem:hover { background: var(--hover-sor); }
.slicer__elem input { accent-color: var(--primary); width: 15px; height: 15px; flex-shrink: 0; }
.slicer__nev { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.slicer__szam { font-size: 11.5px; color: var(--muted-2); font-variant-numeric: tabular-nums; }
.slicer__ures { padding: 16px; color: var(--muted); text-align: center; font-size: 13px; }
.slicer__lab { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-top: 1px solid var(--border); background: var(--surface-2); }
.szuro-chip { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 8px 0 10px; border-radius: 999px; background: var(--primary-50); color: var(--primary-600); font-size: 12px; font-weight: 600; border: 1px solid var(--primary-100); }
.szuro-chip small { color: var(--muted); font-weight: 500; }
.szuro-chip:hover { background: var(--danger-bg); color: var(--danger-ink); border-color: var(--danger-border); }
.szuro-sor { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ---------- KPI ---------- */
.kpi-racs--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.kpi--bi { padding: 16px 18px 14px; gap: 2px; min-height: 152px; }
.kpi--bi::before { height: 3px; }
.kpi--bi .kpi__fej { min-height: 34px; }
.kpi--bi .kpi__felirat { flex: 1; line-height: 1.3; }
.kpi--bi .kpi__ertek { margin-top: 8px; font-size: clamp(22px, 1rem + .9vw, 30px); }
.kpi--bi .kpi__also { display: block; margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--border); }
.kpi--kicsi { min-height: 0; }
.kpi--kicsi .kpi__ertek { font-size: 22px; margin-bottom: 2px; }
a.kpi--bi:hover { color: inherit; }
.kpi__cel { display: block; font-size: 12px; color: var(--muted); margin-top: 6px; }
.kpi__cel b { color: var(--ink); }
.valtozas-jel { display: inline-flex; align-items: center; gap: 3px; padding: 2px 7px; border-radius: 999px; font-size: 11.5px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.valtozas-jel.is-jo { background: var(--ok-bg); color: var(--ok-ink); }
.valtozas-jel.is-rossz { background: var(--danger-bg); color: var(--danger-ink); }
.spark { height: 38px; margin: 6px -4px 0; }
.cel-sav { height: 6px; border-radius: 999px; background: var(--track); overflow: hidden; }
.cel-sav i { display: block; height: 100%; border-radius: inherit; background: var(--ok); transition: width .6s cubic-bezier(.2, .8, .2, 1); }
.cel-sav--figyel i { background: var(--narancs); }
.cel-sav--hiba i { background: var(--danger); }

/* ---------- Diagram-kártyák ---------- */
.bi-racs { margin-top: 16px; }
.diagram-kartya .card__test { padding-top: 10px; }
.diagram-eszkozok { display: flex; align-items: center; gap: 2px; opacity: .55; transition: opacity .15s; }
.diagram-kartya:hover .diagram-eszkozok, .diagram-kartya.is-nagy .diagram-eszkozok { opacity: 1; }
.diagram-tipp { display: inline-grid; place-items: center; width: 26px; height: 26px; color: var(--primary); }
.diagram { width: 100%; }
.diagram-lab { margin-top: 8px; font-size: 12.5px; color: var(--muted); }
.diagram-adattabla { max-height: 320px; overflow: auto; margin-top: 8px; border: 1px solid var(--border); border-radius: 12px; }
.diagram-adattabla table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.diagram-adattabla th, .diagram-adattabla td { padding: 6px 10px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; }
.diagram-adattabla th:first-child, .diagram-adattabla td:first-child { text-align: left; }
.diagram-adattabla th { position: sticky; top: 0; background: var(--surface-2); font-weight: 700; color: var(--muted); font-size: 11.5px; }
.diagram-kartya.is-nagy { position: fixed; inset: 16px; z-index: 92; display: flex; flex-direction: column; box-shadow: var(--shadow-l); }
.diagram-kartya.is-nagy .card__test { flex: 1; display: flex; flex-direction: column; }
.diagram-kartya.is-nagy .diagram { flex: 1; height: auto !important; }
body.van-nagy::after { content: ""; position: fixed; inset: 0; z-index: 91; background: rgba(6, 19, 31, .5); backdrop-filter: blur(3px); }
.ures--kicsi { padding: 34px 16px; }
.ures--kicsi .ikon { color: var(--muted-2); margin-bottom: 6px; }
.ures--kicsi p { margin: 4px 0 0; }

/* ---------- Táblák ---------- */
.tabla--bi th { white-space: nowrap; }
.tabla--tomor td { padding: 9px 11px; }
.tabla .szam, .tabla--bi .szam { text-align: right; font-variant-numeric: tabular-nums; }
.tabla th.szam .rendezo { justify-content: flex-end; }
.tabla-wrap--magas { max-height: 520px; overflow-y: auto; }
.tabla-wrap--magas thead th { position: sticky; top: 0; z-index: 1; background: var(--surface); box-shadow: 0 1px 0 var(--border); }
.rendezo { color: inherit; display: inline-flex; align-items: center; gap: 4px; }
.rendezo.is-aktiv { color: var(--primary); }
[data-rendezheto] th { cursor: pointer; user-select: none; }
[data-rendezheto] th:hover { color: var(--ink); }
[data-rendezheto] th.is-rendezve { color: var(--primary); }
.anyag-pont { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--c); vertical-align: middle; margin-left: 4px; }
.anyag-cimke { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; white-space: nowrap; }
.anyag-cimke::before { content: ""; width: 8px; height: 8px; border-radius: 3px; background: var(--c); }
.minisav { position: relative; display: flex; align-items: center; gap: 8px; min-width: 120px; }
.minisav i { display: block; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--kf-azure), var(--kf-cyan)); }
.minisav span { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.abc { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; font-weight: 800; font-size: 12px; }
.abc--a { background: var(--ok-bg); color: var(--ok-ink); }
.abc--b { background: var(--warn-bg); color: var(--warn-ink); }
.abc--c { background: var(--surface-2); color: var(--muted); }
.sor--negativ td { background: color-mix(in srgb, var(--danger) 6%, transparent); }
.tabla--pivot tfoot td { background: var(--surface-2); border-top: 2px solid var(--border-2); }
.hoterkep-cella { background: color-mix(in srgb, var(--kf-azure) calc(var(--a) * 38%), transparent); }
.tabla-kereso { max-width: 240px; }
.card__lab .lapozo { margin: 0; }

/* ---------- Dashboard elemek ---------- */
.kiemelt-racs { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.kiemelt-riport { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); color: var(--ink); background: var(--surface-2); transition: border-color .15s, transform .15s; }
.kiemelt-riport > .ikon:first-child { color: var(--primary); }
.kiemelt-riport span { flex: 1; min-width: 0; }
.kiemelt-riport b { display: block; font-size: 13.5px; }
.kiemelt-riport small { display: block; color: var(--muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kiemelt-riport:hover, .kiemelt-riport.is-aktiv { border-color: var(--primary); color: var(--ink); transform: translateY(-1px); }
.forras-mini-racs { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.forras-mini { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--border); }
.forras-mini__ikon { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; flex-shrink: 0; color: #fff; }
.forras-mini__szoveg { flex: 1; min-width: 0; }
.forras-mini__szoveg b { display: block; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.forras-mini__szoveg small { color: var(--muted); font-size: 12px; }
.forras-tipus--helyi { background: linear-gradient(135deg, #0A4D8C, #0A84C6); color: #fff; }
.forras-tipus--feltoltes { background: linear-gradient(135deg, #8B7FD1, #B05FC4); color: #fff; }
.forras-tipus--sftp { background: linear-gradient(135deg, #3B4F66, #57708A); color: #fff; }
.forras-tipus--onedrive { background: linear-gradient(135deg, #0364B8, #28A8EA); color: #fff; }
.forras-tipus--gdrive { background: linear-gradient(135deg, #1E9E5A, #F4B400 140%); color: #fff; }
.oldalfej__ikon[class*="forras-tipus--"] { color: #fff; }

/* ---------- Adatforrások ---------- */
.tipus-racs { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.tipus-kartya { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: 18px; background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow-s); color: var(--ink); transition: transform .2s, box-shadow .2s, border-color .2s; }
.tipus-kartya:hover { transform: translateY(-3px); box-shadow: var(--shadow-m); border-color: var(--primary); color: var(--ink); }
.tipus-kartya__ikon { width: 52px; height: 52px; border-radius: 15px; display: grid; place-items: center; margin-bottom: 6px; }
.tipus-kartya b { font-size: 16px; font-family: var(--font-cim); }
.tipus-kartya p { margin: 0; color: var(--muted); font-size: 13px; }
.tipus-kartya__nyil { position: absolute; top: 20px; right: 20px; color: var(--muted-2); }
.forras-racs { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 16px; margin-top: 16px; }
.forras-kartya { display: flex; flex-direction: column; padding: 18px; gap: 12px; }
.forras-kartya__fej { display: flex; align-items: center; gap: 12px; }
.forras-kartya__cim { flex: 1; min-width: 0; }
.forras-kartya__cim b { display: block; color: var(--ink); font-size: 15px; font-family: var(--font-cim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.forras-kartya__cim small { color: var(--muted); font-size: 12px; }
.forras-kartya__adatok { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 6px 10px; margin: 0; font-size: 13px; }
.forras-kartya__adatok dt { color: var(--muted); }
.forras-kartya__adatok dd { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.forras-kartya__uzenet { margin: 0; font-size: 12.5px; color: var(--muted); padding: 8px 10px; border-radius: 10px; background: var(--surface-2); }
.forras-kartya__uzenet.is-hiba { background: var(--danger-bg); color: var(--danger-ink); }
.forras-kartya__lab { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--border); font-size: 12.5px; }
.oauth-kartya { display: flex; align-items: center; gap: 14px; padding: 14px 18px; margin-bottom: 16px; border-color: var(--warn-border); background: var(--warn-bg); }
.oauth-kartya.is-kapcsolt { border-color: var(--ok-border); background: var(--ok-bg); }
.oauth-kartya__ikon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--surface); color: var(--warn-ink); }
.oauth-kartya.is-kapcsolt .oauth-kartya__ikon { color: var(--ok-ink); }
.oauth-kartya__szoveg { flex: 1; min-width: 0; }
.oauth-kartya__szoveg b { display: block; }
.oauth-kartya__szoveg small { color: var(--muted); word-break: break-all; }
.dropzone { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 34px 20px; border: 2px dashed var(--border-2); border-radius: 20px; background: var(--surface); text-align: center; transition: border-color .15s, background .15s; cursor: pointer; }
.dropzone.is-folott { border-color: var(--primary); background: var(--primary-50); }
.dropzone__ikon { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; background: var(--grad); color: #fff; margin-bottom: 6px; box-shadow: 0 12px 24px -10px rgba(10, 132, 198, .7); }
.dropzone b { font-size: 16px; font-family: var(--font-cim); }
.dropzone__allapot:not(:empty) { margin-top: 10px; padding: 8px 14px; border-radius: 10px; background: var(--surface-2); font-size: 13px; }
.figy { margin-top: 4px; font-size: 12px; }
.figy summary { color: var(--warn-ink); cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.figy ul { margin: 6px 0 0; padding-left: 18px; color: var(--muted); max-width: 520px; white-space: normal; }
.idovonal { display: flex; flex-direction: column; }
.idovonal__elem { position: relative; display: flex; gap: 12px; padding: 0 0 14px 0; color: var(--ink); font-size: 13px; }
.idovonal__elem i { width: 10px; height: 10px; border-radius: 50%; margin-top: 5px; flex-shrink: 0; background: var(--muted-2); box-shadow: 0 0 0 3px var(--surface); position: relative; z-index: 1; }
.idovonal__elem::before { content: ""; position: absolute; left: 4.5px; top: 14px; bottom: 0; width: 1px; background: var(--border); }
.idovonal__elem:last-child::before { display: none; }
.idovonal__elem--ok i { background: var(--ok); } .idovonal__elem--hiba i { background: var(--danger); } .idovonal__elem--reszleges i { background: var(--narancs); }
.idovonal__elem small { display: block; color: var(--muted); font-size: 12px; }
.idovonal__elem:hover { color: var(--primary); }
.sablon-racs { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.sablon-kartya { padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); }
.sablon-kartya b { display: flex; align-items: center; gap: 6px; font-size: 13.5px; }
.sablon-kartya small { display: block; color: var(--muted); margin: 4px 0 8px; }
.sablon-kartya__oszlopok { display: flex; flex-wrap: wrap; gap: 4px; }
.sablon-kartya__oszlopok code { font-size: 11px; }
.hiba-lista { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.hiba-lista small { color: var(--danger-ink); }
.naplo-pre { margin: 0; padding: 14px 16px; border-radius: 12px; background: #0B1B2B; color: #CFE3F2; font: 12.5px/1.65 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; word-break: break-word; max-height: 560px; overflow: auto; }
.sugo-lista ol, .sugo-lista ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: var(--ink-2); }
.sugo-lista code { word-break: break-all; }
.mezo--teljes { grid-column: 1 / -1; }

/* ---------- Adatminőség, adatböngésző ---------- */
.minoseg-index { display: flex; flex-direction: column; justify-content: center; }
.minoseg-osszegzes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 18px; }
.minoseg-sor { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 9px; color: var(--ink); font-size: 13px; }
.minoseg-sor:hover { background: var(--hover-sor); color: var(--ink); }
.minoseg-sor__cim { flex: 1; }
.minoseg-sor__jel { width: 24px; height: 24px; border-radius: 8px; display: grid; place-items: center; flex-shrink: 0; }
.minoseg-sor__jel--ok { background: var(--ok-bg); color: var(--ok-ink); }
.minoseg-sor__jel--hiba { background: var(--danger-bg); color: var(--danger-ink); }
.minoseg-sor__jel--figyel { background: var(--warn-bg); color: var(--warn-ink); }
.minoseg-sor__jel--info { background: var(--info-bg); color: var(--info-ink); }
.javaslat { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--primary-50); color: var(--info-ink); font-size: 13px; }
.tabla-kartyak { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.tabla-kartya { display: flex; flex-direction: column; gap: 6px; padding: 16px; color: var(--ink); transition: transform .15s, border-color .15s; }
.tabla-kartya:hover { transform: translateY(-2px); border-color: var(--primary); color: var(--ink); }
.tabla-kartya .cim-ikon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--primary-50); color: var(--primary); }
.tabla-kartya__szam { font: 800 24px var(--font-cim); letter-spacing: -.02em; }
.tabla-kartya__szam small { font: 500 13px var(--font); color: var(--muted); }

/* ---------- Riportépítő ---------- */
.rp { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: start; }
.rp__panel { position: sticky; top: 80px; padding: 16px; display: flex; flex-direction: column; gap: 16px; max-height: calc(100vh - 96px); overflow-y: auto; }
.rp__blokk { display: flex; flex-direction: column; gap: 6px; }
.rp__blokk--sor { flex-direction: row; gap: 8px; }
.rp__blokk--sor > div { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 0; }
.rp__cimke { display: flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); }
.rp__mutatok { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-valaszto input { position: absolute; opacity: 0; pointer-events: none; }
.chip-valaszto span { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--border); font-size: 12.5px; cursor: pointer; background: var(--surface); transition: all .12s; }
.chip-valaszto span small { color: var(--muted-2); font-size: 11px; }
.chip-valaszto input:checked + span { background: var(--primary); border-color: var(--primary); color: #fff; }
.chip-valaszto input:checked + span small { color: rgba(255, 255, 255, .75); }
.chip-valaszto input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 2px; }
.diagram-valaszto { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.diagram-valaszto input { position: absolute; opacity: 0; pointer-events: none; }
.diagram-valaszto span { display: grid; place-items: center; height: 34px; border-radius: 9px; border: 1px solid var(--border); color: var(--muted); cursor: pointer; transition: all .12s; }
.diagram-valaszto input:checked + span { background: var(--primary-50); border-color: var(--primary); color: var(--primary); }
.rp__eredmeny { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.rp__eredmeny .szurosav { margin: 0; }
.rp__osszesito { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.rp__szam { padding: 14px 16px; border-radius: 14px; background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow-xs); }
.rp__szam small { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 700; }
.rp__szam b { display: block; font-size: 22px; margin-top: 4px; font-variant-numeric: tabular-nums; }
.modal--urlap { max-width: 480px; display: flex; flex-direction: column; gap: 14px; }
.modal--urlap h3 { margin-bottom: 4px; }

/* ---------- Felhasználók ---------- */
.szerep-valaszto { display: flex; flex-direction: column; gap: 8px; }
.szerep-opcio { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--border); cursor: pointer; transition: border-color .15s, background .15s; }
.szerep-opcio input { accent-color: var(--primary); }
.szerep-opcio:has(input:checked) { border-color: var(--primary); background: var(--primary-50); }
.szerep-opcio__ikon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--surface-2); color: var(--primary); flex-shrink: 0; }
.szerep-opcio b { display: block; font-size: 13.5px; }
.szerep-opcio small { display: block; color: var(--muted); font-size: 12px; }
.modul-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding-left: 4px; }
.modul-lista.is-tiltott { opacity: .45; pointer-events: none; }
.checkbox-sor { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.checkbox-sor input { accent-color: var(--primary); width: 16px; height: 16px; }

/* ---------- Súgó, változásnapló ---------- */
.folyamat { margin-bottom: 18px; }
.sugo-racs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.sugo-tema > summary { list-style: none; display: flex; align-items: center; gap: 10px; padding: 16px 20px; font: 700 15px var(--font-cim); cursor: pointer; }
.sugo-tema > summary::-webkit-details-marker { display: none; }
.sugo-tema > summary .ikon { color: var(--primary); }
.sugo-tema .card__test { padding-top: 0; font-size: 13.5px; color: var(--ink-2); }
.sugo-tema ul { padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.valtozasnaplo h1 { font-size: 22px; margin-bottom: 10px; }
.valtozasnaplo h2 { font-size: 18px; margin: 18px 0 8px; color: var(--primary); }
.valtozasnaplo h3 { font-size: 14px; margin: 16px 0 6px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.valtozasnaplo ul { padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }

/* ---------- Belépés ---------- */
.auth__muveszet {
    background:
        radial-gradient(60% 60% at 100% 0%, rgba(240, 122, 42, .35) 0%, rgba(240, 122, 42, 0) 60%),
        radial-gradient(60% 70% at 0% 100%, rgba(34, 181, 221, .35) 0%, rgba(34, 181, 221, 0) 60%),
        linear-gradient(160deg, #0B2545 0%, #0A4D8C 60%, #0A84C6 100%) !important;
}

/* ---------- Reszponzív ---------- */
@media (max-width: 1500px) { .kpi-racs--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1200px) {
    .rp { grid-template-columns: 1fr; }
    .rp__panel { position: static; max-height: none; }
    .sugo-racs { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
    .szurosav { top: 64px; }
    .frissesseg { padding: 0 10px; }
    .parancs-nyito kbd, .parancs-nyito span { display: none; }
    .parancs-nyito { width: 42px; padding: 0; justify-content: center; }
    .topbar__jobb { gap: 4px; }
}
@media (max-width: 640px) {
    .kpi-racs--5 { grid-template-columns: 1fr; }
    .szurosav { position: static; }
    .szurosav__jobb { margin-left: 0; }
    .forras-racs { grid-template-columns: 1fr; }
    .minoseg-osszegzes, .modul-lista { grid-template-columns: 1fr; }
    .forras-kartya__adatok { grid-template-columns: 90px minmax(0, 1fr); }
    .slicer__panel { position: fixed; left: 16px; right: 16px; top: auto; width: auto; }
}
@media print {
    body { background: #fff; }
    .szurosav__sor, .diagram-eszkozok, .card__lab, .sidebar__szukit, .paletta-hatter { display: none !important; }
    .szurosav { position: static; box-shadow: none; border: 0; padding: 0; }
    .app { display: block; }
    .content { padding: 0; max-width: none; }
    .card, .kpi { break-inside: avoid; box-shadow: none; }
    .racs-12 { display: block; }
    .racs-12 > * { margin-bottom: 12px; }
    .tabla-wrap--magas { max-height: none; overflow: visible; }
}
.kpi--bi .kpi__also b { display: inline; font-size: inherit; }
.parancs-nyito { flex: 1; max-width: 520px; }
@media (max-width: 980px) { .parancs-nyito { flex: 0 0 42px; } .topbar__jobb { margin-left: auto; } }
@media (max-width: 640px) { .hero--bi .hero__szamok { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .hero--bi .hero__szam { padding: 10px; } .hero--bi .hero__szam b { font-size: 17px; } .hero--bi .hero__szam span { display: none; } }

/* Ütemező főkapcsoló (Rendszer oldal) */
.utemezo-kapcsolo{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2,var(--bg));margin-bottom:12px}
.utemezo-kapcsolo .muted{font-size:12.5px;margin-top:2px}
.utemezo-kapcsolo .btn{flex:none}
@media (max-width:560px){.utemezo-kapcsolo{flex-direction:column;align-items:stretch}}
.szuro-sor .input { width: 230px; }
.szuro-sor .select { width: auto; }
@media (max-width: 640px) { .szuro-sor .input { width: 100%; } }
