/**
 * Légzésmérő PWA — com_nxnlegzes.
 *
 * Minden szabály a .nxl gyökér alá van hatókörözve, hogy a befogadó Joomla
 * sablon stílusaival ne ütközzön. A színek tokenekben élnek, világos és sötét
 * módban külön értékkel.
 */

.nxl {
    --nxl-bg: #f6f7fb;
    --nxl-surface: #ffffff;
    --nxl-surface-2: #eef1f7;
    --nxl-line: #dfe4ee;
    --nxl-ink: #101828;
    --nxl-ink-soft: #667085;
    --nxl-accent: #0f766e;
    --nxl-accent-ink: #ffffff;
    --nxl-early: #e11d48;
    --nxl-usual: #0f766e;
    --nxl-above: #b45309;
    --nxl-peak: #6d28d9;
    --nxl-danger: #b42318;
    --nxl-radius: 16px;
    --nxl-gap: 16px;
    --nxl-tabbar: 64px;

    position: relative;
    box-sizing: border-box;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 0 0 calc(var(--nxl-tabbar) + env(safe-area-inset-bottom, 0px));
    background: var(--nxl-bg);
    color: var(--nxl-ink);
    font-family: inherit;
    -webkit-tap-highlight-color: transparent;
}

@media (prefers-color-scheme: dark) {
    .nxl:not([data-theme="light"]) {
        --nxl-bg: #0b1120;
        --nxl-surface: #131c2f;
        --nxl-surface-2: #1b263d;
        --nxl-line: #28344d;
        --nxl-ink: #e8edf7;
        --nxl-ink-soft: #94a3b8;
        --nxl-accent: #2dd4bf;
        --nxl-accent-ink: #04231f;
        --nxl-early: #fb7185;
        --nxl-usual: #2dd4bf;
        --nxl-above: #fbbf24;
        --nxl-peak: #c4b5fd;
        --nxl-danger: #f87171;
    }
}

.nxl[data-theme="dark"] {
    --nxl-bg: #0b1120;
    --nxl-surface: #131c2f;
    --nxl-surface-2: #1b263d;
    --nxl-line: #28344d;
    --nxl-ink: #e8edf7;
    --nxl-ink-soft: #94a3b8;
    --nxl-accent: #2dd4bf;
    --nxl-accent-ink: #04231f;
    --nxl-early: #fb7185;
    --nxl-usual: #2dd4bf;
    --nxl-above: #fbbf24;
    --nxl-peak: #c4b5fd;
    --nxl-danger: #f87171;
}

.nxl *,
.nxl *::before,
.nxl *::after {
    box-sizing: inherit;
}

/* ------------------------------------------------------------------
   Képernyők
   ------------------------------------------------------------------ */

.nxl-screen {
    display: none;
    flex-direction: column;
    gap: var(--nxl-gap);
    max-width: 560px;
    margin: 0 auto;
    padding: 20px 16px 24px;
}

.nxl-screen.is-active {
    display: flex;
}

.nxl-screen--immersive {
    gap: 0;
    padding: 0;
    max-width: none;
}

.nxl--immersive {
    padding-bottom: 0;
}

.nxl--immersive .nxl-tabbar {
    display: none;
}

/* ------------------------------------------------------------------
   Megjelenítési módok
   ------------------------------------------------------------------ */

/* A <html>-en ül, ezért nem hatóköröz a .nxl alá. */
html.nxl-locked,
html.nxl-locked body {
    overflow: hidden;
}

/*
 * overlay: az app végig a sablon fölött ül. A `position: fixed` bármilyen
 * Joomla-sablonnal működik, nem kell hozzá tmpl=component.
 * component: a sablon eleve kimarad, ott elég a normál folyam.
 */
.nxl[data-display="overlay"] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.nxl[data-display="component"] {
    min-height: 100vh;
    min-height: 100dvh;
}

/*
 * inline: a mérés-képernyők ilyenkor is a képernyő fölé ugranak. A mérés
 * fizikája ezt kívánja — nagy tapfelület, semmi figyelemelterelés —, és így
 * nem kell hozzá külön kiszolgálási mód.
 */
