
/* ============================== DROPDOWN ============================== */

/* dropdown */

div.dropdown- {
	position: relative;

	display: inline-flex;
}

div.dropdown- > button {
	width: 100%;

    text-align: left;

    display: inline-flex;
    align-items: center;
    gap: .5rem;

    cursor: pointer;
}

div.dropdown- > button span.display {
    width: 100%;

    display: flex;

    outline: 0;

    white-space: nowrap;

    overflow: hidden;
}

div.dropdown- > button.input-control:has(span.display[contenteditable]) {
	cursor: default;
}

div.dropdown- > button.input-control span.display[contenteditable] {
    margin: -.65rem -.8rem;
    padding: .65rem .8rem;

	width: calc(100% + (.8rem * 2));
}

div.dropdown- > button span.display[placeholder]:not(:focus):empty::before {
    content: attr(placeholder);

    color: var(--color-dark-32);

    position: relative;

    z-index: -1;
}

div.dropdown- > aside.floater-dropdown- {
	opacity: 0;
	visibility: hidden;
}

aside.floater-dropdown- {
	position: fixed;

	z-index: 8888;
}

/* list */

aside.floater-dropdown- {
	background: var(--color-white);
	border: 1px solid var(--color-dark-16);
	box-shadow: 0 0.5rem 5rem -1rem var(--color-dark-16);

	border-radius: 0.75rem;

	padding: 0.25rem 0;

	display: inline-flex;
    align-items: flex-start;
    justify-content: flex-start;
	flex-direction: column;

    width: auto;
	min-width: 10rem;
	max-width: 32rem;
	max-height: calc(100vh - 4rem);

	overflow-y: auto;
}

aside.floater-dropdown- > div {
    padding: .75rem 1rem;

    width: 100%;
}

aside.floater-dropdown- > div.search {
    padding: .25rem .5rem .25rem;
}

aside.floater-dropdown-:has(> ul) > div.search {
    padding: .25rem .5rem .5rem;
}

aside.floater-dropdown- > div.search > input.input-control {
    padding: .5rem .75rem;

    border-radius: .5rem;
}

aside.floater-dropdown- > ul {
    width: 100%;
}

aside.floater-dropdown- > ul > li {
	padding: 0.5rem 0.75rem;

	font-size: 0.75rem;
	font-weight: 500;

	color: var(--color-dark);

	display: flex;
	align-items: center;
	gap: 0.5rem;
}


aside.floater-dropdown- > ul > li.overflow {
    width: 100%;

    display: block;

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;

    outline: 0;
}

aside.floater-dropdown- > ul > li > a,
aside.floater-dropdown- > ul > li > .dropdown > button {
	padding: 0.5rem 0.75rem;
    margin: -.5rem -.75rem;

	font-size: 0.75rem;
	font-weight: 500;

	color: var(--color-dark);

	display: flex;
	align-items: center;
	gap: 0.5rem;

    width: calc(100% + (.75rem * 2));
}

aside.floater-dropdown- > ul > li > .dropdown {
	padding: 0.5rem 0.75rem;
    margin: -.5rem -.75rem;

    width: calc(100% + (.75rem * 2));
}

aside.floater-dropdown- > ul > li > span.check-icon {
	display: none;
}

aside.floater-dropdown- > ul > li:not(.disabled, .selected) {
	cursor: pointer;
}

aside.floater-dropdown- > ul > li:not(.disabled, .selected):hover {
	background: var(--color-dark-02);
}

aside.floater-dropdown- > ul > li.disabled {
	cursor: not-allowed;

	color: var(--color-dark-64);
}

aside.floater-dropdown- > ul > li.selected > span.check-icon {
	color: var(--color-primary);

	display: inline-flex;

	margin-left: auto;
}

aside.floater-dropdown- > ul > li.action {
	margin-top: 0.25rem;
	margin-bottom: -0.25rem;

	background: var(--color-dark-04);
	color: var(--color-dark-88);

	border-radius: 0 0 0.75rem 0.75rem;
}

aside.floater-dropdown- > ul > li.action:hover {
	background: var(--color-dark-08);
	color: var(--color-dark);
}

aside.floater-dropdown- .btn {
    padding: .25rem .5rem;

    font-size: .875rem;

    border-radius: .5rem;
}

aside.floater-dropdown- ul li span.title {
    font-size: .65rem;
    white-space: nowrap;
    text-transform: uppercase;
    
    display: flex;
    align-items: center;
    gap: .5rem;

    padding: 0 .125rem 0 0;
    margin: -.125rem 0 -.25rem;

    
    width: 100%;

    color: var(--color-dark-56);
}

aside.floater-dropdown- ul li span.title::after {
    content: "";

    width: 100%;
    height: 1px;

    background: var(--color-dark-16);

    display: flex;
}

/* ============================== DROPDOWN ============================== */