gik25-relation-graph[data-graph-presentation="semantic-cluster-map"] {
    display: block;
    min-width: 0;
}

.gik25-semantic-cluster-map {
    --gik25-cluster-surface: #ffffff;
    --gik25-cluster-canvas: #f6f7fa;
    --gik25-cluster-ink: #20252d;
    --gik25-cluster-muted: #68707d;
    --gik25-cluster-border: rgba(31, 41, 55, .11);
    --gik25-cluster-primary: #bd4053;
    --gik25-cluster-secondary: #c47a39;
    --gik25-cluster-facet: #4f78d2;
    --gik25-cluster-ontology: #3e936c;
    --gik25-cluster-context: #746b83;
    --gik25-cluster-focus: #20242b;
    display: grid;
    gap: .8rem;
    min-width: 0;
    color: var(--gik25-cluster-ink);
}

.gik25-semantic-cluster-map__toolbar,
.gik25-semantic-cluster-map__legend,
.gik25-semantic-cluster-map__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.gik25-semantic-cluster-map__toolbar {
    justify-content: space-between;
    gap: .65rem 1rem;
}

.gik25-semantic-cluster-map__legend,
.gik25-semantic-cluster-map__actions {
    gap: .42rem;
}

.gik25-semantic-cluster-map__legend span {
    --group-accent: var(--gik25-cluster-context);
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 1.9rem;
    padding: .3rem .58rem;
    border: 1px solid color-mix(in srgb, var(--group-accent) 23%, transparent);
    border-radius: .65rem;
    background: color-mix(in srgb, var(--group-accent) 6%, white);
    color: color-mix(in srgb, var(--group-accent) 68%, #23272f);
    font-size: .68rem;
    font-weight: 760;
    letter-spacing: .01em;
}

.gik25-semantic-cluster-map__legend span > i {
    width: .46rem;
    height: .46rem;
    border-radius: 999px;
    background: var(--group-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--group-accent) 12%, transparent);
}

.gik25-semantic-cluster-map__legend span > em {
    min-width: 1.15rem;
    padding: .05rem .3rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--group-accent) 10%, transparent);
    font-size: .61rem;
    font-style: normal;
    text-align: center;
}

.gik25-semantic-cluster-map .is-primary { --group-accent: var(--gik25-cluster-primary); }
.gik25-semantic-cluster-map .is-secondary { --group-accent: var(--gik25-cluster-secondary); }
.gik25-semantic-cluster-map .is-facet { --group-accent: var(--gik25-cluster-facet); }
.gik25-semantic-cluster-map .is-ontology { --group-accent: var(--gik25-cluster-ontology); }
.gik25-semantic-cluster-map .is-context { --group-accent: var(--gik25-cluster-context); }

.gik25-semantic-cluster-map__actions button {
    display: inline-flex;
    align-items: center;
    gap: .36rem;
    min-height: 2rem;
    padding: .34rem .62rem;
    border: 1px solid var(--gik25-cluster-border);
    border-radius: .65rem;
    background: rgba(255, 255, 255, .94);
    color: #343a45;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    font: inherit;
    font-size: .69rem;
    font-weight: 760;
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.gik25-semantic-cluster-map__actions button:hover:not(:disabled) {
    border-color: rgba(31, 41, 55, .2);
    box-shadow: 0 4px 12px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.gik25-semantic-cluster-map__actions button:disabled {
    opacity: .42;
    cursor: default;
}

.gik25-semantic-cluster-map__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 18.5rem);
    min-height: 45rem;
    overflow: hidden;
    border: 1px solid var(--gik25-cluster-border);
    border-radius: 1.15rem;
    background: var(--gik25-cluster-canvas);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, .04),
        0 18px 46px rgba(15, 23, 42, .07);
}

.gik25-semantic-cluster-map__canvas {
    position: relative;
    min-width: 0;
    min-height: 45rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .98) 0 7rem, rgba(255, 255, 255, .48) 7.1rem 14rem, transparent 14.1rem),
        radial-gradient(circle at 50% 50%, transparent 0 12rem, rgba(78, 88, 105, .045) 12.05rem 12.15rem, transparent 12.2rem),
        radial-gradient(circle at 50% 50%, transparent 0 20rem, rgba(78, 88, 105, .035) 20.05rem 20.15rem, transparent 20.2rem),
        linear-gradient(145deg, #fafbfc, #f4f5f8 72%, #f7f8fa);
}