.nxl[data-display="inline"].nxl--immersive .nxl-screen--immersive.is-active {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: var(--nxl-bg);
}

/* ------------------------------------------------------------------
   Fejlécek
   ------------------------------------------------------------------ */

.nxl-hero {
    padding: 16px 0 4px;
}

.nxl-hero__title {
    margin: 0;
    font-size: clamp(1.6rem, 5vw, 2.1rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.nxl-hero__lead {
    margin: 8px 0 0;
    color: var(--nxl-ink-soft);
    font-size: 0.95rem;
}

.nxl-header {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
}

.nxl-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.nxl-header__title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
}

/* ------------------------------------------------------------------
   Eszközkártyák
   ------------------------------------------------------------------ */

.nxl-tools {
    display: grid;
    gap: 12px;
}

.nxl-tool {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 18px;
    border: 1px solid var(--nxl-line);
    border-radius: var(--nxl-radius);
    background: var(--nxl-surface);
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform 0.12s ease, border-color 0.12s ease;
}

.nxl-tool:active {
    transform: scale(0.99);
    border-color: var(--nxl-accent);
}

.nxl-tool__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--nxl-surface-2);
    color: var(--nxl-accent);
    font-size: 1.4rem;
}

.nxl-tool__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.nxl-tool__name {
    font-weight: 600;
}

.nxl-tool__desc {
    color: var(--nxl-ink-soft);
    font-size: 0.85rem;
}

/* ------------------------------------------------------------------
   Értesítő sáv
   ------------------------------------------------------------------ */

.nxl-notice {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--nxl-line);
    border-radius: var(--nxl-radius);
    background: var(--nxl-surface-2);
}

.nxl-notice__text {
    flex: 1 1 200px;
    margin: 0;
    font-size: 0.88rem;
}

.nxl-notice__actions {
    display: flex;
    gap: 8px;
}

/* ------------------------------------------------------------------
   Gombok
   ------------------------------------------------------------------ */

.nxl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 20px;
    border: 1px solid var(--nxl-line);
    border-radius: 12px;
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.nxl-btn--primary {
    border-color: transparent;
    background: var(--nxl-accent);
    color: var(--nxl-accent-ink);
}

.nxl-btn--ghost {
    border-color: transparent;
    background: transparent;
    color: var(--nxl-ink-soft);
}

.nxl-btn--danger {
    border-color: transparent;
    background: transparent;
    color: var(--nxl-danger);
}

.nxl-btn--block {
    width: 100%;
}

.nxl-btn--mini {
    min-height: 36px;
    padding: 0 14px;
    font-size: 0.85rem;
}

.nxl-actions {
    display: grid;
    gap: 10px;
    margin-top: auto;
}

.nxl-actions--row {
    grid-template-columns: 1fr 1fr;
}

/* ------------------------------------------------------------------
   Számlap (CO2)
   ------------------------------------------------------------------ */

.nxl-stage {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    padding: 24px 0;
}

.nxl-dial {
    position: relative;
    width: min(74vw, 300px);
    aspect-ratio: 1;
}

.nxl-dial__svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.nxl-dial__track {
    fill: none;
    stroke: var(--nxl-line);
    stroke-width: 10;
}

.nxl-dial__value {
    fill: none;
    stroke: var(--nxl-usual);
    stroke-width: 10;
    stroke-linecap: round;
    transition: stroke 0.3s ease;
}

.nxl-dial__value[data-zone="early"] {
    stroke: var(--nxl-early);
}

.nxl-dial__value[data-zone="above"] {
    stroke: var(--nxl-above);
}

.nxl-dial__value[data-zone="peak"] {
    stroke: var(--nxl-peak);
}

