.loading-spinner {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
}
.loading-spinner::after {
    content: '';
    display: block;
    width: 64px;
    height: 64px;
    margin: 8px;
    border-radius: 50%;
    border: 6px solid #fff;
    border-color: #fff transparent #fff transparent;
    animation: loading-spinner 1.2s linear infinite;
}
@keyframes loading-spinner {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

body {
    font-family: 'Hind Siliguri', 'Inter', sans-serif;
}
#canvasContainer {
    cursor: grab;
}
#canvasContainer:active {
    cursor: grabbing;
}
input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 8px;
    background: #4a5568;
    border-radius: 5px;
    outline: none;
    opacity: 0.7;
    transition: opacity .2s;
}
input[type="range"]:hover {
    opacity: 1;
}
input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    background: orange;
    cursor: pointer;
    border-radius: 50%;
}
input[type="range"]::-moz-range-thumb {
    width: 20px;
    height: 20px;
    background: orange;
    cursor: pointer;
    border-radius: 50%;
}
.sidebar {
    height: calc(100vh - 150px);
}
.sidebar::-webkit-scrollbar {
    width: 6px;
}
.sidebar::-webkit-scrollbar-track {
    background: #2d3748;
}
.sidebar::-webkit-scrollbar-thumb {
    background: #4a5568;
    border-radius: 3px;
}
.control-btn.active {
    background-color: orange;
    color: white;
    border-color: orange;
}
.drag-over {
    border: 4px dashed orange !important;
    transform: scale(1.02);
}
.header-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* লগইন মডাল ও অ্যাপ ডিসএবেল করার জন্য নতুন স্টাইল */
.app-disabled {
    filter: blur(5px);
    pointer-events: none;
    user-select: none;
}