:root {
    --k56p-navy: #202a4d;
    --k56p-navy-soft: #4f5a7b;
    --k56p-canvas: #f2f9fa;
    --k56p-panel: #ffffff;
    --k56p-soft: #edf5f6;
    --k56p-line: #cbe5e8;
    --k56p-team-color: #58c4c7;
    --k56p-team-contrast: #17213f;
    --k56p-crew-color: #58c4c7;
    --k56p-crew-contrast: #17213f;
    --k56p-card-color: #58c4c7;
    --k56p-card-contrast: #17213f;
    --k56p-shadow: 0 18px 46px rgba(25, 51, 73, .10);
    --k56p-radius: 26px;
    --k56p-gap: clamp(18px, 2.2vw, 30px);
}

.k56p-surface,
.k56p-surface *,
.k56p-dialog,
.k56p-dialog *,
.k56p-avatar-picker,
.k56p-avatar-picker * {
    box-sizing: border-box;
}

.k56p-surface {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    color: var(--k56p-navy);
    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;
}

.k56p-flight-team,
.k56p-surface .k56p-flight-team {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 0;
    gap: var(--k56p-gap);
    border: 0;
    border-radius: 0;
    background: transparent;
}

.k56p-flight-team > *,
.k56p-surface .k56p-flight-team > *,
.k56p-flight-team__full,
.k56p-flight-team__header,
.k56p-group,
.k56p-profile-group,
.k56p-profile-group > *,
.k56p-card-grid,
.k56p-card-host,
.k56p-card,
.k56p-visibility {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-inline: 0;
}

.k56p-surface :is(.elementor-widget, .elementor-widget-container, .elementor-shortcode) {
    width: 100%;
    max-width: none;
    min-width: 0;
}

.k56p-team-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.k56p-eyebrow {
    margin: 0 0 6px;
    color: color-mix(in srgb, var(--k56p-team-color) 68%, var(--k56p-navy));
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.4;
    text-transform: uppercase;
}

.k56p-team-heading h2,
.k56p-profile-group h3,
.k56p-card h4,
.k56p-dialog h2,
.k56p-avatar-picker h3,
.k56p-visibility h3 {
    margin: 0;
    color: var(--k56p-navy);
    font-family: inherit;
    font-weight: 750;
    letter-spacing: -.025em;
    line-height: 1.12;
}

.k56p-team-heading h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.k56p-team-number { margin: 4px 0 0; color: var(--k56p-navy-soft); font-size: 1.16rem; font-weight: 700; }
.k56p-team-station { margin: 5px 0 0; color: var(--k56p-navy-soft); }
.k56p-station-logo { width: min(270px, 28vw); aspect-ratio: 3 / 1; object-fit: contain; object-position: right center; }

.k56p-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    gap: 12px;
}

.k56p-metric {
    display: flex;
    align-items: center;
    min-height: 72px;
    gap: 14px;
    padding: 14px 18px;
    border: 1px solid color-mix(in srgb, var(--k56p-team-color) 60%, white);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 14px rgba(31, 61, 78, .055);
}

.k56p-metric .k56p-icon { width: 28px; height: 28px; color: color-mix(in srgb, var(--k56p-team-color) 82%, var(--k56p-navy)); }
.k56p-metric span { display: flex; flex-direction: column; min-width: 0; color: var(--k56p-navy-soft); font-size: .86rem; line-height: 1.15; }
.k56p-metric strong { color: var(--k56p-navy); font-size: 1.45rem; line-height: 1; }

.k56p-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    gap: 10px;
    padding: 12px 18px;
    border: 2px solid transparent;
    border-radius: 15px;
    font-family: inherit;
    font-size: .9rem;
    font-weight: 750;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.k56p-button:hover { transform: translateY(-1px); filter: saturate(1.05); box-shadow: 0 8px 20px rgba(30,50,75,.12); }
