/* Contract: planung/ki-inventar-component.context.yaml#/contracts/assets */
.ki-inventar { min-width: 0; margin: 0; position: relative; }
.ki-inventar > svg { display: block; width: 100%; height: auto; }
.ki-inventar .ground-tile { fill: var(--color-surface); stroke: color-mix(in srgb, var(--color-primary) 15%, transparent); stroke-width: .6; }
.ki-inventar .ground-front { fill: color-mix(in srgb, var(--color-primary) 12%, var(--color-bg-tertiary)); }
.ki-inventar .ground-side { fill: color-mix(in srgb, var(--color-primary) 25%, var(--color-bg-tertiary)); }
.ki-inventar .zone-floor { fill: color-mix(in srgb, var(--zone-color) 8%, var(--color-surface)); stroke: color-mix(in srgb, var(--zone-color) 25%, transparent); stroke-width: 1.1; }
.ki-inventar .zone { --zone-color: var(--color-primary); }
.ki-inventar .zone.knowledge, .ki-inventar .zone.briefing-knowledge, .ki-inventar .zone.channels { --zone-color: var(--color-secondary); }
.ki-inventar .zone.learning { --zone-color: var(--color-accent); }
.ki-inventar .zone.core .zone-floor { fill: color-mix(in srgb, var(--color-primary) 16%, var(--color-surface)); stroke: var(--color-primary); stroke-width: 2; }
.ki-inventar .zone-label { fill: var(--color-text-secondary); font-family: var(--font-family-base); font-size: 19px; font-weight: 700; letter-spacing: 1px; text-anchor: middle; }
.ki-inventar .zone-caption.core .zone-label { fill: var(--color-primary); font-size: 23px; }
.ki-inventar .zone-label { paint-order: stroke fill; stroke: var(--color-surface); stroke-width: 4px; stroke-linejoin: round; }
.ki-inventar .module { --material: var(--color-primary); --shadow: var(--color-primary-hover); outline: none; cursor: pointer; }
.ki-inventar .module[data-zone="knowledge"], .ki-inventar .module[data-zone="briefing-knowledge"], .ki-inventar .module[data-zone="input"], .ki-inventar .module[data-zone="channels"], .ki-inventar .module[data-kind="model"] { --material: var(--color-secondary); --shadow: var(--color-secondary-hover); }
.ki-inventar .module[data-kind="approval"], .ki-inventar .module[data-zone="learning"] { --material: var(--color-accent); --shadow: color-mix(in srgb, var(--color-accent) 75%, var(--color-text-primary)); }
.ki-inventar .foot-top { fill: color-mix(in srgb, var(--material) 8%, var(--color-surface)); }
.ki-inventar .foot-front, .ki-inventar .foot-side { fill: color-mix(in srgb, var(--material) 25%, var(--color-surface)); }
.ki-inventar .server-top, .ki-inventar .model-top, .ki-inventar .database-lid { fill: color-mix(in srgb, var(--color-surface) 25%, var(--material)); }
.ki-inventar .server-front, .ki-inventar .model-front, .ki-inventar .database-body { fill: var(--material); }
.ki-inventar .server-side, .ki-inventar .model-side { fill: var(--shadow); }
.ki-inventar .server-slot { fill: color-mix(in srgb, var(--color-bg-tertiary) 25%, var(--color-primary)); }
.ki-inventar .server-light { fill: var(--color-surface); }
.ki-inventar .symbol-front { color: var(--material); }
.ki-inventar .symbol-shadow { color: var(--shadow); }
.ki-inventar .database-ring { fill: none; stroke: color-mix(in srgb, var(--color-surface) 75%, var(--material)); stroke-width: 2; }
.ki-inventar .database-badge { color: var(--color-surface); }
.ki-inventar .connection, .ki-inventar .area-connection { --line-color: var(--color-primary); pointer-events: none; }
.ki-inventar .connection.knowledge, .ki-inventar .area-connection.knowledge { --line-color: var(--color-secondary); }
.ki-inventar .connection.approval, .ki-inventar .connection.learning, .ki-inventar .area-connection.approval, .ki-inventar .area-connection.learning { --line-color: var(--color-accent); }
.ki-inventar .connection.correction, .ki-inventar .connection.return, .ki-inventar .area-connection.return { --line-color: var(--color-secondary); }
.ki-inventar .connection.optional .coupling-line, .ki-inventar .connection.support .coupling-line, .ki-inventar .area-connection.optional .coupling-line, .ki-inventar .area-connection.return .coupling-line, .ki-inventar .area-connection.learning .coupling-line { stroke-dasharray: 4 3; }
.ki-inventar .connection { display: none; }
.ki-inventar .element-detail .area-connection { display: none; }
.ki-inventar .element-detail .connection.active { display: inline; }
.ki-inventar .area-connection.main .coupling-line, .ki-inventar .area-connection.approval .coupling-line { stroke-width: 2.7; }
.ki-inventar .element-detail .module:not(.active):not(.related) { opacity: .45; }
.ki-inventar .element-detail .module-label:not(.active):not(.related) { opacity: .35; }
.ki-inventar .coupling-line { stroke: var(--line-color); opacity: .75; stroke-width: 1.8; }
.ki-inventar .coupling-head { fill: var(--line-color); opacity: .75; }
.ki-inventar .connection.core .coupling-line, .ki-inventar .connection.active .coupling-line { stroke-width: 2.7; }
.ki-inventar .bubble { opacity: .12; transition: opacity 120ms ease; pointer-events: none; }
.ki-inventar .module-label { pointer-events: none; }
.ki-inventar .module-label.active .bubble { opacity: 1; }
.ki-inventar .bubble-surface { fill: var(--color-surface); stroke: color-mix(in srgb, var(--color-primary) 25%, transparent); stroke-width: .7; }
.ki-inventar .bubble-label { fill: var(--color-text-primary); text-anchor: middle; dominant-baseline: middle; font-family: var(--font-family-base); font-size: 14px; }
.ki-inventar .zone.drag-preview .zone-floor { stroke: var(--color-primary); stroke-width: 2; }
.ki-inventar .ground-tile.drop-target { fill: color-mix(in srgb, var(--color-primary) 25%, var(--color-surface)); stroke: var(--color-primary); stroke-width: 2; }
.ki-inventar[data-ki-inventar] { width: 100%; }
.ki-inventar[data-ki-inventar] .module-label.active .bubble { opacity: 0; }
.ki-inventar .module:focus-visible .foot-top { stroke: var(--color-primary); stroke-width: 2; }
.ki-inventar-tooltip { position: absolute; z-index: 1; max-width: calc(100% - 16px); padding: 5px 9px; border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent); border-radius: 5px; background: var(--color-surface); color: var(--color-text-primary); font: 14px/1.4 var(--font-family-base); text-align: center; pointer-events: none; }
.ki-inventar-tooltip::after { position: absolute; top: 100%; left: calc(50% - 5px); content: ''; border: 5px solid transparent; border-top-color: var(--color-surface); }
/* Contract: planung/ki-inventar-intro.context.yaml#/contracts/assets */
.ki-inventar[data-ki-inventar] > svg { overflow: hidden; }
.ki-inventar[data-ki-inventar] [data-entering] { pointer-events: none; }

/* Contract: planung/ki21-pointer.context.yaml#/contracts/opening */
body.cms--ki-community-21 #ki21-start { position: relative; isolation: isolate; overflow: clip; }
body.cms--ki-community-21 #ki21-start .kig21-visual { position: relative; z-index: 1; }
body.cms--ki-community-21 #ki21-start .kig21-copy { position: relative; z-index: 2; }
body.cms--ki-community-21 #ki21-start .ki-inventar > svg { transform-origin: center; transform-box: border-box; }
body.cms--ki-community-21 #ki21-start .ki-inventar:is([data-inventory-stage="core"], [data-inventory-stage="expanding"]) > svg { overflow: visible; }

/* Contract: planung/ki21-exit-grow.context.yaml#/contracts */
body.cms--ki-community-21 #ki21-start .ki-inventar[data-inventory-exit="leaving"] > svg { overflow: visible; }
