.CodeMirror {
            border: 1px solid var(--border-color);
            height: 100%;
            font-size: 14px;
        }
.CodeMirror-dialog {
            background-color: var(--card-color);
            border: 1px solid var(--border-color);
            color: var(--text-color);
        }
.CodeMirror-dialog input {
            background-color: #111827;
            color: var(--text-color);
            border: 1px solid var(--border-color);
}
                details > summary {
            list-style: none;
/* Hide default marker */
            cursor: pointer;
        }
details > summary::-webkit-details-marker {
            display: none; /* Hide default marker in Safari */
}
        #settings-modal details > summary:after {
            content: '▼';
            float: right;
transition: transform 0.2s;
            font-size: 1rem;
            margin-top: 0.25rem;
        }
#settings-modal details[open] > summary:after {
            transform: rotate(180deg);
        }
.cm-matchhighlight {
background-color: rgba(253, 224, 71, 0.5); /* yellow-300 with opacity */
        }
:root {
            --bg-color: #111827; /* gray-900 */
            --card-color: #1f2937;
/* gray-800 */
            --primary-color: #3b82f6; /* blue-500 */
            --success-color: #16a34a;
/* green-600 */
            --text-color: #f9fafb; /* gray-50 */
            --text-secondary-color: #9ca3af;
/* gray-400 */
            --border-color: #374151; /* gray-700 */
        }
body { background-color: var(--bg-color); color: var(--text-color); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; }
.card { background-color: var(--card-color); border: 1px solid var(--border-color); }
        .btn {
            display: inline-flex;
align-items: center; justify-content: center;
            padding: 0.5rem 1rem; border-radius: 0.375rem;
            font-weight: 500; transition: background-color 0.2s;
            cursor: pointer;
border: 1px solid transparent;
        }
        .btn-primary { background-color: var(--primary-color); color: white; }
.btn-primary:hover { background-color: #2563eb; }
        .btn-success { background-color: var(--success-color); color: white; }
.btn-success:hover { background-color: #15803d; }
        .btn-secondary { background-color: #374151; color: var(--text-color); border-color: #4b5563; }
.btn-secondary:hover { background-color: #4b5563; }
        .btn:disabled { opacity: 0.5; cursor: not-allowed; }
.loader {
            border: 4px solid #f3f3f3; border-top: 4px solid var(--primary-color);
            border-radius: 50%; width: 40px; height: 40px;
            animation: spin 1s linear infinite;
        }
        @keyframes spin { 0% { transform: rotate(0deg);
} 100% { transform: rotate(360deg); } }
        .modal { transition: opacity 0.3s ease; }
.modal-content { max-height: 90vh; }
        .ftp-item, #file-list li { cursor: pointer; transition: background-color 0.2s; }
        .ftp-item:hover, #file-list li:hover { background-color: #374151 !important; }
        select.form-input {
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
background-position: right 0.5rem center;
            background-repeat: no-repeat;
            background-size: 1.5em 1.5em;
            padding-right: 2.5rem;
        }
body.dark select.form-input {
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
        }
        .result-file-item.active {
            background-color: var(--primary-color);
            color: white;
        }
.icon-btn {
            background: none;
            border: none;
            padding: 0.25rem;
            border-radius: 9999px;
            color: var(--text-secondary-color);
}
        .icon-btn:hover {
            background-color: rgba(255, 255, 255, 0.1);
            color: var(--text-color);
        }
.icon-btn.pinned {
            color: var(--primary-color);
        }
.scrollbar-hide::-webkit-scrollbar {
    display: none;
}
.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

body {
  font-family: sans-serif;
}

#sticky-footer {
  will-change: bottom, transform;
}


.progress-bar-background {
  height: 0.55rem;
  position: relative;
}

.progress-bar-fill {
  width: 0%;
  background: linear-gradient(90deg, #3b82f6, #22c55e);
  box-shadow: 0 0 12px rgba(59, 130, 246, 0.45);
  transition: width 0.25s ease;
}

.progress-bar-background.progress-bar-indeterminate .progress-bar-fill {
  width: 35%;
  animation: progress-indeterminate 1.1s ease-in-out infinite;
}

@keyframes progress-indeterminate {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(320%); }
}

#file-list li.imported-file-item {
  border: 1px solid rgba(75, 85, 99, 0.75);
  transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

#file-list li.imported-file-item:hover {
  transform: translateY(-1px);
  background-color: #1f2937 !important;
  box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.35), 0 8px 18px rgba(0, 0, 0, 0.22);
}

#file-list li.imported-file-ftp:hover {
  border-color: rgba(96, 165, 250, 0.9);
}

#file-list li.imported-file-sftpgo:hover {
  border-color: rgba(34, 197, 94, 0.9);
}

#file-list li.imported-file-local:hover {
  border-color: rgba(156, 163, 175, 0.9);
}