:host {
    height: auto;
    display: inline-block;
    vertical-align: top;
    position: relative;
    max-width: 100%;
    padding: 0.6em 0.66em;
    min-width: 1em;
    width: 12em;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.5);
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-word;
    line-height: 1.33;
}

.shell {
    display: grid;
    position: relative;
    width: 100%;
    height: 100%;
}

.shell>.text-value {
    display: block;
    width: 100%;
    min-height: 1em;
    white-space: inherit;
    word-break: inherit;
    font-size: inherit;
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
}

.shell>.text-value>div {
    display: none;
}

.shell>.text-value::before {
    content: attr(text-value);
    display: block;
    white-space: inherit;
    word-break: inherit;
    color: inherit;
}

::slotted([slot]) {
    position: absolute;
    resize: none;
    overflow: hidden;
    border: none;
    outline: none;
    background-color: transparent;
    color: inherit;
    display: block;
    inset: 0;
    padding: 0;
    margin: 0;
    width: 100%;
    min-height: 1em;
    grid-area: 1/1/2/2;
    height: 100%;
}

:host(:focus-within) {
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.5), 0 0 0 1px currentColor;
}

:host([disabled]) {
    box-shadow: none;
    background-color: hsla(0deg, 0%, 50%, 0.33);
    filter: grayscale(1);
}