:root {
    --sly-tree-item-end-size: 0px;
    --sly-tree-item-actions-size: 0fr;
}

.sly-file-tree-item {
    position: relative;
    list-style: none;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    color: var(--sly-color-on-content);
    background: var(--sly-color-content);
}

.sly-file-tree-item-content {
    position: relative;
    display: grid;
    justify-content: center;
    align-content: center;
    align-items: center;
    justify-items: center;
    grid-template-columns: min-content max-content 1fr 0;
    width: 100%;
    height: auto;
    gap: var(--sly-item-cell-gap);
    padding: 6px 12px;
    overflow: hidden;
    box-sizing: border-box;
    border-bottom: 1px solid var(--sly-color-control);
    transition: var(--sly-tree-item-transition);
}

.sly-file-tree-item-content ul, .sly-file-tree-item-content li {
    position: relative;
    list-style: none;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    color: var(--sly-color-on-content);
    background: var(--sly-color-content);
}

.sly-file-tree-item-content:hover {
    color: var(--sly-color-on-hover);
    background-color: var(--sly-color-hover);
}

.sly-file-tree-item-content:has(>.actions-transition) {
    transition: var(--sly-tree-item-transition);
    grid-template-columns: min-content max-content minmax(0, 1fr) var(--sly-tree-item-end-size);
}

.sly-file-tree-item-content:hover:has(>.actions-transition) {
    --sly-tree-item-end-size: var(--sly-tree-item-actions-size);
}

.sly-file-tree-item-content:hover > .actions-transition {
    opacity: 1;
}

.sly-file-tree-item-content:not(:has(> .actions-transition)) {
    grid-template-columns: min-content max-content 1fr max-content;
}

.sly-file-tree-item-content > .name {
    position: relative;
    display: flex;
    justify-content: start;
    align-items: center;
    width: auto;
    gap: 8px;
    background: none;
    color: inherit;
    outline: none;
    border: none;
    cursor: pointer;
}

.sly-file-tree-item-content > .name:hover > .text {
    text-decoration: underline;
}

.sly-file-tree-item-content > .start, .sly-file-tree-item-content > .end {
    position: relative;
    display: flex;
    justify-content: start;
    align-items: center;
}

.sly-file-tree-item-content > .metadata {
    position: relative;
    display: flex;
    justify-content: end;
    align-items: center;
    overflow-y: hidden;
    overflow-x: auto;
    width: 100%;
}

.sly-file-tree-item-content > .metadata:has(>.tag) {
    gap: 4px;
}

.sly-file-tree-item-content > .metadata:has(>.grid) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, auto));
    grid-template-rows: 1fr;
}

.sly-file-tree-item-content > .metadata > li {
    position: relative;
    width: 100%;
    height: 100%;
    font-size: 0.7em;
    display: flex;
    justify-content: center;
    align-items: center;
    vertical-align: middle;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
}

.sly-file-tree-item-content > .metadata > .tag {
    position: relative;
    width: auto;
    height: min-content;
    background: var(--sly-color-metadata);
    color: var(--sly-color-on-metadata);
    padding: 2px 6px;
    border-radius: 12px;
}

.sly-file-tree-item-content > .metadata > .grid {
    position: relative;
    width: auto;
    height: min-content;
    padding: 2px 6px;
}

.sly-file-tree-item-content > .metadata > .grid:not(:last-of-type) {
    border-right: 1px solid var(--sly-color-control);
}

.sly-file-tree-item-content > .metadata > .tag > .name {
    font-weight: 600;
    padding-right: 4px;
}

.sly-file-tree-item-content .actions-transition {
    position: relative;
    display: flex;
    justify-content: end;
    align-items: center;
    overflow: hidden;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    opacity: 0;
}