<!DOCTYPE html>
<body>
<style>
#container {
    width: 100px;
    height: 100px;
}
</style>
<p>Test passes if you see a single 100px by 100px green box below.</p>
<div id="container">
<div id="host">
    <span>a</span>
    <span>b</span>
</div>
<div id="host2">
    <span>a</span>
    <span class="abs">b</span>
</div>
<div id="host3">
    <span>a</span>
    <span>b</span>
</div>
<div id="host4">
    <span>a</span>
    <span>b</span>
</div>
<div id="host5">
    <span>a</span>
    <span>b</span>
</div>
</div>
<script>

document.querySelector('#host').attachShadow({mode:'closed'}).innerHTML = `
<style>
:host {
    width: 100%;
    height: 20%;
    display: flex;
}
::slotted(span) {
    flex: 1;
    color: green;
    background: green;
    height: 100%;
}
</style>
<slot></slot>`;

document.querySelector('#host2').attachShadow({mode:'closed'}).innerHTML = `
<style>
:host {
    width: 150%;
    height: 20%;
    display: flex;
}
::slotted(span) {
    flex: 2;
    color: green;
    background: green;
    display: inline-block;
    z-index: 10;
    height: 100%;
}
::slotted(span.abs) {
    flex: 1;
    background: red;
    z-index: 5;
    left: -75px;
    position: relative;
}
</style>
<slot></slot>`;

document.querySelector('#host3').attachShadow({mode:'closed'}).innerHTML = `
<style>
:host {
    width: 100%;
    height: 20%;
}
:host(.flex) {
    display:flex;
}
::slotted(span) {
    flex: 1;
    color: green;
    background: green;
    height: 100%;
}
</style>
<slot></slot>`;
window.getComputedStyle(document.querySelector('#host3')).width;
document.querySelector('#host3').className = "flex";

const root4 = document.querySelector('#host4').attachShadow({mode:'closed'});
root4.innerHTML = `
<style>
:host {
    width: 100%;
    height: 20%;
}
#deephost {
    width: 100%;
    height: 100%;
    display: flex;
    background: red;
}
::slotted(span) {
    flex: 1;
    color: green;
    background: green;
    height: 100%;
}
</style>
<div id="deephost">
<slot></slot>
</div>`;
root4.querySelector('#deephost').attachShadow({mode:'closed'}).innerHTML = `<slot></slot>`;

document.querySelector('#host5').attachShadow({mode:'closed'}).innerHTML = `
<style>
:host {
    width: 100%;
    height: 20%;
}
::slotted(span) {
    flex: 1;
    color: green;
    background: green;
    height: 100%;
}
slot {
    display:flex;
    width: 100%;
    height: 100%;
}
</style>
<slot></slot>`;

</script>