.gik25-semantic-cluster-map__inspector {
    align-self: start;
    max-height: calc(100% - 2rem);
    margin: 1rem 1rem 1rem 0;
    padding: 1.15rem;
    overflow: auto;
    border: 1px solid rgba(31, 41, 55, .1);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 10px 30px rgba(15, 23, 42, .09);
    backdrop-filter: blur(14px);
}

.gik25-semantic-cluster-inspector__eyebrow {
    display: block;
    margin-bottom: .38rem;
    color: var(--gik25-cluster-primary);
    font-size: .63rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.gik25-semantic-cluster-map__inspector h3 {
    margin: 0;
    color: #20242b;
    font-size: clamp(1.12rem, 1.55vw, 1.4rem);
    line-height: 1.12;
}

.gik25-semantic-cluster-map__inspector > p {
    margin: .62rem 0 0;
    color: var(--gik25-cluster-muted);
    font-size: .79rem;
    line-height: 1.5;
}

.gik25-semantic-cluster-map__inspector ul {
    display: grid;
    gap: .6rem;
    margin: .95rem 0 0;
    padding: .9rem 0 0;
    border-top: 1px solid rgba(31, 41, 55, .08);
    list-style: none;
}

.gik25-semantic-cluster-map__inspector li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .52rem;
    align-items: start;
}

.gik25-semantic-cluster-map__inspector li i {
    width: .5rem;
    height: .5rem;
    margin-top: .24rem;
    border-radius: 999px;
    background: var(--gik25-cluster-context);
}

.gik25-semantic-cluster-map__inspector li i.is-primary { background: var(--gik25-cluster-primary); }
.gik25-semantic-cluster-map__inspector li i.is-secondary { background: var(--gik25-cluster-secondary); }
.gik25-semantic-cluster-map__inspector li i.is-facet { background: var(--gik25-cluster-facet); }
.gik25-semantic-cluster-map__inspector li i.is-ontology { background: var(--gik25-cluster-ontology); }

.gik25-semantic-cluster-map__inspector li strong,
.gik25-semantic-cluster-map__inspector li a {
    display: block;
    color: #282d35;
    font-size: .78rem;
    font-weight: 780;
    line-height: 1.25;
}

.gik25-semantic-cluster-map__inspector li span {
    display: block;
    margin-top: .14rem;
    color: var(--gik25-cluster-muted);
    font-size: .68rem;
}

.gik25-semantic-cluster-inspector__open {
    display: inline-flex;
    gap: .3rem;
    margin-top: .95rem;
    color: var(--gik25-cluster-primary);
    font-size: .76rem;
    font-weight: 800;
    text-underline-offset: .18em;
}

