/* Explorateur de fichiers */
.file-explorer {
	flex: 1;
	overflow-y: auto;
	padding: 10px 0;
}

.file-item {
	user-select: none;
	font-size: 14px;
	position: relative;
	cursor: pointer;
	color: var(--text-color);
}

.file-item-content {
	padding: 8px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.file-item:hover .file-item-content {
	background: var(--file-item-hover-bg);
}

.file-item.folder .file-name {
	font-weight: bold;
}

.folder-toggle {
	width: 16px;
	height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	margin-right: 4px;
	transition: transform 0.2s ease;
	cursor: pointer;
	color: var(--folder-toggle-color);
}

.folder-toggle:hover {
	background: rgba(156, 220, 254, 0.1);
	border-radius: 2px;
}
body.light-theme .folder-toggle:hover {
	background: rgba(0, 122, 204, 0.1);
}

.file-icon {
	margin-right: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	color: var(--text-color);
}

.file-name {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.file-delete {
	opacity: 0;
	color: #e74c3c;
	cursor: pointer;
	padding: 2px 6px;
	border-radius: 3px;
	font-size: 12px;
	transition: opacity 0.2s;
	margin-left: 8px;
}

.file-item:hover .file-delete {
	opacity: 1;
}

.file-delete:hover {
	background: #e74c3c;
	color: white;
}

.file-children {
	margin-left: 20px;
	transition: all 0.2s ease;
	overflow: hidden;
}

.file-children.collapsed {
	max-height: 0;
	opacity: 0;
	margin-top: 0;
	margin-bottom: 0;
}

.no-files {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 16px;
	color: var(--no-files-text-color);
	text-align: center;
	flex-direction: column;
	padding: 20px;
}

.no-files .icon {
	font-size: 48px;
	margin-bottom: 20px;
	color: var(--no-files-text-color);
}

.no-project {
	color: var(--text-color);
	font-style: italic;
}
body.light-theme .no-project {
	color: #6c757d;
}

/* Classes spécifiques pour les extensions de fichiers */
.file-item.js { border-left: 3px solid #f7df1e; }
.file-item.jsx { border-left: 3px solid #61dafb; }
.file-item.ts { border-left: 3px solid #3178c6; }
.file-item.tsx { border-left: 3px solid #3178c6; }
.file-item.php { border-left: 3px solid #777bb4; }
.file-item.py { border-left: 3px solid #3776ab; }
.file-item.go { border-left: 3px solid #00add8; }
.file-item.rs { border-left: 3px solid #ce422b; }
.file-item.rb { border-left: 3px solid #cc342d; }
.file-item.swift { border-left: 3px solid #fa7343; }
.file-item.kt { border-left: 3px solid #7f52ff; }
.file-item.dart { border-left: 3px solid #0175c2; }
.file-item.java { border-left: 3px solid #ed8b00; }
.file-item.c { border-left: 3px solid #a8b9cc; }
.file-item.cpp { border-left: 3px solid #00599c; }
.file-item.csharp { border-left: 3px solid #239120; }
.file-item.html { border-left: 3px solid #e34f26; }
.file-item.css { border-left: 3px solid #1572b6; }
.file-item.scss { border-left: 3px solid #cf649a; }
.file-item.sass { border-left: 3px solid #cf649a; }
.file-item.less { border-left: 3px solid #1d365d; }
.file-item.vue { border-left: 3px solid #4fc08d; }
.file-item.json { border-left: 3px solid #292929; }
body.light-theme .file-item.json { border-left: 3px solid #aaaaaa; }
.file-item.xml { border-left: 3px solid #0060ac; }
.file-item.yaml { border-left: 3px solid #cb171e; }
.file-item.sql { border-left: 3px solid #4479a1; }
.file-item.md { border-left: 3px solid #083fa1; }
.file-item.shell { border-left: 3px solid #89e051; }
.file-item.powershell { border-left: 3px solid #012456; }
.file-item.docker { border-left: 3px solid #2496ed; }
.file-item.nginx { border-left: 3px solid #009639; }
.file-item.apache { border-left: 3px solid #d22128; }
.file-item.log { border-left: 3px solid #888888; }
.file-item.txt { border-left: 3px solid #aaaaaa; }
.file-item.conf { border-left: 3px solid #666666; }
.file-item.properties { border-left: 3px solid #666666; }