.k56p-button:focus-visible,
.k56p-icon-button:focus-visible,
.k56p-dialog__close:focus-visible,
.k56p-avatar-option:focus-visible { outline: 3px solid #202a4d; outline-offset: 3px; }
.k56p-button .k56p-icon { width: 22px; height: 22px; }
.k56p-button--wide { width: 100%; grid-column: 1 / -1; }
.k56p-button--primary { color: var(--k56p-crew-contrast) !important; background: var(--k56p-crew-color); }
.k56p-button--secondary { color: var(--k56p-navy) !important; border-color: var(--k56p-line); background: #fff; }
.k56p-button--card { color: var(--k56p-navy) !important; border-color: #16bcca; background: #fff; }
.k56p-button--card:hover { background: #e9fbfc; }
.k56p-button--card.k56p-button--wide {
    color: var(--k56p-card-contrast) !important;
    border-color: transparent;
    background: var(--k56p-card-color);
}
.k56p-card-host--crew .k56p-button--card.k56p-button--wide {
    background: linear-gradient(90deg, #28d8d8, #36cbd3);
}

.k56p-profile-group { display: flex; flex-direction: column; gap: 14px; }
.k56p-profile-group h3 { padding-inline: 2px; font-size: clamp(1.35rem, 2.2vw, 1.75rem); }
.k56p-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--k56p-gap); }

.k56p-card-host { --k56p-card-color: var(--k56p-crew-color); --k56p-card-contrast: var(--k56p-crew-contrast); }
.k56p-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    gap: 15px;
    overflow: visible;
    padding: 30px 24px 24px;
    border: 1px solid #e0eaec;
    border-radius: var(--k56p-radius);
    background: var(--k56p-panel);
    box-shadow: var(--k56p-shadow);
}

.k56p-card > *,
.k56p-card :is(.k56p-card__metric-grid, .k56p-card__ranking, .k56p-card__missions, .k56p-card__actions) { width: 100%; min-width: 0; }

.k56p-card__edge {
    position: absolute;
    z-index: 0;
    inset: 0 0 auto;
    height: 8px;
    border-radius: var(--k56p-radius) var(--k56p-radius) 0 0;
    background: var(--k56p-card-color);
}

.k56p-card__tools {
    position: absolute;
    z-index: 4;
    inset: 20px 20px auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    pointer-events: none;
}

.k56p-card__tools > * { pointer-events: auto; }
.k56p-card__identity { min-height: 126px; padding-top: 56px; padding-right: 152px; }
.k56p-card__identity h4 { max-width: 100%; overflow-wrap: anywhere; font-size: clamp(1.65rem, 3vw, 2.25rem); }
.k56p-card__number { margin: 5px 0 0; color: var(--k56p-navy-soft); overflow-wrap: anywhere; }

.k56p-avatar {
    display: grid;
    place-items: center;
    width: 144px;
    height: 144px;
    overflow: hidden;
    margin-top: -66px;
    border: 7px solid #fff;
    border-radius: 50%;
    color: #fff;
    background: radial-gradient(circle at 25% 20%, #6ed4d5, #4d51b8 58%, #f2ae38);
    box-shadow: 0 15px 30px rgba(31,44,72,.18);
    font-size: 1.65rem;
    font-weight: 800;
}

.k56p-avatar img { width: 100%; height: 100%; object-fit: cover; }
.k56p-icon-button {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid #d3e5e8;
    border-radius: 50%;
    color: var(--k56p-navy);
    background: #eaf4f6;
    box-shadow: 0 5px 12px rgba(31,44,72,.06);
    cursor: pointer;
}
.k56p-icon-button .k56p-icon { width: 25px; height: 25px; }

.k56p-card-menu { position: relative; }
.k56p-card-menu__panel {
    position: absolute;
    z-index: 20;
    top: 54px;
    left: 0;
    display: grid;
    min-width: 190px;
    padding: 8px;
    border: 1px solid #dce8ea;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 16px 32px rgba(24,43,68,.18);
}
.k56p-card-menu__panel[hidden] { display: none; }
.k56p-card-menu__action { display: flex; align-items: center; gap: 9px; padding: 11px; border-radius: 9px; color: var(--k56p-navy); text-decoration: none; }
.k56p-card-menu__action:hover { background: var(--k56p-soft); }
.k56p-card-menu__action.is-danger { color: #a82142; }
.k56p-card-menu__action .k56p-icon { width: 19px; height: 19px; }

.k56p-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.k56p-chip { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 13px; border-radius: 999px; color: var(--k56p-navy); background: color-mix(in srgb, var(--k56p-card-color) 18%, white); font-size: .86rem; font-weight: 700; }

.k56p-card__metric-grid,
.k56p-card__balances { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.k56p-balance { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; min-height: 82px; gap: 12px; padding: 13px 14px; border: 1px solid color-mix(in srgb, var(--k56p-card-color) 48%, white); border-radius: 15px; color: var(--k56p-navy); background: color-mix(in srgb, var(--k56p-card-color) 7%, white); text-decoration: none !important; }
.k56p-balance > .k56p-icon { width: 30px; height: 30px; color: color-mix(in srgb, var(--k56p-card-color) 76%, var(--k56p-navy)); }
.k56p-balance span { display: flex; flex-direction: column; min-width: 0; }
.k56p-balance strong { font-size: 1.45rem; line-height: 1; }
.k56p-balance b { font-size: .9rem; }
.k56p-balance small { color: var(--k56p-navy-soft); font-size: .72rem; }

.k56p-progress,
.k56p-ranking,
.k56p-missions {
    padding: 15px 17px;
    border: 1px solid color-mix(in srgb, var(--k56p-card-color) 40%, white);
    border-radius: 17px;
    background: color-mix(in srgb, var(--k56p-card-color) 6%, white);
}
.k56p-progress__top { display: grid; grid-template-columns: minmax(110px,.7fr) minmax(0,1.3fr); gap: 14px; }
.k56p-progress__top span { display: flex; flex-direction: column; min-width: 0; }
.k56p-progress__top span + span { padding-left: 14px; border-left: 1px solid color-mix(in srgb, var(--k56p-card-color) 44%, white); }
.k56p-progress small { color: var(--k56p-navy-soft); }
.k56p-progress strong { overflow-wrap: anywhere; font-size: 1.2rem; }
.k56p-progress p { margin: 9px 0; color: var(--k56p-navy-soft); font-size: .9rem; }
.k56p-progressbar { position: relative; display: block; height: 24px; overflow: hidden; border-radius: 999px; background: #dfe7e9; }
.k56p-progressbar > span { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--k56p-card-color); }
.k56p-progressbar > strong { position: relative; z-index: 1; display: grid; place-items: center; height: 100%; color: var(--k56p-card-contrast); font-size: .86rem; }

.k56p-ranking h5,
.k56p-missions h5 { margin: 0 0 10px; color: var(--k56p-navy-soft); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.k56p-ranking__cells,
.k56p-missions__cells { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.k56p-ranking__cells > span { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 2px 8px; text-align: center; }
.k56p-ranking__cells > span + span,
.k56p-missions__cells > a + a { border-left: 1px solid color-mix(in srgb, var(--k56p-card-color) 42%, white); }
.k56p-ranking__cells small { min-height: 2.2em; color: var(--k56p-navy-soft); line-height: 1.1; }
.k56p-ranking__cells strong { margin-top: 4px; font-size: 1.35rem; }
.k56p-missions__cells > a { display: flex; align-items: center; justify-content: center; min-width: 0; gap: 8px; padding: 5px 8px; color: var(--k56p-navy); text-decoration: none; }
.k56p-missions__cells .k56p-icon { width: 25px; height: 25px; flex: 0 0 auto; }
.k56p-missions__cells span { display: flex; flex-direction: column; min-width: 0; font-size: .78rem; line-height: 1.1; }
.k56p-missions__cells strong { margin-top: 3px; font-size: 1.05rem; }
.k56p-card__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }

/*
 * Elementor Atomic v4 ships intentionally visible base values for new nodes
 * (10px padding, a three-column/two-row grid and 20px gaps).  The Kolibri
 * templates use those nodes semantically, while this stylesheet owns their
 * finished component layout.  Keep the reset scoped to the platform surface
 * so normal Atomic elements elsewhere on the site remain untouched.
 */
.elementor .k56p-flight-team {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    gap: var(--k56p-gap);
}

.elementor .k56p-flight-team__header,
.elementor .k56p-flight-team__full,
.elementor .k56p-group {
    display: block;
    padding: 0;
}

.elementor .k56p-metric-grid,
.elementor .k56p-card__metric-grid,
.elementor .k56p-card__balances,
.elementor .k56p-card__actions {
    display: block;
    padding: 0;
    column-gap: 0;
    row-gap: 0;
    grid-template-columns: none;
    grid-template-rows: none;
}

.k56p-metric-grid > .elementor-widget > .elementor-shortcode {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.k56p-card__metric-grid > .elementor-widget > .elementor-shortcode,
.k56p-card__balances > .elementor-widget > .elementor-shortcode,
.k56p-card__actions > .elementor-widget > .elementor-shortcode {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
}

.elementor .k56p-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 15px;
    padding: 30px 24px 24px;
}

.elementor .k56p-card__edge {
    display: block;
    padding: 0;
}

.elementor .k56p-card__tools {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0;
    padding: 0;
}

.elementor .k56p-card__identity {
    display: block;
    min-height: 126px;
    padding: 56px 152px 0 0;
}

.elementor .k56p-card__progress,
.elementor .k56p-card__ranking,
.elementor .k56p-card__missions {
    display: block;
    padding: 0;
}

.k56p-visibility-panel { width: 100%; border: 1px solid var(--k56p-line); border-radius: 18px; background: #fff; overflow: hidden; }
.k56p-visibility-panel > summary { display: flex; align-items: center; gap: 14px; min-height: 58px; padding: 12px 20px; color: var(--k56p-navy); font-size: 1rem; font-weight: 750; list-style: none; cursor: pointer; }
.k56p-visibility-panel > summary::-webkit-details-marker { display: none; }
.k56p-visibility-panel > summary::after { content: ''; width: 10px; height: 10px; margin-left: auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .18s ease; }
.k56p-visibility-panel[open] > summary::after { transform: rotate(225deg); }
.k56p-visibility-panel > summary:focus-visible { outline: 3px solid var(--k56p-navy); outline-offset: -3px; }
.k56p-visibility-panel > summary small { color: var(--k56p-navy-soft); font-size: .84rem; font-weight: 600; }
.k56p-visibility { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: 20px 30px; padding: clamp(20px, 3vw, 30px); border-top: 1px solid var(--k56p-line); background: #fff; }
.k56p-visibility h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); }
.k56p-visibility p:not(.k56p-eyebrow) { margin: 10px 0 0; color: var(--k56p-navy-soft); font-size: .98rem; line-height: 1.5; }
.k56p-visibility__choices { display: grid; gap: 8px; min-width: 0; }
.k56p-toggle { display: flex; align-items: center; gap: 14px; min-width: 0; min-height: 56px; padding: 9px 12px; border: 1px solid var(--k56p-line); border-radius: 14px; color: var(--k56p-navy); background: var(--k56p-soft); cursor: pointer; }
.k56p-toggle:has(input:checked) { border-color: #8bc9ce; background: #e6f5f5; }
.k56p-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.k56p-toggle > span { position: relative; flex: 0 0 56px; width: 56px; height: 32px; border: 2px solid #8b9ba5; border-radius: 999px; background: #d8e2e6; transition: background .18s ease, border-color .18s ease; }
.k56p-toggle > span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.22); transition: transform .18s ease; }
.k56p-toggle input:checked + span { border-color: #007f87; background: #007f87; }
.k56p-toggle input:checked + span::after { transform: translateX(24px); }
.k56p-toggle input:focus-visible + span { outline: 3px solid var(--k56p-navy); outline-offset: 3px; }
.k56p-toggle b { min-width: 0; color: var(--k56p-navy); font-size: .98rem; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.k56p-visibility__save { grid-column: 2; justify-self: start; }

.k56p-empty,
.k56p-notice { width: 100%; padding: 18px; border: 1px dashed var(--k56p-line); border-radius: 15px; color: var(--k56p-navy-soft); background: rgba(255,255,255,.65); }

/* Standard dialog shell */
.k56p-dialog {
    width: min(920px, calc(100vw - 40px));
    max-width: none;
    max-height: min(860px, calc(100dvh - 40px));
    padding: 0;
    border: 0;
    border-radius: 24px;
    color: var(--k56p-navy);
    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;
    background: #fff;
    box-shadow: 0 32px 90px rgba(14,31,50,.34);
}
.k56p-dialog:not([open]) { display: none !important; }
.k56p-dialog::backdrop { background: rgba(20,36,48,.68); backdrop-filter: blur(3px); }
.k56p-dialog__frame,
.k56p-dialog-template { display: grid; grid-template-rows: auto minmax(0,1fr) auto; width: 100%; max-height: inherit; overflow: hidden; }
.k56p-dialog .k56p-dialog__frame > .elementor {
    width: 100%;
    min-height: 0;
    max-height: inherit;
    overflow: hidden;
}
.k56p-dialog .k56p-dialog__frame .k56p-dialog-template {
    display: grid;
    grid-template-rows: auto minmax(0,1fr) auto;
    width: 100%;
    min-height: 0;
    max-height: inherit;
    overflow: hidden;
}
.elementor .k56p-dialog-template {
    display: grid;
    grid-template-rows: auto minmax(0,1fr) auto;
    width: 100%;
    min-height: 0;
    max-height: inherit;
    margin: 0;
    padding: 0;
    gap: 0;
    overflow: hidden;
}
.k56p-dialog-template > *,
.k56p-dialog-template :is(.elementor-widget, .elementor-widget-container, .elementor-shortcode) { width: 100%; min-width: 0; }
.k56p-dialog__header,
.k56p-dialog-template__header { position: sticky; z-index: 20; top: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px 18px; border-bottom: 1px solid var(--k56p-line); background: rgba(255,255,255,.97); }
.elementor .k56p-dialog-template__header { display: flex; padding: 22px 24px 18px; gap: 20px; }
.k56p-dialog-template__header > .elementor-widget > .elementor-shortcode {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    min-width: 0;
    gap: 20px;
}
.k56p-dialog h2 { font-size: clamp(1.45rem, 3vw, 2rem); }
.k56p-dialog__close {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    padding: 0;
    border: 1px solid #efb6c5 !important;
    border-radius: 50%;
    color: #a82142 !important;
    background: #fff1f4 !important;
    box-shadow: 0 8px 20px rgba(168,33,66,.12);
    cursor: pointer;
}
.k56p-dialog__close .k56p-icon { width: 25px; height: 25px; }
.k56p-dialog__body,
.k56p-dialog-template__body { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 24px; }
.elementor .k56p-dialog-template__body { display: block; padding: 24px; }
.k56p-dialog__footer,
.k56p-dialog-template__footer { position: sticky; z-index: 20; bottom: 0; display: flex; justify-content: flex-end; gap: 12px; padding: 16px 24px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--k56p-line); background: rgba(255,255,255,.97); }
.elementor .k56p-dialog-template__footer { display: flex; padding: 16px 24px max(16px, env(safe-area-inset-bottom)); gap: 12px; }
.k56p-dialog :is(.k56p-button, button.k56p-button, a.k56p-button),
.elementor .k56p-dialog :is(.k56p-button, button.k56p-button, a.k56p-button) { min-width: 120px; padding: 12px 18px; }
body.k56p-dialog-open { overflow: hidden; }

/* Portal dialogs use the same quiet card language as the flight-team cards. */
.elementor .k56p-portal-dialog,
.elementor .k56p-portal-dialog-actions { display: block; padding: 0; }
.k56p-portal-dialog > .elementor-widget > .elementor-shortcode,
.k56p-portal-dialog-actions > .elementor-widget > .elementor-shortcode { width: 100%; min-width: 0; }
.k56p-portal-dialog-actions > .elementor-widget > .elementor-shortcode { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 12px; }
.k56p-dialog-notice,
.k56p-placement-note { margin: 0 0 18px; padding: 14px 16px; border: 1px solid var(--k56p-line); border-radius: 14px; color: var(--k56p-navy-soft); background: var(--k56p-soft); }
.k56p-dialog-balance { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 1px 10px; margin: 0 0 18px; padding: 18px 20px; border-radius: 18px; color: var(--k56p-navy); background: linear-gradient(135deg, color-mix(in srgb, var(--k56p-team-color) 20%, white), #fff); }
.k56p-dialog-balance small { grid-column: 1 / -1; color: var(--k56p-navy-soft); font-weight: 700; }
.k56p-dialog-balance strong { font-size: clamp(2rem, 6vw, 3rem); line-height: 1; }
.k56p-dialog-balance span { padding-bottom: 4px; font-weight: 700; }
.k56p-dialog-summary { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 11px; margin-bottom: 20px; }
.k56p-dialog-summary--three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.k56p-dialog-summary > span { display: flex; flex-direction: column; justify-content: center; min-height: 92px; padding: 14px; border: 1px solid var(--k56p-line); border-radius: 15px; background: var(--k56p-soft); text-align: center; }
.k56p-dialog-summary strong { color: var(--k56p-navy); font-size: 1.55rem; line-height: 1; }
.k56p-dialog-summary small { margin-top: 6px; color: var(--k56p-navy-soft); font-weight: 700; }
.k56p-history { display: grid; width: 100%; overflow: hidden; border: 1px solid var(--k56p-line); border-radius: 16px; }
.k56p-history__head,
.k56p-history__row { display: grid; grid-template-columns: minmax(126px,.65fr) minmax(0,1.8fr) minmax(72px,.45fr); align-items: center; gap: 14px; padding: 12px 15px; }
.k56p-history__head { color: var(--k56p-navy-soft); background: var(--k56p-soft); font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.k56p-history__row + .k56p-history__row { border-top: 1px solid var(--k56p-line); }
.k56p-history__row { font-size: .9rem; }
.k56p-history__row time { color: var(--k56p-navy-soft); font-size: .84rem; }
.k56p-history__row strong { text-align: right; }
.k56p-history__row .is-positive { color: #177a50; }
.k56p-history__row .is-negative { color: #a82142; }
.k56p-result-list { display: grid; gap: 12px; }
.k56p-result { display: grid; grid-template-columns: minmax(120px,.6fr) minmax(0,1.4fr); gap: 18px; padding: 17px; border: 1px solid var(--k56p-line); border-radius: 17px; background: #fff; box-shadow: 0 7px 18px rgba(25,51,73,.055); }
.k56p-result > div { display: flex; flex-direction: column; }
.k56p-result time { color: var(--k56p-navy-soft); font-size: .82rem; }
.k56p-result > div strong { margin-top: 4px; }
.k56p-result dl { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); margin: 0; }
.k56p-result dl > div { padding-inline: 10px; text-align: center; }
.k56p-result dl > div + div { border-left: 1px solid var(--k56p-line); }
.k56p-result dt { color: var(--k56p-navy-soft); font-size: .73rem; }
.k56p-result dd { margin: 3px 0 0; color: var(--k56p-navy); font-size: 1.06rem; font-weight: 800; }
.k56p-placement-note { margin: 18px 0 0; }
.k56p-flight-pass { overflow: hidden; padding: clamp(22px, 5vw, 42px); border: 1px solid #b9dfe5; border-radius: 23px; background: linear-gradient(145deg, #fff 0 64%, #dff3f5 64%); box-shadow: var(--k56p-shadow); }
.k56p-flight-pass h3 { margin: 8px 0 22px; color: var(--k56p-navy); font-size: clamp(2rem, 6vw, 3.2rem); }
.k56p-flight-pass dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 0; }
.k56p-flight-pass dl > div { padding: 14px; border-radius: 14px; background: rgba(255,255,255,.82); }
.k56p-flight-pass dt { color: var(--k56p-navy-soft); font-size: .78rem; font-weight: 700; }
.k56p-flight-pass dd { margin: 4px 0 0; color: var(--k56p-navy); font-size: 1.12rem; font-weight: 800; }
.k56p-flight-pass__claim { margin: 26px 0 0; color: var(--k56p-navy); font-size: 1.25rem; font-weight: 800; }
.k56p-game-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.k56p-game { display: flex; flex-direction: column; min-width: 0; gap: 10px; padding: 20px; border: 1px solid var(--k56p-line); border-radius: 18px; background: #fff; box-shadow: 0 8px 22px rgba(25,51,73,.07); }
.k56p-game h3,
.k56p-game p { margin: 0; }
.k56p-game .k56p-button { margin-top: auto; }
.k56p-game__variants { display: grid; gap: 9px; margin-top: auto; }
.k56p-game__variants form { display: grid; gap: 5px; margin: 0; }
.k56p-game__variants .k56p-button { min-height: 52px; justify-content: space-between; text-align: left; }
.k56p-game__variants .k56p-button small { font-size: .74rem; font-weight: 700; opacity: .8; }
.k56p-game__status { color: var(--k56p-muted); font-size: .75rem; line-height: 1.35; }

/* Boarding points and station-scoped benefits */
.k56p-benefits { display: grid; gap: 20px; color: var(--k56p-navy); }
.k56p-benefits__status:empty { display: none; }
.k56p-benefits__status:not(:empty) { padding: 12px 15px; border: 1px solid color-mix(in srgb, var(--k56p-team-color) 45%, white); border-radius: 13px; background: color-mix(in srgb, var(--k56p-team-color) 12%, white); font-weight: 700; }
.k56p-benefits__balance { display: flex; align-items: baseline; gap: 9px; margin: 0; padding: 18px 20px; border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--k56p-team-color) 20%, white), #fff); }
.k56p-benefits__balance strong { color: var(--k56p-navy); font-size: clamp(2rem, 6vw, 3rem); line-height: 1; }
.k56p-benefit-list,
.k56p-benefit-history { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.k56p-benefit-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.k56p-benefit { display: flex; flex-direction: column; min-width: 0; gap: 9px; padding: 18px; border: 1px solid var(--k56p-line); border-radius: 17px; background: #fff; box-shadow: 0 7px 18px rgba(25,51,73,.055); }
.k56p-benefit h4,
.k56p-benefit p { margin: 0; }
.k56p-benefit h4 { font-size: 1.08rem; }
.k56p-benefit form { display: grid; margin: auto 0 0; }
.k56p-benefit .k56p-button { width: 100%; }
.k56p-benefits__history h3 { margin: 0 0 10px; font-size: 1.1rem; }
.k56p-benefit-history li { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; padding: 12px 15px; border: 1px solid var(--k56p-line); border-radius: 13px; background: var(--k56p-soft); }
.k56p-benefit-history time { color: var(--k56p-navy-soft); font-size: .82rem; }
.k56p-benefits__empty { margin: 0; padding: 17px; border-radius: 14px; color: var(--k56p-navy-soft); background: var(--k56p-soft); }

/* Full-screen mobile avatar selector */
.k56p-avatar-picker { display: grid; grid-template-columns: minmax(240px,.38fr) minmax(0,.62fr); grid-template-rows: auto 1fr auto; width: 100%; min-height: 580px; color: var(--k56p-navy); }
.k56p-avatar-picker__preview { grid-row: 1 / 4; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; min-width: 0; padding: clamp(22px, 4vw, 40px); border-right: 1px solid var(--k56p-line); background: linear-gradient(155deg, #effafb, #fff); text-align: center; }
.k56p-avatar-picker__preview-image { display: grid; place-items: center; width: min(230px, 70%); aspect-ratio: 1; overflow: hidden; border: 8px solid #fff; border-radius: 50%; color: #fff; background: radial-gradient(circle at 25% 20%, #67d1d2, #4f54bd 58%, #f3ae39); box-shadow: var(--k56p-shadow); font-size: 2.2rem; font-weight: 800; }
.k56p-avatar-picker__preview-image img { width: 100%; height: 100%; object-fit: cover; }
.k56p-avatar-picker__controls { position: sticky; z-index: 5; top: 0; display: grid; grid-template-columns: minmax(190px,1fr) auto; gap: 10px; padding: 18px 20px 10px; background: #fff; }
.k56p-search { display: flex; align-items: center; min-height: 46px; gap: 9px; padding: 0 13px; border: 1px solid var(--k56p-line); border-radius: 13px; background: #fff; }
.k56p-search .k56p-icon { width: 20px; height: 20px; flex: 0 0 auto; }
.k56p-search input { width: 100%; min-width: 0; padding: 9px 0; border: 0; outline: 0; color: var(--k56p-navy); background: transparent; font: inherit; }
.k56p-filter-toggle { min-width: 88px; min-height: 46px; padding: 8px 14px; border: 1px solid var(--k56p-line); border-radius: 13px; color: var(--k56p-navy); background: var(--k56p-soft); font: inherit; font-weight: 700; cursor: pointer; }
.k56p-avatar-picker__filters { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)) auto; align-items: end; gap: 9px; }
.k56p-avatar-picker__filters[hidden] { display: none; }
.k56p-avatar-picker__filters label { display: grid; gap: 4px; color: var(--k56p-navy-soft); font-size: .78rem; font-weight: 700; }
.k56p-avatar-picker__filters select { width: 100%; min-height: 42px; padding: 7px 28px 7px 9px; border: 1px solid var(--k56p-line); border-radius: 10px; color: var(--k56p-navy); background: #fff; }
.k56p-link-button { min-height: 42px; padding: 5px 9px; border: 0; color: var(--k56p-navy); background: transparent; text-decoration: underline; cursor: pointer; }
.k56p-avatar-picker__count { grid-column: 1 / -1; margin: 0; color: var(--k56p-navy-soft); font-size: .82rem; }
.k56p-avatar-picker__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); align-content: start; gap: 11px; min-height: 0; overflow: auto; padding: 10px 20px 100px; }
.k56p-avatar-option { position: relative; display: grid; gap: 7px; place-items: center; min-width: 0; min-height: 138px; padding: 10px; border: 2px solid transparent; border-radius: 16px; color: var(--k56p-navy); background: var(--k56p-soft); font: inherit; font-size: .78rem; text-align: center; cursor: pointer; }
.k56p-avatar-option:hover { border-color: var(--k56p-line); background: #fff; }
.k56p-avatar-option[aria-selected="true"] { border-color: var(--k56p-team-color); background: color-mix(in srgb, var(--k56p-team-color) 10%, white); box-shadow: 0 0 0 3px color-mix(in srgb, var(--k56p-team-color) 24%, transparent); }
.k56p-avatar-option[disabled] { opacity: .38; cursor: not-allowed; }
.k56p-avatar-option img { width: min(88px, 100%); aspect-ratio: 1; border-radius: 50%; object-fit: cover; background: #fff; }
.k56p-avatar-picker__empty { margin: 28px; color: var(--k56p-navy-soft); text-align: center; }
.k56p-avatar-picker__footer { position: sticky; z-index: 6; right: 0; bottom: 0; grid-column: 2; padding: 14px 20px max(14px, env(safe-area-inset-bottom)); border-top: 1px solid var(--k56p-line); background: rgba(255,255,255,.97); }

/* Öffentliche Leseflugschule-Hierarchie: ausschließlich von Elementor-Templates verwendet. */
.k56p-public-single { display: grid; gap: clamp(28px, 5vw, 64px); width: 100%; max-width: none; margin: 0; padding: 0; color: var(--k56p-navy); }
.k56p-public-hero,
.k56p-public-profile { display: grid; gap: clamp(20px, 4vw, 48px); align-items: center; padding: clamp(24px, 4vw, 56px); border: 1px solid var(--k56p-line); border-radius: 30px; background: linear-gradient(135deg, #fff 0%, var(--k56p-soft) 100%); box-shadow: 0 18px 44px rgba(36,43,70,.10); }
.k56p-public-hero--split,
.k56p-public-profile { grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); }
.k56p-public-hero img,
.k56p-public-profile img { width: 100%; max-height: 420px; border-radius: 24px; object-fit: contain; background: #fff; }
.k56p-public-section { display: grid; gap: 20px; }
.k56p-public-section > .elementor-widget-text-editor:first-child { color: var(--k56p-navy); font-size: clamp(1.45rem, 2.2vw, 2rem); font-weight: 800; }
.k56p-public-card { height: 100%; overflow: hidden; border: 1px solid var(--k56p-line); border-radius: 24px; background: #fff; box-shadow: 0 12px 32px rgba(36,43,70,.09); }
.k56p-public-card > .elementor-widget-theme-post-featured-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: contain; padding: 16px; background: var(--k56p-soft); }
.k56p-public-card--staff > .elementor-widget-theme-post-featured-image img { aspect-ratio: 1; border-radius: 50%; object-fit: cover; }
.k56p-public-card__body { display: grid; gap: 12px; padding: 22px; }
.k56p-public-card .elementor-button,
.k56p-public-nav-card .elementor-button { width: 100%; min-height: 46px; border-radius: 14px; color: #fff; background: var(--k56p-navy); font-weight: 800; }
.k56p-public-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.k56p-public-fact { min-width: 0; padding: 12px; border-radius: 14px; background: var(--k56p-soft); }
.k56p-public-fact p { margin: 0; overflow-wrap: normal; }
.k56p-public-fact strong { font-size: .8rem; line-height: 1.2; }
.k56p-public-section:has(.e-loop-nothing-found-message):not(:has(.e-loop-item)) { display: none; }
.k56p-public-navigation { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; align-items: stretch; }
.k56p-public-navigation > * { min-width: 0; }
.k56p-public-nav-card { display: grid; gap: 10px; height: 100%; padding: 18px; border: 1px solid var(--k56p-line); border-radius: 18px; background: #fff; }

/*
 * Atomic-V4-Container bringen sichtbare 10px-Paddings sowie block/grid-
 * Basiswerte mit. Die öffentlichen Templates verwenden diese Container nur
 * semantisch; deshalb besitzt die CI-Schicht hier bewusst die fertige
 * Darstellung. Der Root bleibt ohne eigenen Außenabstand und füllt das vom
 * Seiten-Grundgerüst bereitgestellte Innenmaß vollständig aus.
 */
.elementor .k56p-public-single {
    display: grid;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    gap: clamp(28px, 5vw, 64px);
}
.elementor .k56p-public-hero,
.elementor .k56p-public-profile {
    display: grid;
    padding: clamp(24px, 4vw, 56px);
    gap: clamp(20px, 4vw, 48px);
}
.elementor .k56p-public-hero--split,
.elementor .k56p-public-profile { grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); }
.elementor .k56p-public-section { display: grid; padding: 0; gap: 20px; }
.elementor .k56p-public-card { display: block; padding: 0; }
.elementor .k56p-public-card__body { display: grid; padding: 22px; gap: 12px; }
.elementor .k56p-public-facts { display: grid; padding: 0; gap: 10px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.elementor .k56p-public-fact { display: block; padding: 12px; }
.elementor .k56p-public-navigation { display: grid; padding: 0; gap: 18px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.elementor .k56p-public-nav-card { display: grid; padding: 18px; gap: 10px; }

@media (max-width: 900px) {
    .k56p-metric-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .k56p-metric-grid > .elementor-widget > .elementor-shortcode { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .k56p-card-grid { grid-template-columns: 1fr; }
    .k56p-visibility { grid-template-columns: 1fr; }
    .k56p-visibility__save { grid-column: 1; }
    .k56p-avatar-picker__grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .k56p-public-hero--split,
    .k56p-public-profile,
    .elementor .k56p-public-hero--split,
    .elementor .k56p-public-profile { grid-template-columns: 1fr; }
    .k56p-public-navigation,
    .elementor .k56p-public-navigation { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .k56p-visibility-panel > summary { flex-wrap: wrap; gap: 2px 12px; }
    .k56p-visibility-panel > summary small { width: calc(100% - 24px); }
    .k56p-flight-team,
    .elementor .k56p-flight-team { padding: 0; border-radius: 0; }
    .k56p-team-heading { flex-direction: column; }
    .k56p-station-logo { width: min(240px, 70vw); align-self: flex-start; object-position: left center; }
    .k56p-metric { min-height: 66px; padding: 11px; gap: 9px; }
    .k56p-metric .k56p-icon { width: 23px; height: 23px; }
    .k56p-metric strong { font-size: 1.2rem; }
    .k56p-card,
    .elementor .k56p-card { padding: 27px 16px 18px; border-radius: 22px; }
    .k56p-card__identity,
    .elementor .k56p-card__identity { min-height: 106px; padding: 52px 0 0; }
    .k56p-card__tools { inset: 17px 15px auto; }
    .k56p-avatar { width: 120px; height: 120px; margin-top: -53px; border-width: 6px; }
    .k56p-card__metric-grid,
    .k56p-card__balances,
    .k56p-card__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .k56p-card__metric-grid > .elementor-widget > .elementor-shortcode,
    .k56p-card__balances > .elementor-widget > .elementor-shortcode,
    .k56p-card__actions > .elementor-widget > .elementor-shortcode { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .k56p-ranking__cells > span { padding-inline: 4px; }
    .k56p-ranking__cells small { font-size: .72rem; }
    .k56p-ranking__cells strong { font-size: 1.18rem; }
    .k56p-missions__cells > a { flex-direction: column; gap: 4px; text-align: center; }
    .k56p-progress__top { grid-template-columns: 92px minmax(0,1fr); }

    .k56p-dialog {
        width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        margin: 0;
        border-radius: 0;
    }
    .k56p-dialog__frame,
    .k56p-dialog-template { width: 100%; height: 100%; max-height: none; }
    .k56p-dialog .k56p-dialog__frame > .elementor,
    .k56p-dialog .k56p-dialog__frame .k56p-dialog-template { height: 100%; max-height: 100%; }
    .k56p-dialog__header,
    .k56p-dialog-template__header,
    .elementor .k56p-dialog-template__header { padding: max(14px, env(safe-area-inset-top)) 15px 13px; }
    .k56p-dialog__body,
    .k56p-dialog-template__body,
    .elementor .k56p-dialog-template__body { padding: 16px 14px; }
    .k56p-dialog__footer,
    .k56p-dialog-template__footer,
    .elementor .k56p-dialog-template__footer { flex-direction: column; padding: 12px 14px max(12px, env(safe-area-inset-bottom)); }
    .k56p-portal-dialog-actions > .elementor-widget > .elementor-shortcode { flex-direction: column-reverse; }
    .k56p-portal-dialog-actions .k56p-button { width: 100%; }
    .k56p-dialog-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .k56p-dialog-summary--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .k56p-dialog-summary > span { min-height: 76px; padding: 10px 6px; }
    .k56p-dialog-summary strong { font-size: 1.25rem; }
    .k56p-history__head { display: none; }
    .k56p-history__row { grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; }
    .k56p-history__row time { grid-column: 1; }
    .k56p-history__row span { grid-column: 1; }
    .k56p-history__row strong { grid-column: 2; grid-row: 1 / 3; align-self: center; }
    .k56p-result { grid-template-columns: 1fr; gap: 12px; }
    .k56p-result dl > div { padding-inline: 4px; }
    .k56p-result dt { font-size: .66rem; }
    .k56p-result dd { font-size: .92rem; }
    .k56p-flight-pass dl,
    .k56p-game-grid,
    .k56p-benefit-list { grid-template-columns: 1fr; }
    .k56p-benefit-history li { grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; }
    .k56p-benefit-history time { grid-column: 1 / -1; }

    .k56p-avatar-picker { display: flex; flex-direction: column; min-height: 100%; }
    .k56p-avatar-picker__preview { position: sticky; z-index: 5; top: 0; display: grid; grid-template-columns: 82px minmax(0,1fr); gap: 12px; padding: 12px 14px; border-right: 0; border-bottom: 1px solid var(--k56p-line); text-align: left; }
    .k56p-avatar-picker__preview-image { width: 82px; border-width: 4px; font-size: 1rem; }
    .k56p-avatar-picker__controls { position: sticky; top: 107px; padding: 10px 14px 8px; }
    .k56p-avatar-picker__filters { grid-template-columns: 1fr 1fr; }
    .k56p-avatar-picker__grid { grid-template-columns: repeat(3, minmax(0,1fr)); overflow: visible; padding: 8px 14px 96px; }
    .k56p-avatar-option { min-height: 116px; padding: 7px; }
    .k56p-avatar-option img { width: min(76px,100%); }
    .k56p-avatar-picker__footer { position: fixed; z-index: 30; right: 0; bottom: 0; left: 0; padding: 11px 14px max(11px, env(safe-area-inset-bottom)); }
    .k56p-public-single,
    .elementor .k56p-public-single { width: 100%; max-width: none; margin: 0; padding: 0; }
    .k56p-public-hero,
    .k56p-public-profile,
    .elementor .k56p-public-hero,
    .elementor .k56p-public-profile { padding: 20px; border-radius: 22px; }
    .k56p-public-facts,
    .elementor .k56p-public-facts { grid-template-columns: 1fr; }
}

@media (max-width: 370px) {
    .k56p-metric-grid { grid-template-columns: 1fr; }
    .k56p-metric-grid > .elementor-widget > .elementor-shortcode { grid-template-columns: 1fr; }
    .k56p-card__metric-grid,
    .k56p-card__balances,
    .k56p-card__actions { grid-template-columns: 1fr; }
    .k56p-card__metric-grid > .elementor-widget > .elementor-shortcode,
    .k56p-card__balances > .elementor-widget > .elementor-shortcode,
    .k56p-card__actions > .elementor-widget > .elementor-shortcode { grid-template-columns: 1fr; }
    .k56p-button--wide { grid-column: auto; }
    .k56p-avatar-picker__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .k56p-avatar-picker__filters { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .k56p-button,
    .k56p-toggle > span,
    .k56p-toggle > span::after { transition: none; }
}