.gik25-semantic-cluster-node {
    --node-accent: var(--gik25-cluster-context);
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: .58rem;
    width: 168px;
    height: 92px;
    padding: .62rem;
    border: 1px solid color-mix(in srgb, var(--node-accent) 24%, #d8dce3);
    border-radius: .85rem;
    background: rgba(255, 255, 255, .975);
    color: #252a31;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, .04),
        0 8px 20px rgba(15, 23, 42, .07);
    cursor: pointer;
    outline: none;
    user-select: none;
    transition: opacity .18s ease, filter .18s ease, transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.gik25-semantic-cluster-node.is-group-primary { --node-accent: var(--gik25-cluster-primary); }
.gik25-semantic-cluster-node.is-group-secondary { --node-accent: var(--gik25-cluster-secondary); }
.gik25-semantic-cluster-node.is-group-facet { --node-accent: var(--gik25-cluster-facet); }
.gik25-semantic-cluster-node.is-group-ontology { --node-accent: var(--gik25-cluster-ontology); }

.gik25-semantic-cluster-node__media {
    position: relative;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--node-accent) 20%, transparent);
    border-radius: 50%;
    background: color-mix(in srgb, var(--node-accent) 13%, #f2f4f7);
    color: color-mix(in srgb, var(--node-accent) 78%, #262b32);
    font-size: .69rem;
    font-weight: 850;
}

.gik25-semantic-cluster-node__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gik25-semantic-cluster-node__body {
    min-width: 0;
}

.gik25-semantic-cluster-node__body strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: .76rem;
    line-height: 1.2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.gik25-semantic-cluster-node__body span {
    display: block;
    margin-top: .24rem;
    color: var(--gik25-cluster-muted);
    font-size: .57rem;
    font-weight: 760;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.gik25-semantic-cluster-node.is-focus {
    --node-accent: #7a8594;
    grid-template-columns: 58px minmax(0, 1fr);
    width: 212px;
    height: 126px;
    padding: .8rem;
    border-color: rgba(255, 255, 255, .12);
    border-radius: 1rem;
    background: linear-gradient(145deg, #292e36, var(--gik25-cluster-focus));
    color: #fff;
    box-shadow:
        0 0 0 6px rgba(255, 255, 255, .8),
        0 0 0 7px rgba(31, 41, 55, .09),
        0 18px 38px rgba(15, 23, 42, .19);
}

.gik25-semantic-cluster-node.is-focus .gik25-semantic-cluster-node__media {
    width: 56px;
    height: 56px;
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

.gik25-semantic-cluster-node.is-focus .gik25-semantic-cluster-node__body span {
    color: rgba(255, 255, 255, .62);
}

.gik25-semantic-cluster-node.is-entity .gik25-semantic-cluster-node__media,
.gik25-semantic-cluster-node.is-ontology .gik25-semantic-cluster-node__media {
    border-radius: .68rem;
}

.gik25-semantic-cluster-node:hover,
.gik25-semantic-cluster-node.is-selected {
    border-color: color-mix(in srgb, var(--node-accent) 58%, #cfd4dc);
    box-shadow:
        0 0 0 3px color-mix(in srgb, var(--node-accent) 11%, transparent),
        0 12px 28px rgba(15, 23, 42, .13);
    transform: translateY(-2px);
}

.gik25-semantic-cluster-node.is-focus:hover,
.gik25-semantic-cluster-node.is-focus.is-selected {
    border-color: rgba(255, 255, 255, .22);
    box-shadow:
        0 0 0 6px rgba(255, 255, 255, .9),
        0 0 0 8px rgba(31, 41, 55, .11),
        0 20px 42px rgba(15, 23, 42, .22);
}

.gik25-semantic-cluster-node.is-dimmed {
    opacity: .34;
    filter: saturate(.62);
}

.gik25-semantic-cluster-node:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--node-accent) 72%, white);
    outline-offset: 3px;
}

.gik25-semantic-cluster-group {
    --group-accent: var(--gik25-cluster-context);
    box-sizing: border-box;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .48rem;
    width: 228px;
    height: 48px;
    padding: .42rem .64rem;
    pointer-events: none;
    border: 1px solid color-mix(in srgb, var(--group-accent) 28%, transparent);
    border-radius: .72rem;
    background: color-mix(in srgb, var(--group-accent) 8%, rgba(255, 255, 255, .97));
    color: color-mix(in srgb, var(--group-accent) 66%, #252a31);
    box-shadow: 0 6px 18px rgba(15, 23, 42, .07);
    transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}

.gik25-semantic-cluster-group__dot {
    width: .55rem;
    height: .55rem;
    border-radius: 999px;
    background: var(--group-accent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--group-accent) 12%, transparent);
}

.gik25-semantic-cluster-group strong {
    min-width: 0;
    display: -webkit-box;
    overflow: hidden;
    font-size: .66rem;
    font-weight: 830;
    letter-spacing: .03em;
    line-height: 1.08;
    text-transform: uppercase;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.gik25-semantic-cluster-group em {
    min-width: 1.45rem;
    padding: .13rem .35rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--group-accent) 11%, transparent);
    font-size: .6rem;
    font-style: normal;
    font-weight: 800;
    text-align: center;
}

.gik25-semantic-cluster-group.is-active {
    border-color: color-mix(in srgb, var(--group-accent) 58%, transparent);
    box-shadow:
        0 0 0 3px color-mix(in srgb, var(--group-accent) 10%, transparent),
        0 8px 20px rgba(15, 23, 42, .1);
    transform: translateY(-1px);
}

@media (max-width: 1180px) {
    .gik25-semantic-cluster-map__body {
        grid-template-columns: minmax(0, 1fr);
    }

    .gik25-semantic-cluster-map__inspector {
        max-height: none;
        margin: 0 1rem 1rem;
    }
}

@media (max-width: 760px) {
    .gik25-semantic-cluster-map__toolbar {
        align-items: flex-start;
    }

    .gik25-semantic-cluster-map__legend {
        flex-basis: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gik25-semantic-cluster-node,
    .gik25-semantic-cluster-group,
    .gik25-semantic-cluster-map__actions button {
        transition: none;
        transform: none !important;
    }
}