.nxl-dial__readout {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.nxl-dial__number {
    font-size: clamp(3rem, 16vw, 5rem);
    font-weight: 300;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.nxl-dial__label {
    color: var(--nxl-ink-soft);
    font-size: 0.9rem;
}

/* ------------------------------------------------------------------
   Űrlapok
   ------------------------------------------------------------------ */

.nxl-form {
    display: grid;
    gap: 22px;
}

.nxl-field {
    margin: 0;
    padding: 0;
    border: 0;
}

.nxl-field[hidden] {
    display: none;
}

.nxl-field__label {
    padding: 0 0 10px;
    color: var(--nxl-ink-soft);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.nxl-segmented {
    display: grid;
    grid-auto-flow: column;
    gap: 4px;
    padding: 4px;
    border-radius: 12px;
    background: var(--nxl-surface-2);
}

.nxl-segmented__item {
    min-height: 42px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--nxl-ink-soft);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.nxl-segmented__item.is-active {
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    box-shadow: 0 1px 3px rgba(16, 24, 40, 0.12);
}

.nxl-choices {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.nxl-choices--two {
    grid-template-columns: repeat(2, 1fr);
}

.nxl-choice {
    min-height: 48px;
    border: 1px solid var(--nxl-line);
    border-radius: 12px;
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    font: inherit;
    cursor: pointer;
}

.nxl-choice.is-active {
    border-color: var(--nxl-accent);
    background: var(--nxl-accent);
    color: var(--nxl-accent-ink);
    font-weight: 600;
}

.nxl-stepper {
    display: flex;
    align-items: center;
    gap: 10px;
}

.nxl-stepper__btn {
    width: 48px;
    height: 48px;
    border: 1px solid var(--nxl-line);
    border-radius: 12px;
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
}

.nxl-stepper__input {
    width: 88px;
    height: 48px;
    border: 1px solid var(--nxl-line);
    border-radius: 12px;
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    font: inherit;
    font-size: 1.1rem;
    text-align: center;
}

.nxl-stepper__unit {
    color: var(--nxl-ink-soft);
    font-size: 0.9rem;
}

.nxl-textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--nxl-line);
    border-radius: 12px;
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    font: inherit;
    resize: vertical;
}

.nxl-moods {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
}

.nxl-mood {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 12px 4px;
    border: 1px solid var(--nxl-line);
    border-radius: 12px;
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    font: inherit;
    cursor: pointer;
}

.nxl-mood.is-active {
    border-color: var(--nxl-accent);
    background: var(--nxl-accent);
    color: var(--nxl-accent-ink);
}

.nxl-mood__number {
    font-size: 1.1rem;
    font-weight: 700;
}

.nxl-mood__label {
    font-size: 0.68rem;
    opacity: 0.85;
}

/* ------------------------------------------------------------------
   Mérés (teljes képernyős koppintó felület)
   ------------------------------------------------------------------ */

.nxl-taparea {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    width: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 32px 20px calc(32px + env(safe-area-inset-bottom, 0px));
    border: 0;
    background: var(--nxl-bg);
    color: var(--nxl-ink);
    font: inherit;
    cursor: pointer;
    user-select: none;
}

.nxl-taparea__hint {
    color: var(--nxl-ink-soft);
    font-size: 0.95rem;
    text-align: center;
}

.nxl-taparea__sub {
    color: var(--nxl-ink-soft);
    font-size: 0.9rem;
}

.nxl-taparea__zone {
    min-height: 1.4em;
    color: var(--nxl-usual);
    font-size: 0.95rem;
    font-weight: 600;
}

.nxl-taparea[data-zone="early"] .nxl-taparea__zone {
    color: var(--nxl-early);
}

.nxl-taparea[data-zone="above"] .nxl-taparea__zone {
    color: var(--nxl-above);
}

.nxl-taparea[data-zone="peak"] .nxl-taparea__zone {
    color: var(--nxl-peak);
}

.nxl-bignumber {
    font-size: clamp(4rem, 26vw, 8rem);
    font-weight: 200;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.nxl-pulse {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(62vw, 260px);
    aspect-ratio: 1;
}

.nxl-pulse__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: radial-gradient(circle, var(--nxl-accent) 0%, transparent 72%);
    opacity: 0.35;
}

.nxl-pulse__ring.is-running {
    animation: nxl-breathe var(--nxl-cycle, 4s) ease-in-out infinite;
}

@keyframes nxl-breathe {
    0%,
    100% {
        transform: scale(0.72);
        opacity: 0.25;
    }

    50% {
        transform: scale(1);
        opacity: 0.5;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nxl-pulse__ring.is-running {
        animation: none;
    }
}

.nxl-pulse__number {
    position: relative;
    font-size: clamp(2.6rem, 14vw, 4.5rem);
    font-weight: 300;
    font-variant-numeric: tabular-nums;
}

/* Zóna-sáv: hol tart a futó érték a saját eloszlásban */

.nxl-zonebar {
    display: block;
    width: min(100%, 360px);
    padding: 0 2px;
}

.nxl-zonebar__track {
    position: relative;
    display: block;
    height: 6px;
    border-radius: 999px;
    background: linear-gradient(
        to right,
        var(--nxl-early) 0,
        var(--nxl-early) var(--nxl-p25, 25%),
        var(--nxl-usual) var(--nxl-p25, 25%),
        var(--nxl-usual) var(--nxl-p75, 75%),
        var(--nxl-above) var(--nxl-p75, 75%),
        var(--nxl-above) var(--nxl-p90, 90%),
        var(--nxl-peak) var(--nxl-p90, 90%),
        var(--nxl-peak) 100%
    );
    opacity: 0.45;
}

.nxl-zonebar__tick {
    position: absolute;
    top: -3px;
    width: 2px;
    height: 12px;
    border-radius: 1px;
    background: var(--nxl-bg);
    opacity: 0.8;
}

.nxl-zonebar__tick--p25 {
    left: var(--nxl-p25, 25%);
}

.nxl-zonebar__tick--p75 {
    left: var(--nxl-p75, 75%);
}

.nxl-zonebar__tick--p90 {
    left: var(--nxl-p90, 90%);
}

.nxl-zonebar__marker {
    position: absolute;
    top: 50%;
    left: 0;
    width: 14px;
    height: 14px;
    border: 2px solid var(--nxl-bg);
    border-radius: 50%;
    background: var(--nxl-ink);
    transform: translate(-50%, -50%);
}

.nxl-coldstart {
    max-width: 34ch;
    color: var(--nxl-ink-soft);
    font-size: 0.86rem;
    text-align: center;
}

.nxl-coldstart[hidden],
.nxl-zonebar[hidden] {
    display: none;
}

.nxl-splits {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    width: min(100%, 360px);
    margin-top: 8px;
}

.nxl-split {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 12px;
    border-radius: 12px;
    background: var(--nxl-surface);
}

.nxl-split__label {
    color: var(--nxl-ink-soft);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.nxl-split__value {
    font-size: 1.1rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------------
   Összegzés
   ------------------------------------------------------------------ */

.nxl-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.nxl-summary__item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 16px;
    border: 1px solid var(--nxl-line);
    border-radius: var(--nxl-radius);
    background: var(--nxl-surface);
}

.nxl-summary__item--total {
    grid-column: 1 / -1;
    border-color: var(--nxl-accent);
}

.nxl-summary__label {
    color: var(--nxl-ink-soft);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.nxl-summary__value {
    font-size: 1.7rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.nxl-context-hint {
    margin: 0;
    color: var(--nxl-ink-soft);
    font-size: 0.9rem;
    text-align: center;
}

/* ------------------------------------------------------------------
   Előzmények
   ------------------------------------------------------------------ */

.nxl-history {
    display: grid;
    gap: 12px;
}

.nxl-empty {
    margin: 32px 0;
    color: var(--nxl-ink-soft);
    text-align: center;
}

/* Trend-kártya */

.nxl-trend {
    padding: 16px;
    border: 1px solid var(--nxl-line);
    border-radius: var(--nxl-radius);
    background: var(--nxl-surface);
}

.nxl-trend__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.nxl-trend__title {
    color: var(--nxl-ink-soft);
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.nxl-trend__change {
    font-size: 1rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.nxl-trend[data-direction="up"] .nxl-trend__change {
    color: var(--nxl-usual);
}

.nxl-trend[data-direction="down"] .nxl-trend__change {
    color: var(--nxl-above);
}

.nxl-trend[data-direction="flat"] .nxl-trend__change {
    color: var(--nxl-ink-soft);
}

.nxl-trend__filter {
    display: grid;
    grid-auto-flow: column;
    gap: 4px;
    margin-top: 12px;
    padding: 3px;
    border-radius: 10px;
    background: var(--nxl-surface-2);
}

.nxl-trend__mode {
    min-height: 34px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--nxl-ink-soft);
    font: inherit;
    font-size: 0.8rem;
    cursor: pointer;
}

.nxl-trend__mode.is-active {
    background: var(--nxl-surface);
    color: var(--nxl-ink);
    font-weight: 600;
}

.nxl-trend__empty {
    margin: 16px 0 0;
    color: var(--nxl-ink-soft);
    font-size: 0.86rem;
    text-align: center;
}

.nxl-trend__chart {
    display: block;
    width: 100%;
    height: 110px;
    margin: 12px 0 8px;
    overflow: visible;
}

.nxl-trend__line {
    fill: none;
    stroke: var(--nxl-accent);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.nxl-trend__area {
    fill: var(--nxl-accent);
    opacity: 0.12;
    stroke: none;
}

.nxl-trend__dots circle {
    fill: var(--nxl-accent);
    opacity: 0.55;
}

.nxl-trend__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--nxl-ink-soft);
    font-size: 0.74rem;
    font-variant-numeric: tabular-nums;
}

.nxl-card {
    padding: 16px;
    border: 1px solid var(--nxl-line);
    border-radius: var(--nxl-radius);
    background: var(--nxl-surface);
}

.nxl-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.nxl-card__title {
    font-weight: 600;
}

.nxl-card__meta {
    color: var(--nxl-ink-soft);
    font-size: 0.82rem;
}

.nxl-card__delete {
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: var(--nxl-surface-2);
    color: var(--nxl-ink-soft);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.nxl-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.nxl-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--nxl-surface-2);
    font-size: 0.8rem;
}

.nxl-stat__value {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.nxl-rounds {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.nxl-round {
    display: grid;
    grid-template-columns: 28px 1fr 1fr 1fr;
    gap: 8px;
    padding: 6px 0;
    border-top: 1px solid var(--nxl-line);
    color: var(--nxl-ink-soft);
    font-size: 0.86rem;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.nxl-round span:first-child {
    text-align: left;
}

.nxl-round strong {
    color: var(--nxl-ink);
}

.nxl-card__note {
    margin: 12px 0 0;
    color: var(--nxl-ink-soft);
    font-size: 0.86rem;
}

/* ------------------------------------------------------------------
   Fiók
   ------------------------------------------------------------------ */

.nxl-rows {
    display: grid;
    gap: 2px;
    overflow: hidden;
    border: 1px solid var(--nxl-line);
    border-radius: var(--nxl-radius);
}

.nxl-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    background: var(--nxl-surface);
}

.nxl-row span {
    color: var(--nxl-ink-soft);
    font-size: 0.88rem;
}

.nxl-fineprint {
    margin: 4px 0 0;
    color: var(--nxl-ink-soft);
    font-size: 0.8rem;
}

.nxl-error {
    margin: 8px 0 0;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--nxl-surface-2);
    color: var(--nxl-ink);
    font-size: 0.86rem;
}

.nxl-syncbar {
    display: flex;
    justify-content: center;
    margin-top: 8px;
}

.nxl-chip {
    padding: 8px 16px;
    border: 1px solid var(--nxl-line);
    border-radius: 999px;
    background: var(--nxl-surface);
    color: var(--nxl-ink-soft);
    font: inherit;
    font-size: 0.82rem;
    cursor: pointer;
}

/* ------------------------------------------------------------------
   Alsó navigáció
   ------------------------------------------------------------------ */

.nxl-tabbar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 20;
    display: grid;
    grid-auto-flow: column;
    height: calc(var(--nxl-tabbar) + env(safe-area-inset-bottom, 0px));
    padding-bottom: env(safe-area-inset-bottom, 0px);
    border-top: 1px solid var(--nxl-line);
    background: var(--nxl-surface);
}

.nxl-tabbar__item {
    border: 0;
    background: transparent;
    color: var(--nxl-ink-soft);
    font: inherit;
    font-size: 0.82rem;
    cursor: pointer;
}

.nxl-tabbar__item.is-active {
    color: var(--nxl-accent);
    font-weight: 600;
}
