   /* Base font */
        body {
            font-family: 'Inter', sans-serif;
        }
        html, body {
  overflow: hidden;
  height: 100%;
   font-size:14px;
}
         input[type=number]::-webkit-outer-spin-button,
  input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }
  input[type=number] {
    -moz-appearance: textfield;
  }
  
  
.loader-container {
    position: fixed;
    width: 300px; /* Diameter of the loader area */
    height: 300px;
    border-radius: 50%;
    /* Optional: visual guide for the track */
    border: 1px dashed #333; 
}

.center-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 2rem;
    font-weight: bold;
    z-index: 10;
}

.loader-container img {
    position: absolute;
    width: 40px;  /* Size of your texture thumbs */
    height: 40px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid #484848;
    overflow: hidden;
    /* Center the image anchor point before moving it */
    top: 50%;
    left: 50%;
    
    /* Smooth entrance */
    opacity: 0;
    transition: opacity 0.3s ease;
    border-radius:99px;
    
}
  
  
  
#wizard{
overflow: hidden;
}
.step{
	overflow: auto;
	
}
.loading::after{
content: '...';
background-image: url('../media/images/loader.svg');
filter:invert();
margin-left: 4px;
background-size: 25px 25px;
width: 25px;
background-repeat: no-repeat;
color: rgba(0,0,0,0);
background-position-y: -1px;
float: right;
right: 0;
display: inline-block;

}
img{
	border-radius: 3px;
  overflow: hidden;
}
#loader{
	min-width:80px;
	padding:10px;
	font-size:20px;
	position:absolute;
	left:50%;
	margin-left:-150px;
	top:50%;
	margin-top:-150px;
	text-align:center;
	/*border: solid 2px rgba(255,255,255,0.5);
	border-radius: 20px;*/
	z-index:3000;
	background: #ffffff85;
}
#-loader::after{
	border:solid 1px #ffffff;
	width:100%;
	
content: ' ';
position: absolute;
left: 0%;
margin-top: 26px;
border-image: linear-gradient(to right,#0058ff00, white, #0058ff00) 1;
}

#loader img{
	
	width:20px;
	height:20px;
	display:inline-block;
	border-radius: 50px;
	//box-shadow: 0px 10px 10px -10px #111;
	margin: 2px;
	
}

.glass{
	display:inline-block;
}
.tooltip{
	position:absolute;
	z-index:5000;
	padding:5px;
	font-size:14px;
	border-radius: 3px;
	/*max-width:200px;*/
	background:#ffffff;	
	text-decoration: none;
	background: rgb(255, 255, 255);
	border:solid 1px rgba(0,0,0,0.1);
	transition: width 0.5s;
	pointer-events: none;
	color:#393939;
}
.tooltip .params{
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 9px;
}
.tooltip .info{
	text-transform: uppercase;

	font-size: 9px;
	color:rgba(0,0,0,0.4);
	text-align: center;
	margin-top:5px;
}
.tooltip:after {
    content:'';
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -6px;
    width: 0;
    height: 0;
    border-top: solid 6px rgb(229, 229, 229);
    border-left: solid 6px transparent;
    border-right: solid 6px transparent;
   
}

        /* Hide scrollbar for Chrome, Safari and Opera */
        .no-scrollbar::-webkit-scrollbar {
            display: none;
        }

        /* Hide scrollbar for IE, Edge and Firefox */
        .no-scrollbar {
            -ms-overflow-style: none;
            /* IE and Edge */
            scrollbar-width: none;
            /* Firefox */
        }

        /* Custom radio button styles */
        input[type="radio"]:checked+label {
            border-color: #2563eb;
            /* blue-600 */
            box-shadow: 0 0 0 2px #bfdbfe;
            /* blue-200 */
        }

        /* Custom styles for interior visualization */
        .cabinetinterior {
            display: flex;
            height: 120px;
            border: 3px solid #9ca3af;
            /* gray-400 */
            background-color: #f3f4f6;
            /* gray-100 */
        }

        .middleblockwide,
        .middleblockacc {
            height: 100%;
            box-sizing: border-box;
            box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.2);
            /* Ensures border is inside */
        }

        .middleblockwide {
            background-color: #f3f4f6;
            box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
            /* gray-100 */
        }

        .middleblockacc {
            background-color: #d1d5db;
            /* gray-300 */
        }

        .rightborder {
            border-right: 3px solid #9ca3af;
            /* gray-400 */
        }
		#accessory-slots-container{
			height:200px;
		}
        /* Styles for accessory slot selection */
        #accessory-slots-container .cabinetinterior {
           height:100%;
        }

        #accessory-slots-container .middleblockwide,
        #accessory-slots-container .middleblockacc {
            cursor: pointer;
            transition: all 0.2s ease-in-out;
            position: relative;
            /* For text overlay */
        }

        #accessory-slots-container .middleblockwide:hover,
        #accessory-slots-container .middleblockacc:hover {
            background-color: #e5e7eb;
            /* gray-200 */
        }

        /* Style for selected accessory slot */
        .accessory-slot.selected {
            border: 2px solid #2563eb;
            /* blue-600 */
        }

        .accessory-slot-label {
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            font-size: 10px;
            font-weight: 600;
            color: #2563eb;
            /* blue-600 */
            padding: 2px 4px;
            background-color: rgba(255, 255, 255, 0.7);
            border-radius: 4px;
            white-space: nowrap;
            margin-top: 10px;
        }
        
        /* Mobile layout: Full-screen height, split view */
        @media (max-width: 1023px) {
            body, html {
                height: 100%;
                overflow: hidden; /* Prevent body scroll */
            }
            #main-grid-mobile {
                display: flex;
                flex-direction: column;
                height: 100vh; /* Full viewport height */
            }
            #viewer-col-mobile {
                flex: 1; /* Takes up top half, can be adjusted */
                min-height: 200px; /* Minimum height for viewer */
            }
            #viewer-col-mobile #engine-mobile { /* Changed ID to be unique */
                height: 100% !important; /* Force engine to fill its container */
            }
            #form-col-mobile {
                flex: 1; /* Takes up bottom half */
                overflow-y: auto; /* Enable scrolling for the form area */
                background: white;
                display: flex;
                flex-direction: column;
            }
            #form-container-mobile {
                flex-grow: 1; /* Allows content to fill space */
            }
            /* Make nav sticky at the bottom of the form area */
            #mobile-nav-sticky {
                position: sticky;
                bottom: 0;
                background: white;
                border-top: 1px solid #e5e7eb; /* gray-200 */
            }
        }